Forum CMS Made Simple FR
[résolu]Récupérer les attributs d'une page quelconque - 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]Récupérer les attributs d'une page quelconque (/thread-208.html)



[résolu]Récupérer les attributs d'une page quelconque - ninoaderri - 28/02/2010

Bonjour !

Je souhaiterais récupérer les attributs d'une page donnée (l'image thumbnail en fait) à partir d'une autre page, et je ne vois pas comment faire, puisque les balises {page_image} et {page_attr} ne récupèrent que les attributs de la page en cours... Une idée ?

Merci !


[résolu]Récupérer les attributs d'une page quelconque - jce76350 - 28/02/2010

re,

Si tu souhaites une réponse merci de bien vouloir respecter les règles du forum. Il y avait des renseignements à donner lors du 1er message :
SVP : Indiquez nous votre version de CmsMadeSimple et la suite !!!!


[résolu]Récupérer les attributs d'une page quelconque - ninoaderri - 28/02/2010

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS : 1.6.6
#~ Version du MLE si existante : Non
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.6.6
#~ Installed Modules:
#~ * CMSMailer: 1.73.14
#~ * FileManager: 1.0.1
#~ * MenuManager: 1.6.2
#~ * ModuleManager: 1.3.1
#~ * News: 2.10.3
#~ * nuSOAP: 1.0.1
#~ * Play: 1.0.3
#~ * ThemeManager: 1.1.1
#~ * TinyMCE: 2.5.5
#~ * Gallery: 1.2
#~ * avplayer: 1.01
#~ * play: 1.0.3
#~ * SimpleSlider: 0.3
#~ * ScriptDeploy: 0.5
#~ * GoogleCalendar: 0.1.1
#~ * CGExtensions: 1.17.8
#~ * Album: 0.9.3
#~ * CGCalendar: 1.2.5
#~ * FLVPlayer: 1.0.3
#~ * EventsListing: 1.4
#~ Config Information:
#~ * php_memory_limit: 32M
#~ * process_whole_template: false
#~ * max_upload_size: 20000000
#~ * default_upload_permission: 664
#~ * assume_mod_rewrite: true
#~ * page_extension: .html
#~ * internal_pretty_urls: false
#~ * use_hierarchy: true
#~ Php Information:
#~ * phpversion: 5.2.12
#~ * md5_function: On (Vrai)
#~ * gd_version: 2
#~ * tempnam_function: On (Vrai)
#~ * magic_quotes_runtime: Off (Faux)
#~ * memory_limit: 32M
#~ * max_execution_time: 50000
#~ * safe_mode: Off (Faux)
#~ * session_save_path: /tmp (1777)
#~ * session.use_cookies: On (Vrai)
#~ Server Information:
#~ * Server Api: cgi
#~ * Server Db Type: MySQL (mysql)
#~ * Server Db Version: 5.0.81
#~ ----------------------------------------------
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
Navré, je n'avais pas jugé utile de l'envoyer, puisque cela semblait nécéssaire si ( je cite ) «Un module fonctionne mal, un tag utilisateur déconne ?», ce qui n'est pas mon cas, puisque je recherche une fonctionnalité apparemment non documentée.

Bonne journée !


[résolu]Récupérer les attributs d'une page quelconque - jce76350 - 28/02/2010

re,

déjà faire la mise à jour vers la version 1.6.7 IMPORTANT


[résolu]Récupérer les attributs d'une page quelconque - Jean le Chauve - 28/02/2010

Tu peux créer une udt : getProperties
Code :
if( isset( $params['to'] ) )
{
    if( isset( $params['type'] ) )
    {
        global $gCms;
        $manager =& $gCms->GetHierarchyManager();
        $node =& $manager->sureGetNodeByAlias($params['to']);
        if (isset($node) && is_object($node) && $node !='')
        {
            $content =& $node->GetContent();
        }
        else echo '<!-- 1getProperties udt : page non trouvée: '.$params['to'].' -->';
        if (isset($content) && is_object($content))
        {
            if ($content->GetPropertyValue($params['type']) != '')
            {
                echo $content->GetPropertyValue($params['type']);
            }
            else echo '<!-- 1getProperties udt : propriété non trouvée: '.$params['type'].' -->';
        }
    }
    else echo '<!-- 2getProperties udt : vous n\'avez pas donné le nom de la propriété : '.$params['type'].' -->';
}
else echo '<!-- 2getProperties udt : vous n\'avez pas donné le nom de la page : '.$params['to'].' -->';
Tu appelles cette udt dans ta page avec {getProperties to='nomDeTaPage' type='thumbnail'} ou une autre propriété que tu désires (ex : image).
Il y a une gestion d'erreur de paramètre qui sera affichée en commentaire dans la source de la page : page non donnée ou inexistante, idem pour le paramètre type.

Tu peux également donner l'id de la page au lieu de son alias en modifiant la ligne $node =& $manager->sureGetNodeByAlias($params['to']);
par $node =& $manager->sureGetNodeById($params['to']);

Have fun Smile


[résolu]Récupérer les attributs d'une page quelconque - Jean le Chauve - 28/02/2010

Et voilà le plugin {all_page_attr} identique à {page_attr} mais avec le paramètre "to" :
Code :
<?php
#CMS - CMS Made Simple
#(c)2004 by Ted Kulp (wishy@users.sf.net)
#This project's homepage is: http://cmsmadesimple.sf.net
#
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

function smarty_cms_function_all_page_attr($params, &$smarty)
{
  
  $result = '';
  $key = '';

  if( isset($params['key']) ) {
  $key = $params['key'];
  }
  global $gCms;
  $manager =& $gCms->GetHierarchyManager();
  $node =& $manager->sureGetNodeByAlias($params['to']);
    if (isset($node) && is_object($node) && $node !='')
    {
      $contentobj =& $node->GetContent();
      if( is_object($contentobj) )
    {
      $result = $contentobj->GetPropertyValue($key);
          if( $result == -1 ) $result = '';
    }
    }
    else echo '<!-- getProperties udt : page non trouvée: '.$params['to'].' -->';

  if( isset($params['assign']) )
    {
      $smarty =& $gCms->GetSmarty();
      $smarty->assign($params['assign'],$result);
      return;
    }

  return $result;
}
function smarty_cms_help_function_all_page_attr() {
  echo lang('help_function_all_page_attr');
}

function smarty_cms_about_function_all_page_attr() {
    ?>
        <p>Author: Ted Kulp<tedkulp@users.sf.net></p>
    <p>Modified by: Jean le Chauve</p>
    <p>Version: 1.0</p>
    <p>
    Change History:<br/>
    Added the param "to" (required) for the choice of a page alias.
    </p>
    <?php
}
?>
Reste à ajouter l'aide du plugin.


[résolu]Récupérer les attributs d'une page quelconque - ninoaderri - 01/03/2010

Merci beaucoup ! C'est tout de même bien plus propre maintenant que de mettre du css dans un template...