/** * Aktivuje vlastní (KT) term meta (v rámci WPDB a metadata API) * * Pozn.: je třeba mít založenou příslušnou tabulku v DB, viz kt_core.sql * * @author Martin Hlaváč * @link http://www.ktstudio.cz * * @global \WP_DB $wpdb */ public static function activate() { if (!self::getIsActive()) { global $wpdb; $id = self::TYPE . "meta"; $wpdb->{$id} = "kt_termmeta"; self::$isActive = true; } }
/** * Vykreslí fieldset * VOLÁ SE V HOOCE * * @author Jan Pokorný */ public function renderFieldsetEdit() { wp_enqueue_media(); $termId = filter_input(INPUT_GET, "tag_ID", FILTER_SANITIZE_NUMBER_INT); $fieldset = $this->getFieldset(); $fieldset->setTitle(""); foreach ($fieldset->getFields() as $field) { if ($termId) { $value = KT_Termmeta::getData($termId, $field->getName(), true); $field->setValue($value); } echo $fieldset->getInputToTr($field); } }
/** * Načte data do všech fieldsetů na základě userId z tabulky kt_wp_terms * * @author Martin Hlaváč * @link http://www.ktstudio.cz * * @param int $termId * @return \KT_Form */ public function loadDataFromTermMeta($termId) { if (KT::isIdFormat($termId) && $this->hasFieldset()) { $termMetas = KT_Termmeta::getAllData($termId); foreach ($this->getFieldsets() as $fieldset) { /* @var $fieldset \KT_Form_Fieldset */ if ($fieldset->hasFields()) { if ($fieldset->getSerializeSave()) { $fieldset->setFieldsData($termMetas[$fieldset->getName()]); continue; } $fieldset->setFieldsData($termMetas); } } } return $this; }
/** * Inicializuje pole (post) metas na základě prefixu nebo všechny * * @author Martin Hlaváč * @link http://www.ktstudio.cz * * @return \KT_Post_Type_Presenter_Base */ private function initMetas() { $metas = KT_Termmeta::getAllData($this->getId(), $this->getMetaPrefix()); $this->setMetas($metas); return $this; }
/** * Uloží data poslané postem do tabulky kt_termmeta - celý fieldset jako realizované pole fieldů ($fieldName => $fieldValue) * @see saveFieldsToTermmetaTable * * @author Martin Hlaváč * @link http://www.ktstudio.cz * * @param int $termId * @param \KT_Form_Fieldset $fieldset * @param array $excludeFields * @return \KT_Form */ private function saveFieldsetToTermMetaByGroup($termId, KT_Form_Fieldset $fieldset, array $excludeFields = array()) { $fieldsetData = $this->getSavableFieldsetGroupValue($fieldset, $excludeFields); if (KT::arrayIssetAndNotEmpty($fieldsetData)) { KT_Termmeta::updateData($termId, $fieldset->getName(), $fieldsetData); } else { KT_Termmeta::deleteData($termId, $fieldset->getName()); } return $this; }