Forums / Developer / Showing template in event type

"Please Note:
  • At the specific request of Ibexa we are changing this projects name to "Exponential" or "Exponential (CMS)" effective as of August, 11th 2025.
  • This project is not associated with the original eZ Publish software or its original developer, eZ Systems or Ibexa".

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 licence@ez.no 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