Поддержать Проект

Обратная связь

[MODX] Guru
  • Информация
  • Разработчикам
    • Теги
    • API
    • DBAPI
    • System Variables
    • MMrules
  • Дополнения
  • Виджеты
  • Уроки
  • Разработчики
  • Готовые примеры
  • Блог
  • Конфиги
  • HTML коды
© [MODX] Guru
  • API

runSnippet API MODX Evo ✈ Evolution CMS

  • Разработчикам
  • API
  • runSnippet
Menu
  • addEventListener
  • changeWebUserPassword
  • clearCache
  • getActiveChildren
  • getAllChildren
  • getCachePath
  • getChildIds
  • getChunk
  • getConfig
  • getDocument
  • getDocumentChildren
  • getDocumentChildrenTVarOutput
  • getDocumentChildrenTVars
  • getDocumentObject
  • getDocuments
  • getFullTableName
  • getKeywords
  • getLoginUserID
  • getLoginUserName
  • getLoginUserType
  • getManagerPath
  • getMETATags
  • getPageInfo
  • getParent
  • getParentIds
  • getPlaceholder
  • getSnippetId
  • getSnippetName
  • getTemplateVar
  • getTemplateVarOutput
  • getTemplateVars
  • getUserData
  • getUserDocGroups
  • getUserInfo
  • getVersionData
  • getWebUserInfo
  • hasPermission
  • insideManager
  • invokeEvent
  • isBackend
  • isFrontend
  • isMemberOfWebGroup
  • logEvent
  • makeList
  • makeUrl
  • mapPath
  • parseChunk
  • parseText
  • parseProperties
  • putChunk
  • regClientCSS
  • regClientHTMLBlock
  • regClientScript
  • regClientStartupHTMLBlock
  • regClientStartupScript
  • removeAllEventListener
  • removeEventListener
  • runSnippet
  • sendAlert
  • setPlaceholder
  • stripTags
  • toPlaceholder
  • toPlaceholders
  • userLoggedIn
  • webAlert
  • sendmail
6841

runSnippet API MODX Evo ✈ Evolution CMS

Возвращает результат выполнения сниппета с заданными параметрами

string runSnippet(string $snippetName [, array $params]);

$snippetName - название сниппета (чувствительно к регистру!)

$params - массив со значениями параметров


Пример

$txt = $modx->runSnippet(
	'Ditto',
	array(
		'startID' => 2, 
		'summarize' => 2, 
		'removeChunk' => 'Comments', 
		'tpl' => 'ditto_blog', 
		'paginate' => 1, 
		'extenders' => 'summary,dateFilter', 
		'paginateAlwaysShowLinks' => 1, 
		'tagData' => 'documentTags' 
	)
);
//вернет результат работы сниппета Ditto, который идентичен вызову:
[[Ditto?
&startID=`2`
&summarize=`2`
&removeChunk=`Comments`
&tpl=`ditto_blog`
&paginate=`1`
&extenders=`summary,dateFilter`
&paginateAlwaysShowLinks=`1`
&tagData=`documentTags`]]

Источник Функции

Файл: manager/includes/document.parser.class.inc.php

Строка: 1689

function runSnippet($snippetName, $params= array ()) {
	if (isset ($this->snippetCache[$snippetName])) {
		$snippet= $this->snippetCache[$snippetName];
		$properties= $this->snippetCache[$snippetName . "Props"];
	} else { // not in cache so let's check the db
		$sql= "SELECT * FROM " . $this->getFullTableName("site_snippets") . " WHERE " . $this->getFullTableName("site_snippets") . ".name='" . mysql_escape_string($snippetName) . "';";
		$result= $this->dbQuery($sql);
		if ($this->recordCount($result) == 1) {
			$row= $this->fetchRow($result);
			$snippet= $this->snippetCache[$row['name']]= $row['snippet'];
			$properties= $this->snippetCache[$row['name'] . "Props"]= $row['properties'];
		} else {
			$snippet= $this->snippetCache[$snippetName]= "return false;";
			$properties= '';
		}
	}
	// load default params/properties
	$parameters= $this->parseProperties($properties);
	$parameters= array_merge($parameters, $params);
	// run snippet
	return $this->evalSnippet($snippet, $parameters);
}

Примечания

Массив параметров, получаемых этой функции должны быть в форме 'В параметре' => 'значение'; Если вы предпочитаете вызов более читаемый функцию, создать массив первых, таких как:

$params['param1'] = 'value1';
$params['param2'] = 'value2';
$html = $modx->runSnippet('mysnippet', $params);