public function getJsParams() { $result = array(); /* @var $item ShowcasesControllerItem */ foreach ($this->items as $ident => $item) { $params = $item->getJsParams(); if (!isTotallyEmpty($params)) { $result[$ident] = $params; } } return $result; }
private static function expand0($var, &$result, $takeAll) { if (is_array($var)) { foreach ($var as $value) { self::expand0($value, $result, $takeAll); } } else { if ($takeAll || !isTotallyEmpty($var)) { $result[] = $var; } } }
private function db2php($dbVal) { if (is_null($dbVal)) { return null; } if (gettype($dbVal) == $this->phpType) { return $dbVal; } $dbVal = isTotallyEmpty($dbVal) ? null : trim($dbVal); switch ($this->phpType) { case PsConst::PHP_TYPE_INTEGER: return PsCheck::intOrNull($dbVal); case PsConst::PHP_TYPE_STRING: return $dbVal; case PsConst::PHP_TYPE_BOOLEAN: return !!$dbVal; } raise_error('Нет правил конвертации ' . __FUNCTION__ . ' для типа ' . $this->phpType); }
function to_array_expand($values, $takeTotallyEmpty = false, &$result = array()) { if (is_array($values)) { foreach ($values as $value) { to_array_expand($value, $takeTotallyEmpty, $result); } } else { if ($takeTotallyEmpty || !isTotallyEmpty($values)) { $result[] = $values; } } return $result; }
public final function includePanel($panelName) { if (array_key_exists($panelName, $this->includedPanels)) { return $this->includedPanels[$panelName]; } check_condition($this instanceof PanelFolding, "Фолдинг {$this} не может работать с панелями"); check_condition(in_array($panelName, PsUtil::getClassConsts($this, 'PANEL_')), "Панель [{$panelName}] не может быть предоставлена фолдингом {$this}"); //Сразу отметим, что панель была запрошена, так как может возникнуть ошибка $this->includedPanels[$panelName] = ''; /* * Уникальный код панели - тот самый, через который потом можно будет * достучаться до параметров панели из javascript. */ $panelUnique = $this->getUnique($panelName); //Стартуем профайлер $this->profilerStart(__FUNCTION__ . "({$panelName})"); /** @var PluggablePanel */ $panel = $this->buildPanel($panelName); //Мог вернуться и null, тогда ничего не подключаем if ($panel == null) { //Останавливаем профайлер без сохранения $this->profilerStop(false); return ''; } //Останавливаем профайлер $this->profilerStop(); check_condition($panel instanceof PluggablePanel, "Возвращена некорректная панель {$panelUnique}. Ожидался обект типа PluggablePanel, получен: " . PsUtil::getClassName($panel)); //Html content $this->includedPanels[$panelName] = trim($panel->getHtml()); //Js params $jsParams = $panel->getJsParams(); if (!isTotallyEmpty($jsParams)) { PageBuilderContext::getInstance()->setJsParamsGroup(PsConstJs::PAGE_JS_GROUP_PANELS, $panelUnique, $jsParams); } //Smarty resources params $smartyParams4Resources = $panel->getSmartyParams4Resources(); if (is_array($smartyParams4Resources) && !empty($smartyParams4Resources)) { PageBuilderContext::getInstance()->setSmartyParams4Resources($smartyParams4Resources); } return $this->includedPanels[$panelName]; }