Forum CMS Made Simple FR
[Résolu][Développement de module] ajout de contenu dans le head - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html)
+--- Sujet : [Résolu][Développement de module] ajout de contenu dans le head (/thread-2127.html)



[Résolu][Développement de module] ajout de contenu dans le head - Dark4ng3L - 05/08/2012

Bonjour,

Je suis "développeur" de modules sur CMS Made Simple,

En tentant de développer un module d'affichage des photos 500px (réseau social dédié à la photographie)

En tentant de créer un interface de gestion de template pour la galerie,
j'ai voulu m'inspirer du module "Gallery" pour leur gestion de template, et j'ai vu qu'ils ont réussit à integrer leur css/javascript entre les balises <head></head>

En fouinant un peux, j'ai trouver ceci:
Code :
[== PHP ==]
// pass data to head section.

// get template-specific JavaScript and echo
$templatecode = $this->GetTemplate($template);
$templatecodearr = explode(TEMPLATE_SEPARATOR, $templatecode);
$template_metadata = '';

// check if a css file exists and echo
if ( file_exists("modules/Gallery/templates/css/" . $template . ".css") )
{
    $template_metadata .= '<link rel="stylesheet" href="' . $config['root_url'] . '/modules/Gallery/templates/css/' . $template . '.css" type="text/css" media="screen" />
';
}
$template_metadata .= substr($templatecodearr[2],0,-2);
$check_metadata = trim($template_metadata);

if ( !empty($check_metadata) )
{
    $template_metadata = $template_metadata . '
<!-- Gallery/' . $template . ' -->
';
    // make sure to add Metadata just once.
    if ( empty($this->GalleryMetadata) )
    {
        $this->GalleryMetadata = $template_metadata;
    }
    elseif ( stripos($this->GalleryMetadata,'<!-- Gallery/' . $template . ' -->') === FALSE )
    {
        $this->GalleryMetadata .= $template_metadata;
    }
}

J'ai tenté d’intégrer ceci à mon module, mais ca ne marche pas et je ne trouve aucune documentation sur le sujet.

Auriez vous une idée ?

Très bonne journée,


[Résolu][Développement de module] ajout de contenu dans le head - bess - 05/08/2012

insérer du code côté back-office se fait depuis la class Gallery.module.php dans la fonction getHeader() de mémoire. (a vérifier)

insérer du code côté front-office se fait grâce à l'utilisation des évènements CmsMadeSimple.

panel admin > Gestion des événements » ContentPostRender

Cela fait appel avant chaque envoi de code HTML à une petite fonction de Gallery qui elle va ajouter son code au passage

De mémoire (toujours) cette fonction est codée dans DoEvent du fichier Gallery.module.php

Ajouter un event se fait durant l'installation du module : function.install.php


[Résolu][Développement de module] ajout de contenu dans le head - Dark4ng3L - 05/08/2012

Merci de ton aide bess, et surtout de la rapidité de celle-ci, je vais regarder et je vous redit ! Smile


[Résolu][Développement de module] ajout de contenu dans le head - Dark4ng3L - 05/08/2012

Hello,

Alors effectivement, le problème venais du DoEvent,

Je ne savais pas qu'il fallais ajouter un event dans l'installation du module

Merci


[Résolu][Développement de module] ajout de contenu dans le head - bess - 05/08/2012

je t'en prie Smile