Linux-si.org

RTFB!

Archive for the ‘Triki in nasveti’ Category

22%
78%

Kar nekajkrat sem že zasledil da folk moti ker nam findAll(), in vse ostale funkcije modela, vrnejo array. Z Set::map() funkcijo lahko zadevo pretvorimo v objekte.

Recimo da imamo modele User, Profile in pa Comment. Med njimi imamo relacije. User ima en Profil (User $hasOne Profile, Profile $belongsTo User, Comment $belongsTo User, User $hasMany Comments).

V primeru da sedaj hočemo pogledati vse podatke od enega uporabnika z funkcijo:

  1. $userData = $this->User->findAll(array('id', $userID)); // Poiščemo podatke uporabnika v bazi
  2. $this->set('userData', Set::map($userData)); // Podamo podatke v template oz. view

Sedaj bomo v template dobili namesto arraya objekt. In sicer:

  1. $userData->id; // User id
  2. $userData->Profile->id; // Profile id
  3. $userData->Comment->id; // Comment id

Seveda spremenljivke objektov lahko uporabite katerekoli, pač imena polj v tabelah… Hotel sem povedati, da glavni objekt User ne kličemo recimo $userData->User->id ampak samo $userData->id, kar se mi zdi tudi logično.

Sicer mogoče tole vse skup ni kaj posebenga ampak mogoče pa komu pride prav ;)

iNobl: 32% [?]

75%
25%

Na netu sem našel en zelo zanimiv zapis kjer opisuje kako sesuti IE6 z eno vrstico kode. V FF, Opera, ipd. (nevem za vse) dela ok. V IE7 sicer dela ok vendar v vnosno polje nemorate nič vpisati. Če imate IE7 minimiziran in zaženete to kodo in nato maksimizirate okno se bo IE7 tudi sesul :)

In to je ta super duper vrstica:

  1. <style>*{position:relative}</style><table><input /></table>

Sprobate lahko tukaj.

iNobl: 34% [?]

CakePHP - afterFind()

100%
0%

Ravno v neki zadevi ki jo delam sem imel primer kjer sem moral dobiti iz baze nek podatek združen iz dveh polj. Kako to storiti brez da bi uporabil svoj SQL stavek in pa CONCAT ipd. kar bi ga seveda lahko ampak zakaj bi če imamo za to funkcijo ki nam naredi z podatki kar želimo.

Funkcija afterFind() nam omogoči da z podatki ki jih dobimo iz baze naredimo kar hočemo, še predno podatki pridejo v view (template).

Recimo en primer. Rabim dobiti v select box (generateList() funkcija) podatek mesta in pa poštne številke kot value in kot key imam seveda id mesta….

  1. class Citys extends AppModel {
  2.  
  3. var $name = 'Citys';
  4.  
  5. function afterFind($results)
  6.  
  7. {
  8.  
  9. foreach ($results as $key =>; $val) {
  10.  
  11. $results[$key]['Citys']['NameAndPostalCode'] = $val['Citys']['name'].' ('.$val['Citys']['postal_code'].')';
  12.  
  13. }
  14.  
  15. return $results;
  16.  
  17. }
  18.  
  19. }

Kaj se tukaj zgodi ? V funkcijo afterFind($results) dobimo array $results ki drži dobljene podatke iz baze. Skozi te podatke gremo s foreach() stavkom. Kot lahko opazite sem iz $val[’Citys’][’name’].’ (’.$val[’Citys’][’postal_code’].’)’ dobil $results[$key][’Citys’][’NameAndPostalCode’] ki ga bom nato klical kjerkoli bom pač rabil podatke za mesta. Recimo ta podatek bom uporabi l(kot sem že omenil) v select boxu z funkcijo generateList().
  1. $this->set('Citys', $this->Citys->generateList(
  2. array('lang' =&gt; $this->Session->read('lang'),
  3. 'domain' => $this->Session->read('domain')),
  4. null,
  5. null,
  6. '{n}.Citys.city_id', '{n}.Citys.NameAndPostalCode'
  7. )
  8. );

