/**
  * Nastaví případnou parent_page, jejížš děti budou nabídnuty v selectu
  * 
  * @author Tomáš Kocifaj
  * @link http://www.ktstudio.cz
  * 
  * @param int $parentPage
  */
 public function setParentPage($parentPage)
 {
     if (KT::isIdFormat($parentPage)) {
         $this->parentPage = $parentPage;
     }
     return $this;
 }
 /**
  * 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;
 }
示例#3
0
 /**
  * inicializace dat na základě předaného hodnoty v construktoru
  *
  * @author Tomáš Kocifaj
  * @link http://www.ktstudio.cz
  *
  * @return \KT_Crud
  */
 private function rowDataInit()
 {
     if (!KT::isIdFormat($this->getId())) {
         return;
     }
     global $wpdb;
     $query = "SELECT * FROM {$this->getTable()} WHERE {$this->getPrimaryKeyColumn()} = %d";
     $result = $wpdb->get_row($wpdb->prepare($query, $this->getId()), ARRAY_A);
     if ($result === null) {
         $this->addError("Došlo k chybě při výběru dat z DB", $wpdb->last_error);
         $this->setId(null);
         return;
     }
     $this->setData($result);
     return $this;
 }
 public function isCompetitiveAdvantagesMaxCount()
 {
     return KT::isIdFormat($this->getCompetitiveAdvantagesMaxCount());
 }
 /**
  * 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;
 }
 /**
  * Provede inicializaci uživatele a jeho dat.
  *
  * @author Tomáš Kocifaj
  * @link http://www.ktstudio.cz
  *
  * @param int $userId
  * @return \KT_WP_User_Base_Model
  * @throws KT_Not_Supported_Exception
  */
 private function wpUserInitById($userId)
 {
     if (KT::isIdFormat($userId)) {
         $wpUser = get_user_by("id", $userId);
         if ($wpUser) {
             $this->setWpUser($wpUser);
         } else {
             throw new KT_Not_Supported_Exception(__("ID uživatele neexistuje (ve WP databázi).", "KT_CORE_DOMAIN"));
         }
     }
     return $this;
 }
 /**
  * Vrátí permalink na požadovaný nebo výchozí (RSS) feed podle aktuálního uživatele (ID)
  * 
  * @author Martin Hlaváč
  * @link http://www.ktstudio.cz
  * 
  * @param string $feed
  * @return mixed string|null
  */
 public function getCurrentUserFeedLink($feed = "")
 {
     $id = $this->getCurrentUserId();
     if (KT::isIdFormat($id)) {
         return get_author_feed_link($id, $feed);
     }
     return null;
 }
 /**
  * Inicializuje WP_User objekt na základě post_author
  *
  * @author Tomáš Kocifaj
  * @link http://www.ktstudio.cz
  *
  * @return \KT_Post_Type_Presenter_Base
  */
 private function initAuthor()
 {
     $authorId = $this->getPost()->post_author;
     if (KT::isIdFormat($authorId)) {
         $author = new KT_WP_User_Base_Model($authorId);
         $this->setAuthor($author);
     }
     return $this;
 }
 /**
  * Provede inicializaci systémového (WP) stdClass objektu s komentářem
  *
  * @author Martin Hlaváč
  * @link http://www.ktstudio.cz
  */
 private function initComment($comment)
 {
     if (KT::isIdFormat($comment)) {
         $this->setComment(get_comment($comment));
     } else {
         $this->setComment($comment);
     }
 }
