[WIP/Templates] Moteur de templates

Pio154Pio154 Member
août 2014 modifié dans Modifications
Bonjour à tous,

Dans le cadre d'une modification complète ou partielle du thème du Pluxml, je compte installer mon propre moteur de templates.
Suite à ça, une importante modification du moteur de Pluxml devra être fait pour ainsi avoir TOUT le code HTML dans les fichiers templates.


Il y a, je le sais, un problème de compatibilité envers les plugins, je regarderais ça de plus près.

A bientôt.

Réponses

  • Pio154Pio154 Member
    août 2014 modifié
    Fin de semaine, le travail sera pour le moins achevé, voici quelques screenshots de la restructuration des fichiers :

    e5306840db.png 22e0f72ce2.png Dans pages/ 5cfbca4fff.png

    Et un exemple de l'affichage d'un template de l'article :
    [== XHTML ==]
    		<foreach term="$:news as news">
    		<article role="article" id="post-<{$id:news.value}>" class="header-articles-margin img-article">
    			<header>
    				<time datetime="<{$datetime:news.value}>">
    					<span class="time-day"><echo $date:news.value['d']></span>
    					<span class="time-month"><echo $date:news.value['F']></span>
    					<span class="time-year"><echo $date:news.value['Y']></span>
    					<span class="time-hour"><echo $date:news.value['H']>:<echo $date:news.value['m']></span>
    				</time>
    				<h1>
    					<a href="<{$link:news.value}>" title="<{$title:news.value}>">
    						<echo $title:news.value>
    					</a>
    				</h1>
    
    				<p>
    					<i class="icon-pencil-4"></i> <echo langShow('WRITTEN_BY')> <echo $author:news.value> -
    					<if cond="$comment:news.value == 0">
    						<$comment:news.value = L_NO_COMMENT>
    						<elseif cond="$comment:news.value == 1">
    							<$comment:news.value = $comment:news.value.' '.L_COMMENT>
    						<else />
    							<$comment:news.value = $comment:news.value.' '.L_COMMENTS>
    					</if>
    
    					<i class="icon-comment"></i>
    					<a href="<{$commentHref:news.value}>" title="<{$title:news.value}>">
    						<echo $comment:news.value>
    					</a>
    				</p>
    			<header>
    
    			<div class="div-section">
    				<echo $chapo:news.value['content']>
    				<if cond="$chapo:news.value['chapo']">
    					<p class="more">
    						<a href="<{$link:news.value}>" title="<{$title:news.value}>">
    							Lire la suite de <echo $title:news.value>
    						</a>
    					</p>
    				</if>
    			</div>
    
    			<footer>
    				<p>
    					<i class="icon-folder"></i> <echo langShow('CLASSIFIED_IN')> :
    					<foreach term="$cat:news.value as listCat">
    						<if cond="isset($unclassified:listCat.value)">
    							Non classé
    						<else />
    							<a href="<{$link:listCat.value}>" class="<{$class:listCat.value}>" title="<{$title:listCat.value}>">
    								<echo $title:listCat.value>
    							</a>
    						</if>
    					</foreach><br />
    
    					<i class="icon-tags"></i> <echo langShow('TAGS')> :
    					<foreach term="$tags:news.value as listTags">
    						<if cond="isset($tags_none:listTags.value)">
    							<echo $title:listTags.value>
    						<else />
    							<a href="<{$link:listTags.value}>" class="<{$class:listTags.value}>" title="<{$title:listTags.value}>">
    								<echo $title:listTags.value>
    							</a>
    						</if>
    					</foreach>
    				</p>
    			</footer>
    		</article>
    
    		</endforeach>
    
  • Salut,

    Tu peux nous en dire plus sur le sujet ?

    A+

    jéjé
  • J'ai remarqué qu'utiliser des plugins à tout va, par exemple 5 ou 6 réduisaient la vitesse d'exécution de PluXml. Surtout avec l'utilisation eval(), qui exécute du code PHP alors que je pense que l'auteur aurait vraiment pu faire autrement, enfin bref, je vais pas m'attarder là-dessus, chacun fait comme il veut.

    Le but de la modification complète des thèmes avec l'installation d'un moteur de templates qui permet de partager le code HTML du code PHP sera la possibilité d'une modification approfondie des thèmes, de l'ajout de scripts JS ou autre plus simplement ou voir même d'autres applications que d'utiliser de simples plugins comme les boutons pour les réseaux sociaux que je juge inutile d'avoir un code lourd utilisé avec la fonction eval() à plusieurs reprises.
  • Pio154Pio154 Member
    août 2014 modifié
    Une modification complète de l'url rewriting est en cours.
    [== Indéfini ==]
    # Si une page statique est activée
    monsite.com/
    monsite.com/blog
    monsite.com/blog/categorie-1/ma-categorie.html
    monsite.com/blog/categorie-1/ma-categorie.html?page-2
    monsite.com/blog/article-1/mon-article.html
    monsite.com/blog/archives/2014/08
    monsite.com/blog/archives/2014/08/page-2
    monsite.com/blog/tag/mot-de-cle.html?page-2
    monsite.com/page-1/ma-page.html
    
    # Sinon...
    monsite.com/
    monsite.com/categorie-1/ma-categorie.html
    monsite.com/categorie-1/ma-categorie.html?page-2
    monsite.com/archives/2014/08
    monsite.com/archives/2014/08/page-2
    monsite.com/tag/mot-de-cle.html?page-2
    monsite.com/article-1/mon-article.html
    monsite.com/page-1/ma-page.html
    
  • Pio154Pio154 Member
    août 2014 modifié
    Modification de l'url rewriting terminée !

    Template du fil d'Ariane
    [== Indéfini ==]
    <p class="fil-ariane">
    		<span>Vous êtes ici</span>
    		<span><a href="<{urlRewrite('')}>">accueil</a></span>
    		<if cond="preg_match('`(?:article|categorie|archives|tags)`', $mode) && $pageBlog != ''">
    			<span>
    				<a href="<{$pageBlog['link']}>">blog</a>
    			</span>
    		</if>
    		<if cond="$mode == 'article'">
    			<span>article</span>
    			<span><strong><echo $:news[0]['title']></strong></span>
    			<elseif cond="$mode == 'home' && $pageBlog" />
    			<span>
    				<strong>blog</strong>
    			</span>
    			<elseif cond="$mode == 'static'" />
    				<span>page</span>
    				<span><strong><echo $static['title']></strong></span>
    			<elseif cond="$mode == 'categorie'" />
    				<span>catégorie</span>
    				<span><strong><echo $categorie['title']></strong></span>
    			<elseif cond="$mode == 'archives'" />
    				<span>archives</span>
    				<if cond="strlen($cible) == 4">
    					<span>
    						<strong>
    							<echo $archive_title['Y']>
    						</strong>
    					</span>
    					<else />
    					<span>
    						<a href="<{urlRewrite('?archives/'.$archive_title['Y'])}>" title="archives <{$archive_title['Y']}>">
    							<echo $archive_title['Y']><!--
    						--></a>
    					</span>
    					<span>
    						<strong>
    							<echo $archive_title['F']>
    						</strong>
    					</span>
    				</if>
    			<elseif cond="$mode == 'tags'" />
    				<span>mot clé</span>
    				<span>
    					<strong>
    						<echo $tag['title']>
    					</strong>
    				</span>
    			<elseif cond="$mode == 'erreur'" />
    				<span>erreur</span>
    		</if>
    		<if cond="$page > 1">
    			<span>
    					page <echo $page>
    			</span>
    		</if>
    	</p>
    
  • Pio154Pio154 Member
    août 2014 modifié
    CKEditor + CKFinder ont été installé avec succès ! Où ce dernier m'afficher "Fichier .htaccess incorrect. Réécriture du fichier impossible!" avec le plugin de ckeditor. Que de bonnes nouvelles.
    [list=*]
    [*]Une lightbox sera aussi installé, et fonctionnera :p [/*]
    [*]Une application permettant l'utilisateur de choisir son thème[/*]
    [/list]

    Une fois cette todolist terminé, je publierais les fichiers qui aurait dû être publié dimanche dernier délais mais manque de temps ... D'ici dimanche soir ou même avant selon le temps que j'aurais. (absence mardi à jeudi)
  • Travail enfin terminé ! Publication des sources prochainement, sûrement dimanche prochain.
    Démonstration réelle : voir ma signature / site web.
  • Correction de bugs :
    [list=*]
    [*]Correction du sitemap.php (domaine du site manquant)[/*]
    [*]Correction du changement du thème qui vacillé d'une page à l'autre[/*]
    [/list]

    [list=*]
    [*]Ajout des boutons des réseaux sociaux (Facebook et Google+)[/*]
    [/list]


    Prochaine mise à jour avant publication :
    [list=*]
    [*]Rajout du raccourcisseur de commentaires dans la sidebar[/*]
    [*]Création du thème par défaut avec PluXml[/*]
    [/list]

    Ayant bien envie d'installer quelques plugins plutôt intéressant pour CKEditor, je me trouve dans une impasse pour pouvoir les installer comme par exemple une lightbox.
  • Correction :
    [list=*]
    [*]Redirection 301 vers les anciennes urls du type [A-Za-z0-9-]+.html avec le plugin plxMyBetterUrls[/*]
    [/list]

    J'en avais un peu marre des outils de Google qui ne comprenait rien même si l'on supprimait les urls pour le référencement.
  • Le code de PluXml avec les modifications sera bientôt disponible !

    Le moteur de templates est d'ores et déjà disponible ici.
Cette discussion a été fermée.