/**
  * Uloží fieldset
  * VOLÁ SE V HOOCE
  * 
  * @author Jan Pokorný
  */
 public function saveFieldset($termId)
 {
     $fieldset = $this->getFieldset();
     if (isset($_POST[$fieldset->getPostPrefix()])) {
         $fieldset = $this->getFieldset();
         $form = new KT_form();
         $form->addFieldSetByObject($fieldset);
         $form->validate();
         if (!$form->hasError()) {
             $form->saveFieldsetToTermMetaTable($termId);
         } elseif (KT::isWpAjax()) {
             $taxonomy = filter_input(INPUT_POST, "taxonomy", FILTER_SANITIZE_STRING);
             wp_delete_term($termId, $taxonomy);
             $errorMessage = "";
             foreach ($fieldset->getFields() as $field) {
                 if ($field->hasErrorMsg()) {
                     $errorMessage .= sprintf("%s - %s <br>", $field->getLabel(), $field->getError());
                 }
             }
             $ajaxResponse = new WP_Ajax_Response();
             $ajaxResponse->add(array("what" => "taxonomy", "data" => new WP_Error("error", $errorMessage)));
             $ajaxResponse->send();
         }
     }
 }
Example #2
0
 /**
  * Interní kontrola zda je možné zpracovat post, resp. požadevek pro přidání, či uložení MetaBoxu
  *
  * @author Martin Hlaváč
  * @link http://www.ktstudio.cz
  * 
  * @param WP_Post $post
  * @return boolean
  */
 private function CheckCanHandlePostRequest($post)
 {
     if (KT::isWpAjax() && !$this->getIsDefaultAutoSave()) {
         return false;
         // v případě ajaxu (zatím) nechceme přidávat ani zpracovávat naše Metaboxy
     }
     if (!$post instanceof WP_Post) {
         return true;
     }
     $postId = $post->ID;
     $isPage = $post->post_type == KT_WP_PAGE_KEY;
     $isOnlyForFrontPage = $this->getIsOnlyForFrontPage();
     if (isset($isOnlyForFrontPage)) {
         if ($isPage) {
             $frontPageId = get_option(KT_WP_OPTION_KEY_FRONT_PAGE);
             if ($isOnlyForFrontPage && $postId != $frontPageId || !$isOnlyForFrontPage && $postId == $frontPageId) {
                 return false;
             }
         } else {
             return false;
         }
     }
     $pageTemplates = $this->getPageTemplates();
     if (KT::arrayIssetAndNotEmpty($pageTemplates)) {
         // chceme kontrolovat (aktuální) page template(y)
         if ($isPage) {
             $currentPageTemplate = get_post_meta($postId, KT_WP_META_KEY_PAGE_TEMPLATE, true) ?: self::DEFAULT_PAGE_TEMPLATE_KEY;
             if (!in_array($currentPageTemplate, $pageTemplates)) {
                 // (aktuální) page template nesedí => rušíme přidání metaboxu
                 return false;
             }
         } else {
             return false;
         }
     }
     $postFormat = $this->getPostFormat();
     if (KT::issetAndNotEmpty($postFormat)) {
         // chceme kontrolovat (aktuální) post formát
         $currentPostFormat = get_the_terms($postId, "post_format");
         if (KT::arrayIssetAndNotEmpty($currentPostFormat)) {
             if (reset($currentPostFormat)->slug !== "post-format-{$postFormat}") {
                 // (aktuální) post formát nesedí => rušíme přidání metaboxu
                 return false;
             }
         } else {
             return false;
         }
     }
     return true;
 }