Tako. Sedaj bom imel v select box-u Mesto (Poštna št.)…

Zadeva je dokaj uporabna in pisanja svojega SQL stavka zato bi bilo nesmiselno. Zakaj ? Zato ker bi ga moral pisati na večih mestih in iz tega potem pride zmeda. Tukaj naredim to na enem mestu in imam povsod iste podatke.

Seveda v tej funkciji lahko naredimo poljubno z podatki…

Upam da pride kakšnemu peku prav :)

iNobl: 25% [?]

Skrivnosti wordpressa

0%
0%

Mogoče kdo že ve nekdo ne, pa kaj čmo ? :) Ko v wordpressu urejate oz. pišete novo objavo ali vsebino se vam z kombinacijo tipk Alt+Shift+V (FireFox) in Alt+V (IE) razširi toolbar editorja (TinyMCE) ki vam omogoči naslednje:

določate format besedila,

podčrtate besedilo (Ctrl+U),

prilepite počiščeno besedilo iz worda,

urejate barvo besedila,

undo (Ctrl+Z) - redo (Ctrl+Y),

tabela posebnih znakov,

čiščenje prilepljenega oz. že napisanega besedila…

Kako izgleda zadeva po super duper stisku tipk ?

TinyMCE

iNobl: 23% [?]

0%
0%

Je mel kdaj kdo željo da bi imel vse naštete IE (Internet Explorer) verzije na enem sistemu brez velikih naporov ? Ali je sploh možno imeti na WinXP dve verziji IE ? Pustimo VmWare ipd. sranje. Na Linux OS oz. sistemu ki ima nameščen in delujoč wine, je to mogoče :)
IEs4Linux je skriptica ki nam namesti vse omenjene verzije v enem zamahu :) To pride prav predvsem razvijalcem web aplikacij ki uporabljajo *NIX OS.

Kako namestiti vse skupaj ? Na ubuntu Feisty Fawn (tudi na edgy in dapper bi moralo delovati) lahko storiš z naslednjimi koraki.

  1. sudo vi /etc/apt/sources.list

Lahko uporabiš tudi easy editor (ee) ali karkoli drugega namesto vi.

V /etc/apt/sources.list dodaš naslednje:

Feisty:

deb http://de.archive.ubuntu.com/ubuntu feisty universe
deb http://wine.budgetdedicated.com/apt edgy main

### V drugi vrstici mora biti edgy ker za feisty še ni paketov. Ampak z edgy paketom deluje vse OK tudi na Feisty distribuciji.###

Edgy:

deb http://de.archive.ubuntu.com/ubuntu edgy universe
deb http://wine.budgetdedicated.com/apt edgy main

Dapper:

deb http://de.archive.ubuntu.com/ubuntu dapper universe
deb http://wine.budgetdedicated.com/apt dapper main

shranite in zaprete. Poženeš naslednje:

  1. sudo apt-get update

Ko se posodobi baza z paketki nadaljuješ z naslednjim ukazom:
  1. sudo apt-get install wine cabextract

Če dobite kaj podobnega temu “Install these packages without verification [y/N]?” odgovorite z y

Sedaj vse naslednje korake izvedeš kot navaden uporabnik in ne kot root!!!

  1. cd ~
  2. wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-2.5beta6.tar.gz
  3. tar xvzf ies4linux-2.5beta6.tar.gz
  4. cd ies4linux-2.5beta6
  5. ./ies4linux

Pognal se ti bo grafični vmestnik kjer izbereš katere verzije IEja žeilš namestiti. Če klikneš na “Advanced” imaš možnost da izbereš še IE7.

To je cela zgodba! Ko se namestitev konča se na desktopu pojavijo ikonce za vse nameščene verzije.

IE7 sicer izgleda kot IE6 ker wine še ne podpira IE7 in je zato samo engine za rendiranje strani od IE7 kar je isto.

Upam da pride komu prav ;) Meni se je kar oddahnilo ;)

iNobl: 32% [?]