protected function filterItemsByKeyWord(array $a_items, $a_keyword) { $res = array(); include_once "./Modules/Blog/classes/class.ilBlogPosting.php"; foreach ($a_items as $month => $items) { foreach ($items as $item) { if (in_array($a_keyword, ilBlogPosting::getKeywords($this->obj_id, $item["id"]))) { $res[] = $item; } } } return $res; }
/** * Read data * * @param * @return */ function readData($a_entity, $a_version, $a_ids, $a_field = "") { global $ilDB; if (!is_array($a_ids)) { $a_ids = array($a_ids); } if ($a_entity == "blog") { switch ($a_version) { case "4.3.0": $this->getDirectDataFromQuery("SELECT bl.id,od.title,od.description," . "bl.notes,bl.bg_color,bl.font_color,bl.img,bl.ppic,bl.rss_active,bl.approval" . " FROM il_blog bl" . " JOIN object_data od ON (od.obj_id = bl.id)" . " WHERE " . $ilDB->in("bl.id", $a_ids, false, "integer") . " AND od.type = " . $ilDB->quote("blog", "text")); break; case "5.0.0": $this->getDirectDataFromQuery("SELECT bl.id,od.title,od.description," . "bl.bg_color,bl.font_color,bl.img,bl.ppic,bl.rss_active,bl.approval," . "bl.abs_shorten,bl.abs_shorten_len,bl.abs_image,bl.abs_img_width,bl.abs_img_height," . "bl.nav_mode,bl.nav_list_post,bl.nav_list_mon,bl.keywords,bl.authors,bl.nav_order," . "bl.ov_post" . " FROM il_blog bl" . " JOIN object_data od ON (od.obj_id = bl.id)" . " WHERE " . $ilDB->in("bl.id", $a_ids, false, "integer") . " AND od.type = " . $ilDB->quote("blog", "text")); break; } } if ($a_entity == "blog_posting") { switch ($a_version) { case "4.3.0": case "5.0.0": $this->getDirectDataFromQuery("SELECT id,blog_id,title,created,author,approved" . " FROM il_blog_posting WHERE " . $ilDB->in("blog_id", $a_ids, false, "integer")); foreach ($this->data as $idx => $item) { // create full export id $this->data[$idx]["Author"] = $this->createObjectExportId("usr", $item["Author"]); } break; } // keywords include_once "./Modules/Blog/classes/class.ilBlogPosting.php"; include_once "./Services/MetaData/classes/class.ilMDKeyword.php"; foreach ($this->data as $idx => $item) { $blog_id = ilBlogPosting::lookupBlogId($item["Id"]); $keywords = ilBlogPosting::getKeywords($blog_id, $item["Id"]); if ($keywords) { foreach ($keywords as $kidx => $keyword) { $this->data[$idx]["Keyword" . $kidx] = $keyword; } } } } }
protected function initKeywordsForm() { global $ilUser; include_once "Services/Form/classes/class.ilPropertyFormGUI.php"; $form = new ilPropertyFormGUI(); $form->setFormAction($this->ctrl->getFormAction($this, "saveKeywordsForm")); $form->setTitle($this->lng->txt("blog_edit_keywords")); $txt = new ilTextInputGUI($this->lng->txt("blog_keywords"), "keywords"); // $txt->setRequired(true); #10504 $txt->setMulti(true); $txt->setDataSource($this->ctrl->getLinkTarget($this, "keywordAutocomplete", "", true)); $txt->setMaxLength(200); $txt->setSize(50); $txt->setInfo($this->lng->txt("blog_keywords_info")); $form->addItem($txt); $md_section = $this->getBlogPosting()->getMDSection(); $keywords = array(); foreach ($ids = $md_section->getKeywordIds() as $id) { $md_key = $md_section->getKeyword($id); if (trim($md_key->getKeyword()) != "") { $keywords[$md_key->getKeywordLanguageCode()][] = $md_key->getKeyword(); } } // language is not "used" anywhere $ulang = $ilUser->getLanguage(); if ($keywords[$ulang]) { asort($keywords[$ulang]); $txt->setValue($keywords[$ulang]); } // other keywords in blog $other = array(); foreach (array_keys(ilBlogPosting::getAllPostings($this->getBlogPosting()->getBlogId())) as $posting_id) { if ($posting_id != $this->getBlogPosting()->getId()) { $other = array_merge($other, ilBlogPosting::getKeywords($this->getBlogPosting()->getBlogId(), $posting_id)); } } if (is_array($keywords[$ulang])) { $other = array_diff($other, $keywords[$ulang]); } if (sizeof($other)) { $html = ""; foreach ($other as $item) { $html .= '<span class="ilTag">' . $item . '</span>'; } $info = new ilNonEditableValueGUI($this->lng->txt("blog_keywords_other"), "", true); $info->setInfo($this->lng->txt("blog_keywords_other_info")); $info->setValue($html); $form->addItem($info); } $form->addCommandButton("saveKeywordsForm", $this->lng->txt("save")); $form->addCommandButton("preview", $this->lng->txt("cancel")); return $form; }