/** * The reviewsFormFrame plugin adds styling <div> elements and a validation summary. * * Available parameters: * - assign: If set, the results are assigned to the corresponding variable instead of printed out. * * @param array $params All attributes passed to this function from the template. * @param string $content The content of the block. * @param Zikula_Form_View $view Reference to the view object. * * @return string The output of the plugin. */ function smarty_block_reviewsFormFrame($params, $content, $view) { // As with all Forms plugins, we must remember to register our plugin. // In this case we also register a validation summary so we don't have to // do that explicitively in the templates. // We need to concatenate the output of boths plugins. $result = $view->registerPlugin('\\Zikula_Form_Plugin_ValidationSummary', $params); $result .= $view->registerBlock('Reviews_Form_Plugin_FormFrame', $params, $content); return $result; }
/** * Context menu plugin * * This plugin creates a popup menu to be used as a right-click context menu. To use it you must do three things: * * - Create a menu * - Add menu items (as sub-pugins of the menu) * - Add a reference to the menu (there can be more than one of these) * * Example usage with two menu items: * <code> * {formcontextmenu id='MyMenu' width='150px'} * {formcontextmenuitem commandName='edit' __title='Edit'} * {formcontextmenuitem commandName='new' __title='New'} * {/formcontextmenu} * * {foreach from=items item=item} * {$item.title} {formcontextmenureference menuId='MyMenu' commandArgument=$item.id} * {/foreach} * </code> * As you can see it is possible to reuse the same menu more than once on a page - in the example above it is * used as a context menu for each of the "items" (for instance articles or webshop goods). Where ever you * insert a "formcontextmenureference" you will get a small clickable arrow indicating the menu. Clicking * on the reference will bring op the menu. * * In your event handler (which defaults to "handleCommand") you should check for both commandName and * commandArgument: * <code> * function handleCommand($view, &$args) * { * echo "Command: $args[commandName], $args[commandArgument]. "; * } * </code> * The commandName value indicates the menu item which was clicked and the commandArgument is the value set * at the menu reference. The use of commandArgument makes it easy to identify which $item the menu was * activated for. * * @param array $params Parameters passed in the block tag. * @param string $content Content of the block. * @param Zikula_Form_View $view Reference to Zikula_Form_View object. * * @return string The rendered output. */ function smarty_block_formcontextmenu($params, $content, $view) { return $view->registerBlock('Zikula_Form_Block_ContextMenu', $params, $content); }
/** * Tabbed panel set. * * This plugin is used to create a set of panels with their own tabs for selection. * The actual visibility management is handled in JavaScript by setting the CSS styling * attribute "display" to "hidden" or not hidden. Default styling of the tabs is rather rudimentary * but can be improved a lot with the techniques found at www.alistapart.com. * Usage: * <code> * {formtabbedpanelset} * {formtabbedpanel title='Tab A'} * ... content of first tab ... * {/formtabbedpanel} * {formtabbedpanel title='Tab B'} * ... content of second tab ... * {/formtabbedpanel} * {/formtabbedpanelset} * </code> * You can place any Zikula_Form_View plugins inside the individual panels. The tabs * require some special styling which is handled by the styles in system/Zikula/Module/ThemeModule/Resources/public/css/form/style.css. * If you want to override this styling then either copy the styles to another stylesheet in the * templates directory or change the cssClass attribute to something different than the default * class name. * * @param array $params Parameters passed in the block tag. * @param string $content Content of the block. * @param Zikula_Form_View $view Reference to Zikula_Form_View object. * * @return string The rendered output. */ function smarty_block_formtabbedpanelset($params, $content, $view) { return $view->registerBlock('Zikula_Form_Block_TabbedPanelSet', $params, $content); }
/** * Smarty function to create a tabbed panel. * * @param array $params Parameters passed in the block tag. * @param string $content Content of the block. * @param Zikula_Form_View $render Reference to Form render object. * * @return string The rendered output. */ function smarty_block_formtabbedpanel($params, $content, $render) { return $render->registerBlock('Zikula_Form_Block_TabbedPanel', $params, $content); }
/** * Volatile block container * * This block is a hack, a not so elegant solution, to situations where you need to put * Zikula_Form_View plugins inside conditional smarty tags like if-then-else and foreach. You can * get into problems if you make templates like this: * <code> * {foreach from=... item=...} * {formtextinput ...} * {formbutton ...} * {/foreach} * </code> * This is because the number of plugins on the page may change from one page to another * due to changing conditions or amount of items in the foreach loop: on the first page * you might have 5 iterations, whereas on postback you suddenly have 6. What should then * be done to the missing (or excess) persisted plugin data on postback? The answer is: * Zikula_Form_View cannot handle this - your code will break! * * So you need to tell Zikula_Form_View that the block inside the foreach tags is volatile - Zikula_Form_View * should not try to save the state of the plugins inside the foreach loop. This is done * with the volatile block: * <code> * {formvolatile} * {foreach from=... item=...} * {formtextinput ...} * {formbutton ...} * {/foreach} * {/formvolatile} * </code> * This disables the ability to persist data in the Zikula_Form_View plugins, but does save you * from trouble in some situations. * * You don't need the volatile block if you can guarantee that the number of elements will * be the same always. * * @param array $params Parameters passed in the block tag. * @param string $content Content of the block. * @param Zikula_Form_View $view Reference to Zikula_Form_View object. * * @return string The rendered output. */ function smarty_block_formvolatile($params, $content, $view) { return $view->registerBlock('Zikula_Form_Block_Volatile', $params, $content); }