Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

PHPTAL
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Subiectul anterior :: Subiectul următor  
Autor Mesaj
johnny



Data înscrierii: 31/Iul/2004
Mesaje: 904
Locație: Bucuresti

Trimis: Vin Mai 20, 2005 11:18 pm    Titlul subiectului: PHPTAL  

PHPTAL este o biblioteca (library) de template XML/XHTML pentru PHP.
Are ca model ZPT pentru Python...

Mai multe informatii gasiti la: http://phptal.motion-twin.com

Cine a mai lucrat si poate sa impartaseasca cateva opinii (design patterns, comparatii cu smarty, fassttemplate, etc...) ?
Sus  
aurelian



Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti

Trimis: Lun Mai 23, 2005 9:39 pm    Titlul subiectului:  

PHPTAL este mai bun decat Smarty pentru web-designeri.

In primul rand, poti denumi fisierele .html si le poti vizualiza linistit in browser (sau WYSIWYG)
pentru ca exista un tag, replace care nu va fi afisat in pagina insa pe care ei il pot folosi pentru a aranja designul paginii (ptiu romana asta).

Un citat:
The idea behind TAL is to allow WYSIWYG template edition with sample rendering without stranges tags everywhere. That's why TAL work on xml attributes in stead of markup tags.
( http://phptal.motion-twin.com/manual/en/#whyusingphptal )

De ex ( http://phptal.motion-twin.com/manual/en/#id2510623 )
Cod:
<table>
  <tr tal:repeat="item myresult">
    <td tal:content="item">item value</td>
  </tr>
  <!-- nu este afisat -->
  <tr tal:replace="">
    <td>sample 1</td>
  </tr>
  <!-- nu este afisat -->
  <tr tal:replace="">
    <td>sample 2</td>
  </tr>
</table>



L-am testat insa nu il folosesc pentru moment in nici un proiect mai maricel pentru a putea sa imi dau cu parerea despre viteza si/sau functionalitati.

Dar, din ce am urmarit pe lista de discutii, se pare ca este destul de stabil si nici la capitolul functionalitati nu sta rau.

In cazul in care designerul uita sa inchida un tag va aparea o eroare, codul scris trebuie sa fie corect (XML,HTML,XHTML).

Pentru mai multe detalii te poti inscrie pe lista de discutii sau poti sa navighezi prin codul sursa (inclusiv unit test-uri) de pe svn.
Sus  
black ice



Data înscrierii: 22/Apr/2006
Mesaje: 1

Trimis: Sâm Apr 22, 2006 8:47 pm    Titlul subiectului:  

Am vrut să instalez Drupal 7 și PHPTAL 1.1.5 local (wamp - php 5, apache 2, mysql 5) însă n-am prea reușit. Problema e că n-am găsit un help installer mai detaliat și cum sunt destul de 'începător' mare lucru n-am reușit să fac.

PHPTAL mă interesează să-l folosesc ca theme engine pentru drupal iar pentru a face asta am impresia ca trebuie pentru început instalat ca o extensie pentru php. Pe siteul drupal versiunea de PHPTAL e destul de veche, iar explicațiile de instalare vagi. Am încercat să fac ce zic ei acolo, dar nu mi-a mers. Pe siteul celor de la PHPTAL, explicațiile sunt tot destul de vagi.

Am încercat să instalez pachetul phptal prin pear, dar cred că nici instalarea pear-ului nu mi-a prea reușit. Mă gândesc că dacă ar fi mers, în phpinfo() mi-ar fi zis ceva despre pear, nu?

Pe scurt fie spus, ce mă interesează e un theme engine pentru drupal și eram curios să vad PHPTAL ce poate. Dacă ați lucrat cu așa ceva poate m-ați putea ajuta și pe mine...
Sus  
cdanea



Data înscrierii: 05/Iul/2003
Mesaje: 115
Locație: Bucuresti

Trimis: Lun Mai 08, 2006 2:19 pm    Titlul subiectului:  

si in Smarty poti numi fisierele template cum vrei...
daca vrei le numesti "*.template_ul_meu", eu unul prefer "*.htm".

Trebuie doar sa apelezi
$smarty->display("fisierulmeu.extensiamea"); //fisier valid in $template_dir
Sus  
dutzanu



Data înscrierii: 09/Mai/2006
Mesaje: 5

Trimis: Mar Mai 09, 2006 10:51 pm    Titlul subiectului:  

Stie cineva cum sa fac sa includ css intr-un template PHPTAL?

iata cum am structura de directoare:
./index.php
./tpl/page.html
./tpl/style.css

daca in page.html introduc <LINK rel="....... /> in template merge css OK
daca folosesc page.html ca si template pt index.php, nu imi mai incarca style.css numai daca e in acelasi dir cu index.php si nu vreau chestia asta.
Tot ce tine de view vreau sa fie in ./tpl.
Sus  
johnny



Data înscrierii: 31/Iul/2004
Mesaje: 904
Locație: Bucuresti

Trimis: Mie Mai 10, 2006 11:59 am    Titlul subiectului:  

@dutzanu
poti sa postezi bucata de html procesata de phptal (ce iti afiseaza in browser )
daca ai setat calea catre css: style.css, cand deschizi template-ul din folderul tpl e normal sa iti incarce css-ul pentru ca e in folderul curent...
dar daca esti in pagina index.php din structura data de tine css-ul trebuie sa aiba calea:
./tpl/style.css
Sus  
dutzanu



Data înscrierii: 09/Mai/2006
Mesaje: 5

Trimis: Joi Mai 11, 2006 10:02 pm    Titlul subiectului:  

Am aflat niste solutii la problema asta
Cea mai de treaba este folosirea pre-filtrelor, in care printr-o regexp sa inlocuiesti path-urile din template sa fie relative la scriptul curent.

Cod:
<?php
class MyFilter extends PHPTAL_Filter
{
    function filter($data)
    {
        return preg_replace($regexp, $relpath, $data);
    }
}

$tpl->setPreFilter(new MyFilter());
echo $tpl->execute();
?>
Cum inca sunt noob la regexp, solutia pe care am gasit-o si merge (partial) este:
Cod: $regexp = "/((href|src)[\\s]*?=[\\s]*?").*?(.*?")/"
$relpath = "\\1tpl/\\3"
//asta pt cazul meu care am template-ul in ./tpl
//dar $relpath poate fi ceva dinamic (directorul unui modul, etc)
Spun partial deoarece in cazul de fata se inlocuieste si href="http://www.somesite.com" cu href="tpl/http://www.somesite.com". Rezolvarea ar fi sa aplic preg_replace numai la acele "match-uri" care nu contin "://".

Daca reusiti sa dezvoltati regexp-ul meu astfel incat sa omita "://" pls share :)

O alta solutie ar fi sa setezi din script calea
$tpl->imgPath = "tpl";

si in template:
<img tal:attributes="src string:${imgPath}/images/pic.jpg"
src="images/pic.jpg" />

Nu mi se pare o solutie prea de treaba (imaginati-va cum arata un template obtinut prin slice dintr-o imagine - toate bucatile din poza o gramada te tal:attributes)

Daca aveti alte solutii mai elegante ... lumea asteapta :)
Sus  
dutzanu



