Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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;
         }
     }
 }
Exemplo n.º 3
0
 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);
 }
Exemplo n.º 4
0
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;
}
Exemplo n.º 5
0
 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];
 }