Détail du message 77581.4

Message numéro 4 dans le sujet Envoi d'un document spécifique par request à un block.

  • 77581.4 en réponse à 77581.3 écrit par mamous

    18/04/2013 15:12


    Jean-Michel
    Titre : Community Manager
    Rang : Expert
    Avec ces informations, je suppose donc que le document n'est pas passé au bloc, d'où le retour NULL pour "$this->getDocumentParameter()". Les comportements observés sont effectivement prévisible vu que "$xxx" vaut NULL.

    Vu que je n'ai toujours pas d'information sur le contexte d'appel du bloc, je vais donc supposer les choses suivantes :
    - un bloc A chargé d'afficher un lien vers le bloc X
    - le bloc A se trouve dans une page AA (par exemple un bloc de liste de documents sur une page contenant un lien vers le bloc de détail du document -> le bloc X sur la page XX)
    - j'admet que le bloc X est repéré par le tag T

    Ce qui laisse place à un code du type :
    - Dans le template de notre bloc A (bloc de liste) :
    <!-- La variable docsArray est un tableau de documents -->
    <ul tal:condition="docsArray">
        <li tal:repeat="doc docsArray">
            <!-- Voir wiki pour change:link (http://wiki.rbschange.fr/ref:phptal:liens) -->
            <a change:link="tag T;document doc">${doc/getLabelAsHtml}</a> 
        </li>
    </ul>

    - Dans le code de l'action du bloc X :
    $xxx = $this->getDocumentParameter();
    if ($xxx != null && $xxx instanceof nom_module_persistentdocument_xxx && $xxx->isPublished())
    {
    	// We transmit the document to the view
    	$request->setAttribute('xxx', $xxx);
    }

    - Dans le code du template du bloc X (bloc de détail du document) :
    <!-- On vérifie que l'on a bien un document xxx transmis au template -->
    <tal:block tal:condition="xxx">${xxx/getLabelAsHtml}</tal:block>
    <tal:block tal:condition="not: xxx">autre traitement ...</tal:block>

    Pour une meilleure réponse, pensez à indiquer la version sur laquelle vous rencontrez des difficultés, ainsi que son type (CMS ou eCommerce core).
    Pour tout problème d'installation indiquez le nom de l'hébergeur et s'il s'agit d'un serveur mutualisé ou dédié.
 
1362 membres
Aucun membre connecté