Data înscrierii: 09/Mai/2006
Mesaje: 5

Trimis: Vin Mai 12, 2006 10:32 pm    Titlul subiectului:  

Ok, am ajuns la o regexp la care inca n-am gasit situatie sa greseasca...

clasa mea pre/post filter:
Cod:
class MyFilter implements PHPTAL_Filter{
   public function filter($data){
      $relpath = 'tpl/';
      $data = preg_replace('/((href|src)[\\s]*?=[\\s]*?"[\\s]*)(([a-z]*[^:][a-z._\\/]*)")/i','\\1'.$relpath.'/\\3',$data);
      
      return $data;
   }
}
sper sa va ajute la ceva...

Nu stiu daca am fost destul de clar ce face toata chestia asta, dar explic pe scurt:
Template-ul nu se afla in acelasi director cu script-ul, prin urmare toate tagurile ce contin href="blahblah" sau src="blahagain" si care daca vizualizati template-ul (html) in browser sau WYSIWYG sunt OK. In momentul in care incarci template-ul din script toate caile relative din href, src devin relative la directorul in care se afla scriptul.
Adaugand un filtru (pre/post - diferenta e doar de cache) se modifica aceste cai relative sa corespunda directorului ce contine scriptul
In cazul de fata:
in template: (./tpl/page.html) href="images/img.jpg"
in script (./index.php) href="tpl/images/img.jpg"

Hai spor in ramura ca am scris destul
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community