本文整理汇总了PHP中eZTemplate::hasVariable方法的典型用法代码示例。如果您正苦于以下问题:PHP eZTemplate::hasVariable方法的具体用法?PHP eZTemplate::hasVariable怎么用?PHP eZTemplate::hasVariable使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eZTemplate
的用法示例。
在下文中一共展示了eZTemplate::hasVariable方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: setPersistentArray
/**
* Function for setting values to deal with persistent_variable either from
* template or internally on {@link self::$persistentVariable}
*
* @internal
* @param string $key Key to store values on
* @param string|array $value Value(s) to store
* @param eZTemplate $tpl Template object to get values from
* @param bool $append Append or prepend value?
* @param bool $arrayUnique Make sure array is unique to remove duplicates
* @param bool $returnArrayDiff Return diff against existing values instead of resulting array
* @param bool $override Override/Wipe out values or merge?
* @return array
*/
public static function setPersistentArray($key, $value, eZTemplate $tpl, $append = true, $arrayUnique = false, $returnArrayDiff = false, $override = false)
{
$isPageLayout = false;
$persistentVariable = array();
if ($tpl->hasVariable('module_result')) {
$isPageLayout = true;
$moduleResult = $tpl->variable('module_result');
}
if (isset($moduleResult['content_info']['persistent_variable'])) {
$persistentVariable = $moduleResult['content_info']['persistent_variable'];
} else {
if (!$isPageLayout && $tpl->hasVariable('persistent_variable')) {
$persistentVariable = $tpl->variable('persistent_variable');
} else {
if (self::$persistentVariable !== null) {
$persistentVariable = self::$persistentVariable;
}
}
}
if ($persistentVariable === false || !is_array($persistentVariable)) {
// Give warning if value is not array as we depend on it
if (!$isPageLayout && $persistentVariable) {
eZDebug::writeError('persistent_variable was not an array and where cleared, see ezjscore requriments!', __METHOD__);
}
$persistentVariable = array();
}
// make a copy in case we need to diff value in the end
$persistentVariableCopy = $persistentVariable;
if (!$override) {
if (isset($persistentVariable[$key]) && is_array($persistentVariable[$key])) {
if (is_array($value)) {
if ($append) {
$persistentVariable[$key] = array_merge($persistentVariable[$key], $value);
} else {
$persistentVariable[$key] = array_merge($value, $persistentVariable[$key]);
}
} else {
if ($append) {
$persistentVariable[$key][] = $value;
} else {
$persistentVariable[$key] = array_merge(array($value), $persistentVariable[$key]);
}
}
} else {
if (is_array($value)) {
$persistentVariable[$key] = $value;
} else {
$persistentVariable[$key] = array($value);
}
}
} else {
$persistentVariable[$key] = $value;
}
if ($arrayUnique && isset($persistentVariable[$key][1])) {
$persistentVariable[$key] = array_unique($persistentVariable[$key]);
}
// set the finnished array in the template
if ($isPageLayout) {
if (isset($moduleResult['content_info']['persistent_variable'])) {
$moduleResult['content_info']['persistent_variable'] = $persistentVariable;
$tpl->setVariable('module_result', $moduleResult);
}
} else {
$tpl->setVariable('persistent_variable', $persistentVariable);
}
// storing the value internally as well in case this is not a view that supports persistent_variable (ezpagedata will look for it)
self::$persistentVariable = $persistentVariable;
if ($returnArrayDiff && isset($persistentVariableCopy[$key][0])) {
return array_diff($persistentVariable[$key], $persistentVariableCopy[$key]);
}
return $persistentVariable[$key];
}
示例2: generateNodeViewData
//.........这里部分代码省略.........
}
$res = eZTemplateDesignResource::instance();
$res->setKeys($keyArray);
if ($languageCode) {
$oldLanguageCode = $node->currentLanguage();
$node->setCurrentLanguage($languageCode);
}
$tpl->setVariable('node', $node);
$tpl->setVariable('viewmode', $viewMode);
$tpl->setVariable('language_code', $languageCode);
if (isset($viewParameters['_custom'])) {
foreach ($viewParameters['_custom'] as $customVarName => $customValue) {
$tpl->setVariable($customVarName, $customValue);
}
unset($viewParameters['_custom']);
}
$tpl->setVariable('view_parameters', $viewParameters);
$tpl->setVariable('collection_attributes', $collectionAttributes);
$tpl->setVariable('validation', $validation);
$tpl->setVariable('persistent_variable', false);
$parents = $node->attribute('path');
$path = array();
$titlePath = array();
foreach ($parents as $parent) {
$path[] = array('text' => $parent->attribute('name'), 'url' => '/content/view/full/' . $parent->attribute('node_id'), 'url_alias' => $parent->attribute('url_alias'), 'node_id' => $parent->attribute('node_id'));
}
$titlePath = $path;
$path[] = array('text' => $object->attribute('name'), 'url' => false, 'url_alias' => false, 'node_id' => $node->attribute('node_id'));
$titlePath[] = array('text' => $object->attribute('name'), 'url' => false, 'url_alias' => false);
$tpl->setVariable('node_path', $path);
$event = ezpEvent::getInstance();
$event->notify('content/pre_rendering', array($node, $tpl, $viewMode));
$Result = array();
$Result['content'] = $tpl->fetch('design:node/view/' . $viewMode . '.tpl');
$Result['view_parameters'] = $viewParameters;
$Result['path'] = $path;
$Result['title_path'] = $titlePath;
$Result['section_id'] = $object->attribute('section_id');
$Result['node_id'] = $node->attribute('node_id');
$Result['navigation_part'] = $navigationPartIdentifier;
$contentInfoArray = array();
$contentInfoArray['object_id'] = $object->attribute('id');
$contentInfoArray['node_id'] = $node->attribute('node_id');
$contentInfoArray['parent_node_id'] = $node->attribute('parent_node_id');
$contentInfoArray['class_id'] = $object->attribute('contentclass_id');
$contentInfoArray['class_identifier'] = $node->attribute('class_identifier');
$contentInfoArray['remote_id'] = $object->attribute('remote_id');
$contentInfoArray['node_remote_id'] = $node->attribute('remote_id');
$contentInfoArray['offset'] = $offset;
$contentInfoArray['viewmode'] = $viewMode;
$contentInfoArray['navigation_part_identifier'] = $navigationPartIdentifier;
$contentInfoArray['node_depth'] = $node->attribute('depth');
$contentInfoArray['url_alias'] = $node->attribute('url_alias');
$contentInfoArray['current_language'] = $object->attribute('current_language');
$contentInfoArray['language_mask'] = $object->attribute('language_mask');
$contentInfoArray['main_node_id'] = $node->attribute('main_node_id');
$contentInfoArray['main_node_url_alias'] = false;
// Add url alias for main node if it is not current node and user has access to it
if (!$node->isMain()) {
$mainNode = $object->mainNode();
if ($mainNode->canRead()) {
$contentInfoArray['main_node_url_alias'] = $mainNode->attribute('url_alias');
}
}
$contentInfoArray['persistent_variable'] = false;
if ($tpl->variable('persistent_variable') !== false) {
$contentInfoArray['persistent_variable'] = $tpl->variable('persistent_variable');
$keyArray[] = array('persistent_variable', $contentInfoArray['persistent_variable']);
$res->setKeys($keyArray);
}
$contentInfoArray['class_group'] = $object->attribute('match_ingroup_id_list');
$contentInfoArray['state'] = $object->attribute('state_id_array');
$contentInfoArray['state_identifier'] = $object->attribute('state_identifier_array');
$contentInfoArray['parent_class_id'] = $parentClassID;
$contentInfoArray['parent_class_identifier'] = $parentClassIdentifier;
$contentInfoArray['parent_node_remote_id'] = $parentNodeRemoteID;
$contentInfoArray['parent_object_remote_id'] = $parentObjectRemoteID;
$Result['content_info'] = $contentInfoArray;
// Store which templates were used to make this cache.
$Result['template_list'] = $tpl->templateFetchList();
// Check if time to live is set in template
if ($tpl->hasVariable('cache_ttl')) {
$cacheTTL = $tpl->variable('cache_ttl');
}
if (!isset($cacheTTL)) {
$cacheTTL = -1;
}
$Result['cache_ttl'] = $cacheTTL;
// if cache_ttl is set to 0 from the template, we need to add a no-cache advice
// to the node's data. That way, the retrieve callback on the next calls
// will be able to determine earlier that no cache generation should be started
// for this node
if ($cacheTTL == 0) {
$Result['no_cache'] = true;
}
if ($languageCode) {
$node->setCurrentLanguage($oldLanguageCode);
}
return $Result;
}
示例3: getPath
/**
* @param eZTemplate $tpl
*
* @return array
*/
private function getPath($tpl)
{
if ($tpl->hasVariable('module_result')) {
$moduleResult = $tpl->variable('module_result');
} else {
$moduleResult = array();
}
// $viewmode = false;
// if ( isset( $moduleResult['content_info'] ) )
// {
// if ( isset( $moduleResult['content_info']['viewmode'] ) )
// {
// $viewmode = $moduleResult['content_info']['viewmode'];
// }
// }
return isset($moduleResult['path']) && is_array($moduleResult['path']) ? $moduleResult['path'] : array();
}