aika Posted August 11, 2012 Report Posted August 11, 2012 (edited) Ievads: tā kā sev svēti nosolījos nākamajā projektā sākt lietot OOP, lai gan FW uzreiz nepaķēru, tomēr funkcijas esmu nolēmis OOPot, un tāpēc top šis posts ar lūgumu palīdzēt, palabot, pamācīt. Uzdevums ir noskanēt direktoriju, atlasīt bildes un atgriezt tās attiecīgā formātā. Izveidoju klasi kas veic pirmās 2 funkcijas: class retrieveImagesFromDir($folderName) { $folder = opendir($folderName); // Use 'opendir(".")' if the PHP file is in the same folder as your images. Or set a relative path 'opendir("../path/to/folder")'. $pic_types = array("jpg", "jpeg", "gif", "png"); $index = array(); while ($file = readdir ($folder)) { if(in_array(substr(strtolower($file), strrpos($file,".") + 1),$pic_types)) { $images = array_push($index,$file); } } closedir($folder); return $images; } veidota pietiekami universāla lai noderētu arī citiem mērķiem. tālak seko klase kurai jāatgriež attiecīgajā formātā: class displayImagesForSlimbox extends retrieveImagesFromDir ($folderName) { public function filterImages() { foreach ($images as $image) { $groupName = basename($folderName); $ret .= "<a href='$folderName/$image' rel='lightbox-$groupName'><img src=$folderName/$image /></a>"; } } print $ret; } acīmredzami ka sintakses un klašu savstarpējā sadarbība man vēl nav skaidra... kā man tās abas sajūgt kopā ? ( $this -> displayImagesForSlimbox -> retrieveImagesFromDir("folderis") )?? heļp! Edited August 11, 2012 by aika Quote
daGrevis Posted August 11, 2012 Report Posted August 11, 2012 Kāpēc klasē nav metodes? :D Un OOP nav tikai sintakse. Quote
aika Posted August 11, 2012 Author Report Posted August 11, 2012 zinu ka OOP nav tikai sintakse, nu vot nepielec man tā OOP padarīšana. Tāpēc uz jautājumu kāpēc ... varu atbildēt - tāpēc ka nesaprotu. Kas, vai tad viss tik nepareizi, ka nevar pat pielabot? Quote
daGrevis Posted August 11, 2012 Report Posted August 11, 2012 http://pastie.org/4456138 http://pastie.org/4456161 Neko testējis es neesmu! P.S. PHP 5.4! Quote
aika Posted August 11, 2012 Author Report Posted August 11, 2012 paldies! Eleganti (Pirmais variants pat elegantāks)! Un galvenais ka skaidrs - kas, kā un kāpēc :) Quote
daGrevis Posted August 11, 2012 Report Posted August 11, 2012 Es uzskatu, ka man kods galīgi suxo. Pastāsti precīzāk ko tu gribi izdarīt un kā tu domā to izmantot nākotnē. Quote
aika Posted August 11, 2012 Author Report Posted August 11, 2012 man top mājas lapa, kurā vairākās vietās būs slimbox galerijas . lai atvieglotu turpmāku galeriju rediģēšanu - katra galerija atrodas savā mapē, katru reizi mape tiek noskanēta un uzģenerēts html fragments slimboxam (lapas apmeklējums nebūs intensīvs, bet protams jāskatās vai neiebremzēs, ja tā - nāksies pieslēgt db). kodā tam būtu jāizskatās sekojoši: <div id="gal1" > X galerija<p> <? echo Helper_Fancybox::create_html( (new DirectoryScanner()) ->scan('*.jpg') ->get_files() , 'img/gal/mape1'); ?> </div> <div id="gal2" > Y galerija<p> <? echo Helper_Fancybox::create_html( (new DirectoryScanner()) ->scan('*.jpg') ->get_files() , 'img/gal/mape2'); ?> </div> P.S. tikai kodā jau nav pašas mapes skanēšanas funkcijas, vai ne!?! Quote
aika Posted August 11, 2012 Author Report Posted August 11, 2012 pa ceļam jautājums - kāpēc Helper_Fancybox pats nevar izsaukt DirectoryScanner? Jo ja es kādreiz pārdomāšu failu iegūšanas metodi, man nāksies iet pāri visam kodam ar šiem fragmentiem. Quote
Pats Toms Posted August 11, 2012 Report Posted August 11, 2012 Lielākoties lasot jūsu super mega stilīgo OOP kodu, man rodas jautājums - kur ir objekti? Quote
daGrevis Posted August 11, 2012 Report Posted August 11, 2012 Pats tu kā tāds liels objekts! :D Padalies ar savu risinājumu... Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.