public function addColumns($defaults) { global $typenow; $postType = KT::arrayTryGetValue($_REQUEST, "post_type") ?: $typenow; if ($this->postType == $postType) { $columns = array(); $indexes = array(); foreach ($this->columns as $key => $args) { $columns[$key] = $args[self::LABEL_PARAM_KEY]; $index = KT::tryGetInt($args[self::INDEX_PARAM_KEY]); if (is_numeric($index) && $index >= 0) { $indexes[$key] = $index; } } $defaults = array_merge($defaults, $columns); foreach ($indexes as $key => $index) { // případné repozicování na základě zadaných indexů $column = $defaults[$key]; // mezipaměť pro vložení $defaults = KT::arrayRemoveByKey($defaults, $key); // odstranění ze současné pozice $defaults = KT::arrayInsert($defaults, $index, $key, $column); // nová požadovaná pozice } } return $defaults; }
/** * Vrátí číslo (v podstatě ID) právě na základě ID property, resp. její číselné přípony * * @author Martin Hlaváč * @link http://www.ktstudio.cz * * @return int */ public function getNumber() { $id = $this->getId(); if (KT::issetAndNotEmpty($id)) { $parts = explode("-", $id); $parts = array_reverse($parts); $number = KT::tryGetInt($parts[0]); if (KT::isIdFormat($number)) { return $number; } else { return next_widget_id_number($this->getName()); } } return 0; }
/** * Ořízně text (řetezec), pokud je delší než požadovaná maximální délka včetně případné přípony * * @author Martin Hlaváč * @link http://www.ktstudio.cz * * @param int $maxLength - požadovaná maxiální délka (ořezu) * @param boolean $fromBeginOrEnd - true od začátku, false od konce * @param string $suffixPrefix - ukončovácí přípona/předpona navíc (podle parametru $fromBeginOrEnd) * @return KT_String */ public function crop($maxLength, $fromBeginOrEnd = true, $suffixPrefix = "...") { $text = $this->getUnsafeValue(); $maxLength = KT::tryGetInt($maxLength); $currentLength = strlen($text); if ($maxLength > 0 && $currentLength > $maxLength) { if ($fromBeginOrEnd) { $text = mb_substr($text, 0, $maxLength) . $suffixPrefix; } else { $text = $suffixPrefix . mb_substr($text, $currentLength - $maxLength, $currentLength); } } $this->unsafeValue = $text; return $this; }
/** * Výpis postů podle zadané query v zadané loopě * * @param WP_Query $query * @param string $loopName * @param mixed int|null $count * @param mixed int|null $offset */ protected function theItemsLoops(array $items, $loopName, $count = null, $offset = null) { if (KT::arrayIssetAndNotEmpty($items)) { $index = 0; if (KT::tryGetInt($offset) > 0) { $items = array_slice($items, $offset); } if (KT::tryGetInt($count) > 0) { $items = array_slice($items, 0, $count); } foreach ($items as $item) { global $post; $post = $item; include locate_template("loops/loop-{$loopName}.php"); $index++; } wp_reset_postdata(); } }
/** * Základní presenter pro práci s daty postu * * @author Tomáš Kocifaj * @link http://www.ktstudio.cz * * @param KT_Modelable|WP_Post $item * @param int $otherPostsLimit * * @return \kt_post_type_presenter_base */ function __construct($item = null, $otherPostsLimit = self::DEFAULT_OTHER_POSTS_LIMIT) { if (KT::issetAndNotEmpty($item)) { if ($item instanceof KT_Postable) { parent::__construct($item); } elseif ($item instanceof WP_Post) { /** * Kvůli zpětné kompatibilitě, časem bude zrušeno -> používejte modely... */ parent::__construct(new KT_WP_Post_Base_Model($item)); if (is_singular($item->post_type)) { static::singularDetailPostProcess(); } } else { throw new KT_Not_Supported_Exception("KT WP Post Base Presenter - Type of {$item}"); } } else { parent::__construct(); } $this->otherPostsLimit = KT::tryGetInt($otherPostsLimit); }
/** * Nastaví HTML parametr tabindex fieldu * * @author Tomáš Kocifaj * @link http://www.ktstudio.cz * * @param type $tabindex * @return \KT_Field */ public function setTabindex($tabindex) { $tabindex = KT::tryGetInt($tabindex); if (KT::isIdFormat($tabindex)) { $this->addAttribute("tabindex", $tabindex); } return $this; }
/** * Nastaví, kolik celkových výsledků bylo při nastavené dotazu zjištěno. * * @author Tomáš Kocifaj * @link http://www.ktstudio.cz * * @param int $countItems * @return \KT_Repository */ protected function setCountItems($countItems) { if (KT::isIdFormat($countItems)) { $countItems = KT::tryGetInt($countItems); $this->countItems = $countItems; } return $this; }
/** * Nastavení (vlastní) sanatizační kód pro hodnotu(y) (výpis) * * @author Matin Hlaváč * @link http://www.ktstudio.cz * * @param int $code * @return \KT_Field */ public function setFilterSanitize($code) { $this->filterSanitize = KT::tryGetInt($code); return $this; }
/** * Nastaví (povinné volitelné) pořadí (pokud je používáno) * * @author Martin Hlaváč * @link http://www.ktstudio.cz * * @param string $menuOrder * @return \KT_Catalog_Model_Base * @throws KT_Not_Set_Argument_Exception */ public function setMenuOrder($menuOrder) { $menuOrder = KT::tryGetInt($menuOrder); if (is_integer($menuOrder)) { $this->addNewColumnValue(self::MENU_ORDER_COLUMN, $menuOrder); return $this; } throw new KT_Not_Set_Argument_Exception("menu_order"); }
/** * Povolí aplikaci automatická verze - vhodné pro cachování * Pozor: pokud není aktivní cachování, tak hrozí zpomalení potencionálně v řádu desítek až stovek milisekund s každým souborem, především pro externí soubory mimo vlastní server * Pozn.: aplikuje se pouze, pokud není zadána verze explicitně * Pozn.: pro cachování využívá cookies nebo zadejte NULL (= bez cache) * * @author Martin Hlaváč * @link http://www.ktstudio.cz * * @param mixed int|null $expiration * @return \kt_wp_script_handle */ public function enableAutoVersion($expiration = self::DEFAULT_VERSION_EXPIRATION) { $this->isAutoVersion = true; $this->autoVersionExpiration = KT::tryGetInt($expiration); return $this; }
/** * Vrátí pole s formáty pro bezpečnější práci s daty * * @author Tomáš Kocifaj * @link http://www.ktstudio.cz * * @return array */ private function getColumnsWithFormatsData() { $formats = array(); $columns = array(); foreach ($this->getColumns() as $column) { if ($column->getName() == $this->getPrimaryKeyColumn()) { continue; } $type = $column->getType(); $value = $column->getValue(); if ($column->getNullable() && $value == "") { $formats[] = "%s"; $columns[$column->getName()] = "NULL"; continue; } switch ($type) { case KT_CRUD_Column::INT: $formats[] = "%d"; $columns[$column->getName()] = KT::tryGetInt($value); break; case KT_CRUD_Column::BIGINT: $formats[] = "%f"; $columns[$column->getName()] = floor(KT::tryGetFloat($value)); // simulace "long" break; case KT_CRUD_Column::FLOAT: $formats[] = "%f"; $columns[$column->getName()] = KT::tryGetFloat($value); break; case KT_CRUD_Column::DATE: $formats[] = "%s"; $columns[$column->getName()] = KT::dateConvert($value, "Y-m-d"); break; case KT_CRUD_Column::DATETIME: $formats[] = "%s"; $columns[$column->getName()] = KT::dateConvert($value, "Y-m-d H:i:s"); break; default: $formats[] = "%s"; $columns[$column->getName()] = $value; break; } } $data = new stdClass(); $data->formats = $formats; $data->columns = $columns; return $data; }
private function setCategoryId($value) { $this->categoryId = KT::tryGetInt($value); return $this; }
/** * Výpis postů podle zadané query v zadané loopě * * @author Martin Hlaváč * @link http://www.ktstudio.cz * * @param array $items * @param string $loopName * @param mixed int|null $count * @param mixed int|null $offset * @param array $clearfixes pole clearfixů k printu podle klíče (modulo) */ public static function theItemsLoops(array $items, $loopName, $count = null, $offset = null, array $clearfixes = null) { if (KT::arrayIssetAndNotEmpty($items)) { $isClearfixes = KT::arrayIssetAndNotEmpty($clearfixes); self::$currentItemsLoopIndex = 0; if (KT::tryGetInt($offset) > 0) { $items = array_slice($items, $offset); } if (KT::tryGetInt($count) > 0) { $items = array_slice($items, 0, $count); } foreach ($items as $item) { global $post; $post = $item; include locate_template("loops/loop-{$loopName}.php"); self::$currentItemsLoopIndex++; if ($isClearfixes) { self::theClearfixes($clearfixes, self::$currentItemsLoopIndex); } } self::$currentItemsLoopIndex = null; wp_reset_postdata(); } }
/** * Nastaví minimální povolený level * * @author Martin Hlaváč * @link http://www.ktstudio.cz * * @param int $minLevel */ public static function setMinLevel($minLevel) { self::$minLevel = KT::tryGetInt($minLevel); }
/** * Vrátí časové pásmo, resp. časovou zónu zadanou v administraci (cachovanou per request) * * @author Martin Hlaváč * @link http://www.ktstudio.cz * * @return int */ public static function dateGmtOffset() { $dateGmtOffset = self::$dateGmtOffset; if (isset($dateGmtOffset)) { return $dateGmtOffset; } return self::$dateGmtOffset = KT::tryGetInt(get_option("gmt_offset")); }
/** * Vratí seřazené pole s odeslanými hodnoty * @return array */ private function prepareValue() { $finalValue = []; // Počet vygenerovaných fieldů uživatelem $count = KT::tryGetInt($this->getCoutField()->getValue()); for ($i = 0; $i < $count; $i++) { // Vygenerování příslušného fieldsetu $fieldset = $this->getFieldset(); $postPrefix = $fieldset->getName() . "-" . $i; $fieldset->setPostPrefix($postPrefix); // Kontrola odelasní dat if (!isset($_REQUEST[$postPrefix])) { continue; } //Sběr dat $fieldsetValues = []; foreach ($fieldset->getFields() as $field) { $fieldsetValues[$field->getName()] = $field->getValue(); } $finalValue[] = $fieldsetValues; } return $finalValue; }
/** * Založení základního presenteru pro výpis komentářů postu * * @author Martin Hlaváč * @link http://www.ktstudio.cz * * @param int $postId */ public function __construct($postId) { parent::__construct(); $this->postId = KT::tryGetInt($postId); }
/** * Provede odstraní všech zadaných head hodnot * Pozn.: netřeba volat veřejně - provede se automaticky v rámci @see \KT_WP_Configurator * * @author Martin Hlaváč * @link http://www.ktstudio.cz * * @return \KT_WP_Head_Remover_Configurator */ public function doRemoveHeads() { foreach ($this->getHeadRemoverData() as $head => $args) { if (KT::arrayIssetAndNotEmpty($args)) { $priority = KT::arrayTryGetValue($args, "priority"); if (KT::tryGetInt($priority)) { $params = KT::arrayTryGetValue($args, "params"); if (KT::tryGetInt($priority)) { remove_action("wp_head", "{$head}", $priority, $params); } else { remove_action("wp_head", "{$head}", $priority); } } } else { remove_action("wp_head", "{$head}"); } } }
/** * Nastavení délku excreptu pří výpisu entit. * * @author Tomáš Kocifaj * @link http://www.ktstudio.cz * * @param int $excerptLenght * @return \KT_WP_Configurator */ public function setExcerptLength($excerptLenght) { $excerptLenght = KT::tryGetInt($excerptLenght); if (KT::issetAndNotEmpty($excerptLenght)) { $this->excerptLength = $excerptLenght; } return $this; }
/** * Nastaví pořadí sloupce v tabulce zařeno 1,2,3...n * * @author Tomáš Kocifaj * @link www.ktstduio.cz * * @param int $position * @return \KT_CRUD_Admin_Column */ public function setPosition($position) { if (!KT::tryGetInt($position)) { throw new InvalidArgumentException("position have to by an int type"); } $this->position = KT::tryGetInt($position); return $this; }