Jump to content
php.lv forumi

Search the Community

Showing results for tags 'template'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • PHP
    • Interesanti palasīties
    • Iesācējiem
    • Vispārēji
    • Gatavi skripti
    • Freimworki, CMS
    • Datubāzes
  • Infrastruktūra, serveri, serveru programmatūra
    • Instalācija un konfigurācija
    • Hostinga piedāvājumi
    • Hostinga novērtējumi un atsauksmes
  • Pārlūkprogrammas daļa
    • HTML, XHTML
    • CSS
    • Javascript
    • Citas pārlūku vides un pārlūku valodas
    • Pārlūkprogrammas
  • Citas lietas
    • Darbs
    • Drošība
    • Manas lapu/darba novērtēšana
    • Saites uz noderīgiem resursiem
    • eKomercija un ePakalpojumi
  • php.lv
    • Netēma
    • Atsauksmes, ierosinājumi, lamu vārdi
    • Draza
  • Arhīvs
    • PHP
    • (X)HTML, CSS
    • php.lv

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 1 result

  1. Aiz gara laika strādāju pie Template klases (iesācēja līmenis, tāpēc STFU!). Būtu labi, ja iekš php templates varetu ielādēt kontrolierus (jā, paštaisīta +/- MVC sistēma, turas kopā uz puņķiem, bet taisu savu, jo mācos), tāpēc domāju par funkciju iekš šīs klases, lai viņus varētu izsaukt! Tad tā php template varētu izskatīties šādi: <?php $this->css(); ?> <table> <tr> <td> <?php $this->panel('members/stats'); ?> </td> </tr> <tr> <td> <?php $this->panel('applikacija/iespeja/arguments/arguments'); ?> </td> </tr> </table> Kontrolieri iekš tempaltes tiek izsaukti ar URI līdzīgu stringu, laikam tā to nosaukt. Tik tālu viss ok. Bet, ja iekš katra kontroliera ir funkcija, kas pievieno piemēram css, tad tas $this->css() nevarētu uzģenerēt css includes, jo paneļi tiek izsaukti pēc $this->css()! Tad tālāk rīkojos tā, ka tā panel funkcija nevis atgriež kontroliera saturu, bet atstāj aiz sevis "pirkstu nospiedumu!" Tā vietā tiks ielikts kontroliera saturs! Arī funkcija css() aiz sevis atstās pirkstu nospiedumu, kur tad vajadzētu saģenerēt tās css inkludes. Izskatās aptuveni šādi: function panel($name) { $this->panels[] = $name; echo '\'.$panel_'.$name.'.\''; } echo '\'.$panel_'.$name.'.\''; tiek izmantots tāpēc, ka tālāk ar eval palīdzību tiks palaists tempalte saturs! Piemēram: function tpl() { ob_start(); include 'tpl.php'; $tpl = ob_get_clean(); foreach($this->panels as $p) { ${'panel_'.$p} = $p(); } eval('echo \''.$tpl.'\';'); } Viss strādā, tiek atstāti pirkstu nospiedumi, piereģistrēti css faili un viss salitks pa vietām izmantojot šādu tpl struktūru. Bet es nezinu cik tas viss ir efektīvi un droši. Izmantot str_replace un piemēram {SIDE_PANEL} nevēlos kaut kā, jo tas str_replace darboajs abos virzienos un viņš var pārdefinēt kko vēlreiz, piemēram, ja jau iepriekš aizstātā {SIDE_PANEL} ir piemēram saturs, kurā ir arī šāda paša tipa apzīmējums {...} Tad sanāk, ka Tur ir lieki str_replace. Man arī patīk labāk iekš tempalte izmantot piemēram <?php $this->panel('members/stats'); ?> nevis {SIDE_PANEL} un tad iekš kāda kontroliera definēt, kas tad būs tas sānu panelis. Šādi viss notiek +/- pa "tiešo"! Rīkojos šādi, jo tā liekas viss ērtāk. Nezinu cik resursietilpīgi un atjautīgi tas ir. Varbūt ir kāds labāks piemērs, ka šādā manierē to var paveikt? Strādājošs piemērs: template.zip
×
×
  • Create New...