-
-
Save patrickatwsrn/2c174a724a76f1c209109074531abe5b to your computer and use it in GitHub Desktop.
MODx Revo snippet.
This a snippet is generator a list of possible values from a list of existing values by tv name.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/*[[newGetTvList? &tvname=`articlestags`]] | |
* Аналогично: | |
*@EVAL return $modx->runSnippet('GetTvList',array('tvname'=>'articlestags')); | |
* | |
* | |
*Убирает все пробелы, заменяет ','=>'||' | |
*Сниппет получает все значения ТВ по tv.name и формирует в список возможных значений | |
*для tv Множественный выбор, Одиночный выбор. | |
*/ | |
if(!isset($modx)) return; | |
$tvname = $modx->getOption('tvname', $scriptProperties,'articlestags'); | |
$q = $modx->newQuery('modTemplateVar', array('name' => $tvname)); | |
$q->limit(1); | |
$q->select('id'); | |
$result = array(); | |
if ($q->prepare() && $q->stmt->execute()) { | |
$ids = $q->stmt->fetchAll(PDO::FETCH_COLUMN, 0); | |
if (count($ids)){ | |
$q = $modx->newQuery('modTemplateVarResource', array('tmplvarid:IN' => $ids)); | |
$q->select('value'); | |
if ($q->prepare() && $q->stmt->execute()) { | |
$res = $q->stmt->fetchAll(PDO::FETCH_COLUMN, 0); | |
if (count($res)) { | |
foreach ($res as $v) | |
{ | |
$tags = explode(',', $v); | |
foreach ($tags as $tag) | |
{ | |
$tag = trim($tag); | |
//$tag = mb_strtolower(trim($tag), 'utf-8'); | |
//$tag = mb_strtoupper(mb_substr($tag, 0, 1, 'UTF-8'), 'UTF-8') . mb_substr($tag, 1, mb_strlen($tag), 'UTF-8'); | |
if (!in_array($tag, $result)) | |
{ | |
$result[] = $tag; | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
return implode('||', $result); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment