Forums / Developer / Showing template in event type

Showing template in event type

Author Message

Eirik Alfstad Johansen

Saturday 04 September 2004 4:21:28 am

Hi,

I've written an event type that runs on the content | publish | after trigger and is supposed to display a template. The code I'm using is as follows:

$requestUri = eZSys::requestUri();

$process->Template = array( 'templateName' => 'design:storeprofile/profilestored.tpl',
                          'templateVars' => array( 'viewmode' => 'full',
                                                   'request_uri' => $requestUri )
                          );
return EZ_WORKFLOW_TYPE_STATUS_FETCH_TEMPLATE_REPEAT;

However, instead of displaying the template, I'm forwarded to the full view of the parent node under which I've just created a node (the default behaviour of content/edit). I know that the code block gets executed, so what could I be doing wrong?

BTW, I'm running 3.4.0.

Thanks in advance !

Sincerely,

Eirik Alfstad Johansen
http://www.netmaking.no/

Paul Forsyth

Saturday 04 September 2004 5:03:27 am

Eirik,

This occurs because content/edit doesnt respect the workflow result. I filed this bug a while back:

http://ez.no/community/bug_reports/workflow_results_are_ignored_in_content_edit_php

Here is a patch i used to get redirects to work. Im not sure if it will work for 'results'. In my workflow i have a line like:

$process->RedirectUrl="/mymodule/myview";

whoich works with this code. Please play with it!

--- old/kernel/content/edit.php	2004-07-27 13:09:30.000000000 +0100
+++ new/kernel/content/edit.php	2004-07-30 15:03:35.408200218 +0100
@@ -30,8 +30,9 @@
 // http://www.gnu.org/copyleft/gpl.html.
 //
 // Contact [email protected] if any conditions of this licencing isn't clear to
 // you.
+
 //
 
 include_once( 'kernel/classes/eztrigger.php' );
 include_once( "lib/ezutils/classes/ezini.php" );
@@ -333,8 +334,38 @@
             eZDebug::accumulatorStart( 'publish', '', 'publish' );
             $oldObjectName = $object->name();
             $operationResult = eZOperationHandler::execute( 'content', 'publish', array( 'object_id' => $object->attribute( 'id' ),
                                                                                          'version' => $version->attribute( 'version' ) ) );
+            $hasRedirected = false;
+switch( $operationResult['status'] )
+{
+    case EZ_MODULE_OPERATION_HALTED:
+    {
+        if (  isset( $operationResult['redirect_url'] ) )
+        {
+
+	  eZDebug::writeNotice("redirect_url".$operationResult['redirect_url']);
+            $module->redirectTo( $operationResult['redirect_url'] );
+	    $hasRedirected = true;
+        }
+        else if ( isset( $operationResult['result'] ) )
+        {
+            $result =& $operationResult['result'];
+            $resultContent = false;
+            if ( is_array( $result ) )
+            {
+                if ( isset( $result['content'] ) )
+                    $resultContent = $result['content'];
+                if ( isset( $result['path'] ) )
+                    $Result['path'] = $result['path'];
+            }
+            else
+                $resultContent =& $result;
+            $Result['content'] =& $resultContent;
+        }
+    }break;
+}
+
             eZDebug::accumulatorStop( 'publish' );
 
             $object = eZContentObject::fetch( $object->attribute( 'id' ) );
 
@@ -342,9 +373,8 @@
 
             $http =& eZHttpTool::instance();
 
             $node = $object->mainNode();
-            $hasRedirected = false;
             if ( $http->hasSessionVariable( 'ParentObject' ) && $http->sessionVariable( 'NewObjectID' ) == $object->attribute( 'id' ) )
             {
                 $parentArray = $http->sessionVariable( 'ParentObject' );
                 $parentURL = $module->redirectionURI( 'content', 'edit', $parentArray );


paul

Xavier Dutoit

Friday 26 November 2004 7:54:11 am

One of my colleague was banging his head on the wall for the past few days trying to solve this problem...

Any reason to use a switch ? are we supposed to deal with other values EZ_MODULES ?

X+

http://www.sydesy.com