Inserer du php dans une page statique

J'ai une petite question sur le code php qu'on inserer dans une page statique.

Que peux t'on inserer exactement?

J'arrive a installer du code du genre:
[== PHP ==]
<?php Echo "Bonjour vous!" ; ?>

Mais quand je mets un truc du genre:
[== PHP ==]
<?php $plxShow->staticInclude('1') ?>

Ben ca marche pas et la page devient blanche

est-ce donc qu'on peux mettre du code php de base mais on ne peut pas appeler les fonctions de Pluxml?

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Salut

    Il faut déclarer $plxShow
    [== PHP ==]
    <?php
    $plxShow = plxShow::getInstance();
    ?>
    

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Merci Stephane. Ca marche mieux comme ca :)

    Quel documents je dois lire pour savoir ce genre de petit detail? La documentation utilisateur ne parle pas de ca du tout
  • Pour avoir un site qui soit plus simple à maintenir, il recommandé de bien séparer les données d'un côté et la présentation de ces données d'un autre côté.
    Donc il faudrait éviter de mettre du code PHP dans la page statique, il arrive souvent qu'on puisse avoir le même résultat sans code PHP au milieu des données mais en regroupant le code dans des extensions par exemple.
    Donc c'est pour ça que cela n'est pas ce qui est le plus conseillé. Si tu veux améliorer ton site, renseignes toi sur comment on crée une extension.
    http://wiki.pluxml.org/
  • Pour ce que je comprends de la demande de ppmt, je ferai plutôt cela en créant un template de page statique intégrant le code php qu'il veut faire fonctionner.

    dans le thème que tu utilises, fait une copie de "static.php" et renomme la sous la forme "static-xxx.php" (avec ce que tu veux à la place des xxx, cf. explication dans la documentation utilisateur, section IX. Les templates)

    édite ensuite cette page, et rajoute ton code php entre les balises "sections" de la partie "article".

    A moins que tu n'aies déjà trop trituré la page, cela doit ressembler à ceci :
    [== HTML ==]
    <?php include(dirname(__FILE__).'/header.php'); ?>
    
    	<main class="main grid" role="main">
    
    		<section class="col sml-12 med-8">
    
    			<article class="article static" role="article" id="static-page-<?php echo $plxShow->staticId(); ?>">
    
    				<header>
    					<h1>
    						<?php $plxShow->staticTitle(); ?>
    					</h1>
    				</header>
    
    				<section>
    					<?php $plxShow->staticContent(); ?>
    
    <!-- insérer le code PHP ici -->
    				</section>
    
    			</article>
    
    		</section>
    
    		<?php include(dirname(__FILE__).'/sidebar.php'); ?>
    
    	</main>
    
    <?php include(dirname(__FILE__).'/footer.php'); ?>
    

    et pour la liste des fonctions de PluXml que tu peux utiliser ensuite, ça se passe là : http://devzone.pluxml.org/index.php?page=plxShow
  • Comme quoi j'ai bien fait de poser la question...ca m'a ouvert les yeux :)

    En fait j'ai un peu fait la solution que tu recommandes kowalsky.

    Ce que je voulais faire:
    Sur la page principale de mon site je veux une lien qui redirige vers le dernier poste du blog...

    Compliquer comme je suis j'ai donc cree une page statique avec le code PHP qui va bien dedans et dans le fichier static.php de mon theme j'ai rajouter ce code.
    [== PHP ==]
    	<div id="home_content">
    		<div class="container">	
    			<?php $plxShow->staticInclude('2') ?>
    		</div>
    	</div>	
    

    Suite a vos commentaires je vais plutot integrer le code de ma page statique directement dans le static.php. Cette solution etait bien trop simple pour mon cerveau :D

    merci
  • @ppmt : Si tu veux faire des modifications sur ta page principale, c'est le fichier "home.php" qu'il faut modifier.

    De la même façon que pour la page statique, fais en une copie et renomme la "home-xxx.php", ensuite va dans "Paramètres -> Options d'affichage" et choisi celle-ci comme "Template de la page d'accueil"

    Et c'est donc dans cette page "home-xxx.php" que tu rajoutes ton code.
    [== HTML ==]
    	<main class="main grid" role="main">
    		<section class="col sml-12 med-8">
    
    <!-- insérer le code ici -->
    
    		</section>
    		<?php include(dirname(__FILE__).'/sidebar.php'); ?>
    	</main>
    


    D'autre part,
    ppmt a écrit:
    Ce que je voulais faire:
    Sur la page principale de mon site je veux une lien qui redirige vers le dernier poste du blog...

    tu veux insérer un lien (vers une page ou un article) ou afficher le dernier article (mais là c'est ce que fait la page home par défaut) ou afficher une page statique ? La fonction a utiliser étant différente à chaque fois... :)

    Parce que le code que tu indiques ne renvoie pas sur le dernier article du blog, mais affichera la page statique dont l'identifiant est 2.
  • J'utilise une page statique comme page home par default. Si j'ai bien compris home.php c'est pour la partie blog non? et du coup oui sur la partie blog j'ai pas besoin de le pointer vers le dernier article.

    Voila ce que j'ai fait au final

    Renommer le fichier static.php en static-homepage.php et dedans j'ai rajouter le code suivant
    [== PHP ==]
    	<div id="home_content">
    		<div class="container">	
    			<p>Read the latest article : <?php $plxShow = plxShow::getInstance(); $plxShow-> lastArtList($format='<a href="#art_url" title="#art_title">#art_title</a>',1); ?></p>
    		</div>
    	</div>	
    

    Dans la page statique que j'utilise comme page home j'utilise cette nouvelle page comme template.


    Je dois avouer que j'ai un peu de mal a comprendre comment tous ces fichiers php s'arrangent entre eux. Je comprends de plus en plus a force de triturer mon theme mais c'est dure des fois :)
  • kowalskykowalsky Member
    septembre 2015 modifié
    ppmt a écrit:
    J'utilise une page statique comme page home par default. Si j'ai bien compris home.php c'est pour la partie blog non? et du coup oui sur la partie blog j'ai pas besoin de le pointer vers le dernier article.

    Tu as raison. j'ai oublié cette faculté de pluxml :)

    Tu peux éventuellement simplifier ton code :
    [== HTML ==]
    <p>Read the latest article : <?php $plxShow->lastArtList('<a href="#art_url" title="#art_title">#art_title</a>',1) ?></p>
    

    Au passage, je ne sais pas si c'est fait exprès, mais tu as une lettre "i" qui se balade à la fin de ton menu principal dans header.php:
    </li>
    </ul>
    i
    </div>
    </nav>
    

    (et puisqu'on parle du header, une autre possibilité serait d'inclure ton code juste après le </nav>, si tu souhaites afficher ton lien vers le dernier article sur toutes les pages de ton site)
  • merci pour le extra i....reflexe vi meme quand je ne l'utilise pas comme ici. des fois ca me joue des tours!

    Je ne veux afficher ce lien que sur les page home donc pas dans le header.

    Merci kowalsky, Stephane et Matthieu pour votre aide. J'ai beaucoup appris dans cet echange!
Connectez-vous ou Inscrivez-vous pour répondre.