/** * Initialize form handler. * * This method takes care of all necessary initialisation of our data and form states. * * @param Zikula_Form_View $view The form view instance. * * @return boolean False in case of initialization errors, otherwise true. */ public function initialize(Zikula_Form_View $view) { parent::initialize($view); if ($this->mode == 'create') { $modelHelper = new Reviews_Util_Model($this->view->getServiceManager()); if (!$modelHelper->canBeCreated($this->objectType)) { LogUtil::registerError($this->__('Sorry, but you can not create the review yet as other items are required which must be created before!')); return $this->view->redirect($this->getRedirectUrl(null)); } } $entity = $this->entityRef; // save entity reference for later reuse $this->entityRef = $entity; $entityData = $entity->toArray(); if (count($this->listFields) > 0) { $helper = new Reviews_Util_ListEntries($this->view->getServiceManager()); foreach ($this->listFields as $listField => $isMultiple) { $entityData[$listField . 'Items'] = $helper->getEntries($this->objectType, $listField); if ($isMultiple) { $entityData[$listField] = $helper->extractMultiList($entityData[$listField]); } } } // assign data to template as array (makes translatable support easier) $this->view->assign($this->objectTypeLower, $entityData); if ($this->mode == 'edit') { // assign formatted title $this->view->assign('formattedEntityTitle', $entity->getTitleFromDisplayPattern()); } // everything okay, no initialization errors occured return true; }
/** * The reviewsGetListEntry modifier displays the name * or names for a given list item. * * @param string $value The dropdown value to process. * @param string $objectType The treated object type. * @param string $fieldName The list field's name. * @param string $delimiter String used as separator for multiple selections. * * @return string List item name. */ function smarty_modifier_reviewsGetListEntry($value, $objectType = '', $fieldName = '', $delimiter = ', ') { if (empty($value) || empty($objectType) || empty($fieldName)) { return $value; } $serviceManager = ServiceUtil::getManager(); $helper = new Reviews_Util_ListEntries($serviceManager); return $helper->resolve($value, $objectType, $fieldName, $delimiter); }
/** * Retrieve the available actions for a given entity object. * * @param \Zikula_EntityAccess $entity The given entity instance. * * @return array List of available workflow actions. */ public function getActionsForObject($entity) { // get possible actions for this object in it's current workflow state $objectType = $entity['_objectType']; $idcolumn = $entity['__WORKFLOW__']['obj_idcolumn']; $wfActions = Zikula_Workflow_Util::getActionsForObject($entity, $objectType, $idcolumn, $this->name); // as we use the workflows for multiple object types we must maybe filter out some actions $listHelper = new Reviews_Util_ListEntries($this->serviceManager); $states = $listHelper->getEntries($objectType, 'workflowState'); $allowedStates = array(); foreach ($states as $state) { $allowedStates[] = $state['value']; } $actions = array(); foreach ($wfActions as $actionId => $action) { $nextState = isset($action['nextState']) ? $action['nextState'] : ''; if ($nextState != '' && !in_array($nextState, $allowedStates)) { continue; } $actions[$actionId] = $action; $actions[$actionId]['buttonClass'] = $this->getButtonClassForAction($actionId); } return $actions; }
/** * Returns an array of additional template variables which are specific to the object type treated by this repository. * * @param string $context Usage context (allowed values: controllerAction, api, actionHandler, block, contentType). * @param array $args Additional arguments. * * @return array List of template variables to be assigned. */ public function getAdditionalTemplateParameters($context = '', $args = array()) { if (!in_array($context, array('controllerAction', 'api', 'actionHandler', 'block', 'contentType'))) { $context = 'controllerAction'; } $templateParameters = array(); if ($context == 'controllerAction') { if (!isset($args['action'])) { $args['action'] = FormUtil::getPassedValue('func', 'main', 'GETPOST'); } if (in_array($args['action'], array('main', 'view'))) { $templateParameters = $this->getViewQuickNavParameters($context, $args); $listHelper = new Reviews_Util_ListEntries(ServiceUtil::getManager()); $templateParameters['workflowStateItems'] = $listHelper->getEntries('review', 'workflowState'); $templateParameters['scoreItems'] = $listHelper->getEntries('review', 'score'); } // initialise Imagine preset instances $imageHelper = new Reviews_Util_Image(ServiceUtil::getManager()); $objectType = 'review'; $templateParameters[$objectType . 'ThumbPresetCoverUpload'] = $imageHelper->getPreset($objectType, 'coverUpload', $context, $args); if (in_array($args['action'], array('display', 'view'))) { // use separate preset for images in related items $templateParameters['relationThumbPreset'] = $imageHelper->getCustomPreset('', '', 'Reviews_relateditem', $context, $args); } } // in the concrete child class you could do something like // $parameters = parent::getAdditionalTemplateParameters($context, $args); // $parameters['myvar'] = 'myvalue'; // return $parameters; return $templateParameters; }
/** * Returns a list of possible choices for the score list field. * This method is used for validation. */ public static function getScoreAllowedValues() { $serviceManager = ServiceUtil::getManager(); $helper = new Reviews_Util_ListEntries($serviceManager); $listEntries = $helper->getScoreEntriesForReview(); $allowedValues = array(); foreach ($listEntries as $entry) { $allowedValues[] = $entry['value']; } return $allowedValues; }