|
|
 |
Problemes divers avec EZ Publish ... |
 |
Vous devez être connecté pour utiliser le forum. Vous pouvez le faire ici.
|
Auteur
|
Message
|
|
Lex 007
|
Lundi 14 Février 2005 5:49:09 pm
Problemes divers avec EZ Publish ...
Bonjour a tous,
je suis nouveau venu dans le monde de EZ Publish et je rencontre pas mal de de difficultes ... J'utilise EZ Publish v 3.4.4 (imposé)
- Tout d'abord sur les Worklows : j'essaie d'activer le workflow de type content_read pour faire une page de disclaimer lorsque l'on s'apprete a lire une page. Lorsque j'active cette option dans le workflow.ini : plus rien ne marche dane ls site, et toutes les pages sont blanches ! Une idee ?
- J'ai ecrit un template pour faire un menu dynamique, mais celui ci ne marche pas car j'ai une variable counter qui n'est pas incrementee ... voici le code si vous pouvez m'aidder !
Merci d'avance
Lex
{let page_limit=10
counter=0
children=fetch('content','list',
hash(parent_node_id,2,
limit,$page_limit,
offset,$view_parameters.offset))
child_count=fetch('content','list_count',hash(parent_node_id,$node.node_id))}
{section name=Child loop=$children}
{set counter=$counter+1}
mml[{$counter}]=new Array('0','{$Child:item.name}',{$Child:item.url_alias|ezurl},'');
{let sub_children=fetch('content','list',hash(parent_node_id,$Child:item.node_id,limit,$page_limit))
sub_child_count=fetch('content','list_count',hash(parent_node_id,$Child:item.node_id))}
{section name=SubChild loop=$:sub_children}
{set counter=$counter+1}
mml[{$counter}]=new Array('1','{$:item.name}',{$:item.url_alias|ezurl},'');
{/section}
{/let}
{/section}
{/let}
|
|
Vanessa
|
Mardi 15 Février 2005 9:31:10 pm
Re : Problemes divers avec EZ Publish ...
L'incrémentation peut se faire de deux manières :
{set counter=$counter|inc}
ou bien
{set counter=inc( $counter )}
à la place de {set counter=$counter+1}.
Vanessa
|
|
Lex 007
|
Jeudi 17 Février 2005 1:40:12 am
ok
merci !
J'avais en plus une autre erreur au niveau de mes variables ...
|
|
Bertrand Dunogier
|
Vendredi 18 Février 2005 11:07:12 pm
Workflow
Je te conseille de tenter peut être une autre approche pour ton disclaimer. Les worflows peuvent être assez gourmand en ressources et en fatigue. Je pense que cette méthode pourrait être adaptée:
- placer dans le template chaque page sujette au disclaimer un petit morceau de template qui vérifie l'existence d'une variable;
- si celle-ci existe, l'URL actuelle est stockée (session) et le visiteur est redirigé redirige vers le disclaimer.
- Quand le visiteur valide le disclaimer, une variable de session est créée "disclaimer lu" et l'utilisateur est redirigé vers la page dont l'URL a été stockée en session précédemment.
Je pense que tout devrait être faisable sans grandes difficultés.
|
|
Lex 007
|
Lundi 21 Février 2005 2:16:52 pm
ouf !
j'avais aussi pensé a cette approche, mais j'ai en fait differents types de disclaimers (qui font chacun des actions, comme ajouter ou non un cookie, changer de groupe d'utilisateur ...) donc j'ai été obligé de faire un nouveau type de workflow event.
Voici ce que ca donne pour un disclaimer basique qui s'affiche a chaque visite (version non finalisée car bug dans l'admin, j'ai pas encore compris comment tou marche) :
<?php
include_once( "kernel/classes/ezworkflowtype.php" );
include_once( 'lib/ezutils/classes/ezhttptool.php' );
include_once( 'kernel/classes/datatypes/ezuser/ezuser.php' );
include_once( 'kernel/common/template.php' );
include_once( 'lib/ezutils/classes/ezini.php' );
include_once( 'kernel/classes/datatypes/ezuser/ezuserloginhandler.php' );
define( "EZ_WORKFLOW_TYPE_ANONYMOUSDISCLAIMER_ID", "ezanonymousdisclaimer" );
class eZAnonymousDisclaimer extends eZWorkflowEventType
{
/*!
Constructor
*/
function eZAnonymousDisclaimer()
{
$this->eZWorkflowEventType( EZ_WORKFLOW_TYPE_ANONYMOUSDISCLAIMER_ID, "Anonymous Disclaimer" );
}
function execute( &$process, &$event )
{
eZDebug::writeNotice( $process, "process" );
$http =& eZHTTPTool::instance();
$disclaimer_title = "";
if ( $http->hasPostVariable( "Next" ) )
{
if ( $http->hasPostVariable( "answer" ) )
{
$answer = $http->postVariable( "answer" );
eZDebug::writeDebug( 'got answer' );
if ( $answer == 'yes' )
{
eZDebug::writeDebug( 'got yes' );
return EZ_WORKFLOW_TYPE_STATUS_ACCEPTED;
}
else
{
$disclaimer_title = "Please accept this important disclaimer before proceeding with accessing the contents of this website";
eZDebug::writeDebug( 'got no' );
//return EZ_WORKFLOW_TYPE_STATUS_ACCEPTED;
}
}
}
$requestUri = eZSys::requestURI();
$disclaimer_text= $event->attribute( 'data_text1' ) ;
$process->Template = array( 'templateName' =>
'design:workflow/eventtype/result/' .
'event_ezanonymousdisclaimer' . '.tpl',
'templateVars' => array( 'request_uri' => $requestUri , 'disclaimer_title' => $disclaimer_title, 'disclaimer_text' => $disclaimer_text)
);
return EZ_WORKFLOW_TYPE_STATUS_FETCH_TEMPLATE_REPEAT;
}
function fetchHTTPInput( &$http, $base, &$event )
{
$editorVar = $base . "_event_ezezanonymousdisclaimer_text_" . $event->attribute( "id" );
if ( $http->hasPostVariable( $editorVar ) )
{
$editorID = $http->postVariable( $editorVar );
$editorID = $editorID[0];
$event->setAttribute( "data_text1", $editorID );
}
}
function &attributeDecoder( &$event, $attr )
{
eZDebug::writeDebug( 'function attributeDecoder' );
switch ( $attr )
{
case 'disclaimer_text':
{
$text = $event->attribute( 'data_text1' ) ;
return $text;
}break;
}
return null;
}
function typeFunctionalAttributes( )
{
return array( 'disclaimer_text' );
}
}
eZWorkflowEventType::registerType( EZ_WORKFLOW_TYPE_ANONYMOUSDISCLAIMER_ID, "ezanonymousdisclaimer" );
?>
|
|
|
 |
|