RTFB!
12 Dec
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:
$this->set('userData', Set::map($userData)); // Podamo podatke v template oz. view
Sedaj bomo v template dobili namesto arraya objekt. In sicer:
$userData->id; // User id $userData->Profile->id; // Profile id $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: 44% [?]
7 Aug
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:
<style>*{position:relative}</style><table><input /></table>
Sprobate lahko tukaj.
iNobl: 34% [?]
1 Jul
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….
class Citys extends AppModel { var $name = 'Citys'; function afterFind($results) { foreach ($results as $key =>; $val) { $results[$key]['Citys']['NameAndPostalCode'] = $val['Citys']['name'].' ('.$val['Citys']['postal_code'].')'; } return $results; } }
$this->set('Citys', $this->Citys->generateList( 'domain' => $this->Session->read('domain')), null, null, '{n}.Citys.city_id', '{n}.Citys.NameAndPostalCode' ) );
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: 26% [?]
20 May
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:
Kako izgleda zadeva po super duper stisku tipk ?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…
iNobl: 22% [?]
16 May
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.
sudo vi /etc/apt/sources.list
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:
sudo apt-get update
sudo apt-get install wine cabextract
Sedaj vse naslednje korake izvedeš kot navaden uporabnik in ne kot root!!!
cd ~ wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-2.5beta6.tar.gz tar xvzf ies4linux-2.5beta6.tar.gz cd ies4linux-2.5beta6 ./ies4linux
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: 30% [?]