示例#10
0
 /**
  * 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;
 }
 /**
  * Provede načtení termu do modelu pomocí jeho ID a taxonomy, kde se term nachází.
  * 
  * @author Tomáš Kocifaj
  * @link http://www.ktstudio.cz
  * 
  * @param int $termId
  * @param string $taxonomy
  * @return \KT_WP_Term_Base_Model
  * @throws KT_Not_Supported_Exception
  * @throws InvalidArgumentException
  */
 private function initializeByTermid($termId, $taxonomy)
 {
     if (!KT::isIdFormat($termId)) {
         throw new KT_Not_Supported_Exception("First parametr {$termId} is not an ID format");
     }
     $term = get_term_by(self::TERM_ID, $termId, $taxonomy);
     if (KT::issetAndNotEmpty($term)) {
         $this->setTerm($term);
         return $this;
     }
 }
 /**
  * Funkcí vrátí všechny parametry příspěvku a to všechny nebo s prefixem
  *
  * @author Martin Hlaváč
  * @link http://www.ktstudio.cz
  *
  * @global WP_DB $wpdb
  * @param int $postId
  * @param string $prefix
  * @return array
  */
 public static function getTermsMetas($termId = null, $prefix = null)
 {
     global $wpdb;
     if (KT::isIdFormat($termId)) {
         $results = array();
         $query = "SELECT meta_key, meta_value FROM {$wpdb->termmeta} WHERE term_id = %d";
         $prepareData[] = $termId;
         if (isset($prefix)) {
             $query .= " AND meta_key LIKE '%s'";
             $prepareData[] = "{$prefix}%";
         }
         $metas = $wpdb->get_results($wpdb->prepare($query, $prepareData), ARRAY_A);
         foreach ($metas as $meta) {
             $results[$meta["meta_key"]] = $meta["meta_value"];
         }
         return $results;
     }
     return null;
 }
示例#13
0
 /**
  * Funkce uloží všechny fieldy objektu do tabuly wp_postmeta v podobě key => value
  *
  * @author Tomáš Kocifaj
  * @link http://www.ktstudio.cz
  *
  * @param int $postId = ID postu, v případě nezadání, se bere global $post
  * @param array $excludeFields - kolekci fieldů, které nemají být ukládány [] => $field->getName()
  * @return \KT_Form
  */
 public function saveFieldsetToPostMeta($postId, array $excludeFields = array())
 {
     if (is_admin()) {
         if (!current_user_can('edit_post', $postId)) {
             return;
         }
         if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
             return $postId;
         }
     }
     if (!KT::isIdFormat($postId) || !$this->hasFieldset()) {
         return $postId;
     }
     /* @var $fieldset \KT_Form_Fieldset */
     $this->updateTransientDataForAdminValidation();
     foreach ($this->getFieldsets() as $fieldset) {
         if (!$fieldset->hasFields()) {
             continue;
         }
         if ($fieldset->getSerializeSave()) {
             $this->saveFieldsetToPostMetaByGroup($postId, $fieldset, $excludeFields);
             continue;
         }
         $this->saveFieldsetToPostMetaOneByOne($postId, $fieldset, $excludeFields);
     }
     return $this;
 }
 /** @return boolean */
 public function isCategoryId()
 {
     return KT::isIdFormat($this->getCategoryId());
 }
 /**
  * Nastaví, jaký počet sloupců pro vykreslení metaboxů má použít
  * Akceptuje pouze 1 nebo 2
  * Konstaty self::KT_COLUMN_ONE || self::KT_COLUMN_TWO
  *  
  * @author Tomáš Kocifaj
  * @link http://www.ktstudio.cz
  * 
  * @return \KT_Custom_Metaboxes_Base
  */
 public function setNumberColumns($numberColumns)
 {
     if (!KT::isIdFormat($numberColumns) && $numberColumns > self::COLUMN_TWO) {
         return $this;
     }
     $this->NumberColumns = $numberColumns;
     return $this;
 }
示例#16
0
 /**
  * Vrátí pole IDs na základě hodnoty zadaného parametru, pokud je to možné
  * 
  * @author Martin Hlaváč
  * @link http://www.ktstudio.cz
  * 
  * @param string $idsParamName
  * @param char $delimiter
  * @return array
  */
 public static function arrayIdsFromUrlParam($idsParamName, $delimiter = ",")
 {
     $ids = array();
     $values = self::arrayFromUrlParam($idsParamName, $delimiter);
     if (KT::arrayIssetAndNotEmpty($values)) {
         foreach ($values as $value) {
             if (KT::isIdFormat($value)) {
                 array_push($ids, $value);
             }
         }
     }
     return $ids;
 }