Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Récupérer le menu des pages pour afficher sur un autre site
#1

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.9.4.2
#~ Url du site : localhost
#~ Hébergeur / Soft : LAMP (Ubuntu 10.10)
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~

Bonjour,

Je me demande s'il est possible d'afficher, sur un autre site, le menu "artmenu" horizontal.

Je m'explique.

Je fais un site sous CMSMS, avec une page "galerie", qui est en fait un lien de redirection vers un sous-répertoire, qui contient un autre CMS (Igalerie).

J'ai adapté les feuilles de style et les gabarits respectifs de CMSMS et Igalerie pour que les pages se ressemblent au point qu'on a l'impression de rester sur le même site.

La seule chose qu'il manque, c'est le menu des pages de CMSMS, que j'aimerais retrouver sur Igalerie, afin que le visiteur puisse à tout moment retourner sur une des autres pages.

Est-ce que c'est possible et que faut-il faire ?

Merci

Arnaud
Répondre
#2

deux solutions : dynamique ou static ?

le dynamique est complexe à faire mais permettrait de récupérer un menu mis à jour depuis cmsms dans igalerie

le static est rapide à faire mais nécessite une mise à jour manuelle.
Répondre
#3

Bonjour,

Autant que possible, je préférerais faire en dynamique.

Merci
Répondre
#4

ok, tiens toi ça va faire mal

1 : faire une balise utilisateur "generateMenu" qui contiendra ce code

Code :
$gCms = cmsms();
  $smarty = &$gCms->GetSmarty();
  $smarty_data = "{menu}";   //Ajouter les paramètres éventuels
  $smarty->_compile_source('temporary template', $smarty_data, $_compiled );
  @ob_start();
  $smarty->_eval('?>' . $_compiled);
  $menutpl = @ob_get_contents();
  @ob_end_clean();

source


ensuite tu lui fait générer un fichier en sortie nommé 'cmstemplate.php' qui sera composé de ce code

Code :
<?php

echo "XXXXX";

?>

avec XXXXX étant le contenu de la variable $menutpl. Ce fichier cmstemplate.php sera créé de préférence dans le répertoire de Igallery dans un sous répertoire bien localisé, genre /igalley/cmsmadesimple


2 : modifier cette balise utilisateur et ajouter un code au début qui aura pour tache de supprimer le fichier cmstemplate.php si existant avant de faire la suite.

3 : aller dans la gestion des évenements de CmsMadeSimple et repère ces 2 evenements :
* ContentDeletePost
* ContentEditPost

pour chacun d'entre eux tu le modifies, et tu ajoutes ta balise utilisateur "generateMenu" APRES l'appel au module MenuManager


A ce niveau de la partie, tu vas déjà tester en modifiant tes pages (changer le titre, nouvelle page, réorganisation) et vérifier que le fichier /igalley/cmsmadesimple/cmstemplate.php se modifie correctement comme il faut.



Une fois le processus stabilisé, il te reste à modifier igallery que je ne connais pas du tout et lui faire comprendre qu'il lui faut intégrer ton nouveau fichier /igalley/cmsmadesimple/cmstemplate.php

notamment avec un bon vieux include_once(...)

Voilà finit !

bon couraaaaaage Big Grin
Répondre
#5

Bonjour,

Merci pour ce tutoriel que je vais essayer d'appliquer pas à pas.

Pour l'instant, j'ai créé la balise utilisateur "generateMenu".

Par contre, à quel endroit dois-je entrer le code

Code :
<?php

echo "XXXXX";

?>
Répondre
#6

ce code c'est ce qui doit être généré dans le fichier cmstemplate.php, ce n'est donc pas un code que tu tape, mais un texte généré par TON code.

en gros ton script php va générer un script php Smile
Répondre
#7

Je ne comprends toujours pas.

Je précise que je connais pas le langage PHP. C'est peut-être la raison.

Comment et à quel endroit dois-je indiquer au script qu'il doit générer un fichier cmstemplate.php ?
Répondre
#8

Dans le premier code que j'ai entré en tant que balise utilisateur, rien ne crée le fichier cmstemplate.php.

Il faut donc bien que j'inclue la commande "echo" quelquepart dans la balise, non ? Mais comment ? Avec un >> comme en bash ?
Répondre
#9

Oula, j'exploite une méthode bien plus simple pour ma part :

1. Je créé une page qui ne contient que l'appel à la balise {menu}
2. J'insère dans mon site où je dois utiliser le menu dynamique l'appel à la page CMSMS en utilisant l'adresse index.php?page=menu-seul&showtemplate=false

Grosso modo, CMSMS me fourni une page qui ne contient que mon menu et sans template.
Répondre
#10

je faisais comme toi kraygoon, avant de m'appercevoir que cela correspondait à une hausse de la conso de la BP (ton serveur fait appel à ton serveur) + un allongement du temps de chargement.

Du coup j'ai opté pour ce système de cache plus performant.

Citation :Je précise que je connais pas le langage PHP. C'est peut-être la raison.

alors abandonne l'idée de faire du dynamique, repasse sur du static.
Répondre
#11

Bess, tu as testé avec la mise en cache du menu ?
Peut-être qu'avec la nouvelle balise {cge_cache}{/cge_cache} (pas sur de l'écriture) ça règlerait ces problèmes de cache. En théorie, le menu ne serait qu'un fichier en cache à lire.
Répondre
#12

Bon, je laisse tomber. Je ne comprends rien aux instructions.
Même en statique je n'ai aucune idée pour le faire.

Merci à vous deux d'avoir pris le temps de répondre ; mais c'est trop compliqué pour moi. Je n'avais pas mesuré à quel point ma question était technique.

Arnaud
Répondre
#13

Citation :Bess, tu as testé avec la mise en cache du menu ?

négatif, on pourrait éventuellement y réfléchir oui...

@Arnaud

en static c'est assez simple : tu copie le code HTML de ton menu depuis firefox et tu le colle dans les sources de Igallery.

encore faut il savoir ou aller le coller et là rebelotte : il te faut connaitre PHP... Smile
Répondre
#14

Citation :en static c'est assez simple : tu copie le code HTML de ton menu depuis firefox


Fait (du moins je pense, j'ai identifié un bloc "artmenu" avec Firebug.

Citation : et tu le colle dans les sources de Igallery.


Fait (je l'ai collé dans la partie "Content" de mon template.

Par contre mon menu est en mode texte. J'imagine que je dois rapatrier un bout de la feuille de style également ?
Répondre
#15

Ça y est j'ai réussi en statique, ce qui fut déjà une rude épreuve pour moi Smile

J'ai eu quelques soucis avec la feuille de style. J'ai compris ensuite qu'il y avait un conflit entre la classe "nav" que j'avais collée depuis CMSMS et la classe "nav" qui existait déjà dans Igalerie. J'ai donc renommé "nav" en "navg".

J'ai juste quelques tout petits soucis d'apparence, dûs certainement à des règles CSS de plus haut niveau qui interfèrent, mais dans l'ensemble ça passe à peu près.
Répondre
#16

courage Wink
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 6 visiteur(s)