begin process at 2012 02 13 01:17:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

Inclusions & Smarty


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Inclusions & Smarty

samedi 19 mai 2007 à 20:31:42 | Inclusions & Smarty

Sniperman113

Bonjour,

J'ai un petit problème avec Smarty.
Enfaite, je souhaite que mon site soit le plus rapide possible à s'afficher. Pour cela, je comptais utiliser le système de cache de Smarty.
Ainsi, je n'aurai que le "contenu" à recharger et le menu, le header, le footer et le module de recherche serait entièrement dans le cache et donc le chargement serait plus rapide.
J'ai donc mis { insert name='content' } à l'endroit où je voulais mon contenu.
Le seul problème c'est lorsque j'include une page PHP dans laquelle j'appelle la fonction "function insert_content()"  qui contient elle-même :
$content = $smarty -> display("montemplate.tpl");
return $content;

J'ai alors cette jolie erreur : "Fatal error: Call to a member function display() on a non-object in chemin-du-fichier-ou-ya-la-fct-insert_content on line 15"

Je voulais donc savoir si l'on peut inclure un autre template dans le template "principal" sans passer par { include } car ça serait alors trop complexe à gérer (sachant qu'il faut aussi tenir compte du cache). Si oui, comment faire ?

Merci d'avance pour votre aide.

Cordialement,
Sniperman113.

dimanche 20 mai 2007 à 00:50:30 | Re : Inclusions & Smarty

neigedhiver

Salut,

Je pense que ton problème est un problème de portée de variable.
L'instance de l'objet Smarty, que tu stockes dans la variable $smarty n'est pas accessible depuis ta fonction. Dans celle-ci, tu dois rajouter :
global $smarty;

Ou son équivalent :
$smarty = $GLOBALS['smarty'];
dimanche 20 mai 2007 à 00:57:18 | Re : Inclusions & Smarty

Sniperman113

En effet, ça marche !

Cependant, est-ce que tu sais si je retire { insert name='content' }, que je le remplace par { $content }, si ce content sera gardé en cache ? Parce que là j'ai remarqué qu'avec un formulaire lorsque je remplis un champ et que je refresh, le champ est toujours remplis.
Alors lorsque j'utilise insert, le champ se vide.

Ca pourrait être plus pratique pour l'utilisateur si lorsqu'il y a refresh, le champ reste plein.
dimanche 20 mai 2007 à 01:20:08 | Re : Inclusions & Smarty

neigedhiver

Re,

Je viens de retrouver ce que j'avais fait pour ma galerie, d'après la doc de Smarty...

// Bloc de template à ne pas mettre en cache
function not_cached($param, $content, &$smarty)
{
return $content;
}
$template -> register_block('not_cached', 'not_cached', false);

Ensuite, ce que je ne veux pas mettre en cache, dans mon template, je le mets entre {not_cached} et {/not_cached}
Au moins, je contrôle parfaitement ce qui se passe : tout est mis en cache, SAUF ce que je mets explicitement entre ces deux balises.
C'est je pense une manière plus propre que celle que tu essaies de mettre en place (c'est pas moi qui l'ai inventée, hein, j'ai fait que lire la doc). Une chose est sûre : ça marche, j'ai testé.

Bonne continuation.
dimanche 20 mai 2007 à 01:33:00 | Re : Inclusions & Smarty

Sniperman113

Re,

Bah le truc de { insert name='content' } qui n'est pas mis en cache, ça vient directement de la doc Smarty ^^
Mais c'est vrai que ton truc est pas mal du tout.

Cependant, je me demande si Smarty n'arrive pas à gérer lui même ce qui change et ce qui ne change pas vis à vis de la page qu'il a en cache et à modifier tout seul ce qui a changé..

Parce que lorsque j'ai mis { $content } on aurait dit que c'était stocké en cache alors que je ne lui ai demandé nul part.

Bref un grand mystère ^^

Sinon, truc qui n'a rien à voir, connaitrais-tu un système de Captchas efficace et TRES simple à mettre en oeuvre ? Parce que le je suis bloqué avec artichow. Je n'arrive pas à récupérer le code généré pour le tester :(
dimanche 20 mai 2007 à 01:39:47 | Re : Inclusions & Smarty

neigedhiver

Réponse acceptée !
Pour les captchas, y'a des sources toutes récentes ici même.
J'ai noté celle de kankrelune qui me parait sympa et efficace, mais que je n'ai pas testée.
dimanche 20 mai 2007 à 01:43:11 | Re : Inclusions & Smarty

Sniperman113

Très bien.

Merci pour tout et bonne continuation ;)


Cette discussion est classée dans : insert, smarty, content, cache, inclusions


Répondre à ce message

Sujets en rapport avec ce message

Forcer un enregistement lors d'un téléchargement [ par xXMoPXx ] Bonjour à tous ! J'aimerais griser l'option "ouvrir" d'une boite de dialogue de téléchargement pour obliger l'utilisateur à enregistrer le fichier. Liste déroulante lié et rafraichissement [ par Slyders ] Bonjour, en ce basant sur cette source (http://www.phpcs.com/code.aspx?ID=39194) de phpcs j'ai mit en place les 3 liste déroulante  avec les attributs PB fonction readfile() chez free [ par PatX ] Bonjour à tous, J'ai un problème avec la fonction readfile() : en fait je veux télécharger un fichier pdf sans que celui-ci s'ouvre dans le navigateu Header, forcer la mise en cache ? [ par porciner ] Bonjour,J'ai besoin de votre aide pour f Mise en cache [ par joebuz ] hello,je cherche qqch qui pourrais m'aider dans ma prise de teteje souhaiterais savoir comment on procede pour faire une mise en cache comment on fait Probleme de pièce jointe lors d'un envoi d'un mail [ par Morgul ] J'ai le code suivant trouvé sur un site de php:     $mail="adressemail@hotmail.com";  $mess="contenu du message";  mail_attachement($mail,"sujet",$me Formulaire php [ par xenthor ] J'ai un petit souci avec un formulaire en php.J'ai recherché sur internet en vain.J'ai deux fichiers: insert.php et formulaire.phpVoilà le code source Probleme de téléchargement en local [ par Jantes Romeu ] Salut les gars ! J'ai un petit probleme de telechargement de fichier en local, en fait je suis en reseau avec plusieurs pcs qui ont des noms pour leu Forcer téléchargement [ par tweeder ] Bonjour, J'aimerais forcer le téléchargement de fichier en cliquant sur un lien. Voici le script que j'utilise $file = $HTTP_GET_VARS['chemin'].$HTT Envoyer des variables generées dynamiquement vers une autre page php [ par DzinVolt_Original ] Bonjour, J'ai cree un menu composé de 3 listes deroulantes dependante les une des autres (qui fonctionnent). Les "options" sont tirées d'une base de


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,129 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales