/** * Create */ function updateNews($a_update = false) { global $ilUser; $news_set = new ilSetting("news"); $default_visibility = $news_set->get("default_visibility") != "" ? $news_set->get("default_visibility") : "users"; include_once "./Services/News/classes/class.ilNewsItem.php"; if (!$a_update) { $news_item = new ilNewsItem(); $news_item->setContext($this->getWikiId(), "wiki", $this->getId(), "wpg"); $news_item->setPriority(NEWS_NOTICE); $news_item->setTitle($this->getTitle()); $news_item->setContentTextIsLangVar(true); $news_item->setContent("wiki_news_page_created"); $news_item->setUserId($ilUser->getId()); $news_item->setVisibility($default_visibility); $news_item->create(); } else { // get last news item of the day (if existing) $news_id = ilNewsItem::getLastNewsIdForContext($this->getWikiId(), "wiki", $this->getId(), "wpg", true); if ($news_id > 0) { $news_item = new ilNewsItem($news_id); $news_item->setContent("wiki_news_page_changed"); $news_item->setUserId($ilUser->getId()); $news_item->setTitle($this->getTitle()); $news_item->setContentTextIsLangVar(true); $news_item->update(true); } else { $news_item = new ilNewsItem(); $news_item->setContext($this->getWikiId(), "wiki", $this->getId(), "wpg"); $news_item->setPriority(NEWS_NOTICE); $news_item->setTitle($this->getTitle()); $news_item->setContentTextIsLangVar(true); $news_item->setContent("wiki_news_page_changed"); $news_item->setUserId($ilUser->getId()); $news_item->setVisibility($default_visibility); $news_item->create(); } } }
/** * Save new cast item */ function saveCastItemObject() { global $tpl, $ilCtrl, $ilUser, $lng, $ilTabs; $this->checkPermission("write"); $ilTabs->activateTab("edit_content"); $this->initAddCastItemForm(); if ($_POST["url_Standard"] == "" && !$_FILES['file_Standard']['tmp_name']) { ilUtil::sendFailure($lng->txt("msg_input_either_file_or_url")); $this->populateFormFromPost(); } else { if ($this->form_gui->checkInput()) { // create dummy object in db (we need an id) include_once "./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php"; $mob = new ilObjMediaObject(); $mob->create(); //handle standard purpose $file = $this->createMediaItemForPurpose($mob, "Standard"); // set title and description // set title to basename of file if left empty $title = $this->form_gui->getInput("title") != "" ? $this->form_gui->getInput("title") : basename($file); $description = $this->form_gui->getInput("description"); $mob->setTitle($title); $mob->setDescription($description); // save preview pic $prevpic = $this->form_gui->getInput("preview_pic"); if ($prevpic["size"] > 0) { $mob->uploadVideoPreviewPic($prevpic); } // determine duration for standard purpose $duration = $this->getDuration($file); // handle other purposes foreach ($this->additionalPurposes as $purpose) { // check if some purpose has been uploaded $file_gui = $this->form_gui->getInput("file_" . $purpose); $url_gui = $this->form_gui->getInput("url_" . $purpose); if ($url_gui || $file_gui["size"] > 0) { $this->createMediaItemForPurpose($mob, $purpose); } } $mob->update(); if ($prevpic["size"] == 0) { // re-read media object $mob = new ilObjMediaObject($mob->getId()); $mob->generatePreviewPic(320, 240); } // // @todo: save usage // $news_set = new ilSetting("news"); $enable_internal_rss = $news_set->get("enable_rss_for_internal"); // create new media cast item include_once "./Services/News/classes/class.ilNewsItem.php"; $mc_item = new ilNewsItem(); $mc_item->setMobId($mob->getId()); $mc_item->setContentType(NEWS_AUDIO); $mc_item->setContextObjId($this->object->getId()); $mc_item->setContextObjType($this->object->getType()); $mc_item->setUserId($ilUser->getId()); $mc_item->setPlaytime($duration); $mc_item->setTitle($title); $mc_item->setContent($description); $mc_item->setLimitation(false); if ($enable_internal_rss) { $mc_item->setVisibility($this->form_gui->getInput("visibility")); } else { $mc_item->setVisibility("users"); } $mc_item->create(); $ilCtrl->redirect($this, "listItems"); } else { $this->populateFormFromPost(); } } }
/** * @param string $change */ public function addNews($obj_id, $change = 'created') { global $lng, $ilUser; $ilNewsItem = new ilNewsItem(); $ilNewsItem->setTitle($lng->txt('news_title_' . $change)); $ilNewsItem->setPriority(NEWS_NOTICE); $ilNewsItem->setContext($obj_id, $this->getType()); $ilNewsItem->setUserId($ilUser->getId()); $ilNewsItem->setVisibility(NEWS_USERS); $ilNewsItem->setContentTextIsLangVar(false); $ilNewsItem->create(); }
/** * Import record * * @param * @return */ function importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version) { //echo $a_entity; //var_dump($a_rec); switch ($a_entity) { case "news": $mob_id = null; if ($a_rec["MobId"] > 0) { $mob_id = $a_mapping->getMapping("Services/MediaObjects", "mob", $a_rec["MobId"]); } $c = (int) $a_rec["ContextObjId"] . ":" . $a_rec["ContextObjType"] . ":" . (int) $a_rec["ContextSubObjId"] . ":" . $a_rec["ContextSubObjType"]; $context = $a_mapping->getMapping("Services/News", "news_context", $c); $context = explode(":", $context); //var_dump($c); //var_dump($a_mapping->mappings["Services/News"]["news_context"]); include_once "./Services/News/classes/class.ilNewsItem.php"; $newObj = new ilNewsItem(); $newObj->setTitle($a_rec["Title"]); $newObj->setContent($a_rec["Content"]); $newObj->setPriority($a_rec["Priority"]); $newObj->setContextObjId($context[0]); $newObj->setContextObjType($context[1]); $newObj->setContextSubObjId($context[2]); $newObj->setContextSubObjType($context[3]); $newObj->setContentType($a_rec["ContentType"]); $newObj->setVisibility($a_rec["Visibility"]); $newObj->setContentLong($a_rec["ContentLong"]); $newObj->setContentIsLangVar($a_rec["ContentIsLangVar"]); $newObj->setMobId($mob_id); $newObj->setPlaytime($a_rec["Playtime"]); $newObj->create(); $a_mapping->addMapping("Services/News", "news", $a_rec["Id"], $newObj->getId()); break; } }
function addNewsNotification($a_lang_var) { // BEGIN WebDAV Suppress news notification for hidden files if ($this->isHidden()) { return; } // END WebDAV Suppress news notification for hidden files global $ilUser; // Add Notification to news include_once "./Services/News/classes/class.ilNewsItem.php"; include_once "./Modules/File/classes/class.ilObjFileAccess.php"; $news_item = new ilNewsItem(); $news_item->setContext($this->getId(), $this->getType()); $news_item->setPriority(NEWS_NOTICE); $news_item->setTitle($a_lang_var); $news_item->setContentIsLangVar(true); if ($this->getDescription() != "") { $news_item->setContent("<p>" . $this->getDescription() . "</p>"); } $news_item->setUserId($ilUser->getId()); $news_item->setVisibility(NEWS_USERS); $news_item->create(); }
/** * Copy items * * @param * @return */ function copyItems($a_new_obj) { global $ilUser; include_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php"; foreach ($this->readItems(true) as $item) { // copy media object $mob_id = $item["mob_id"]; $mob = new ilObjMediaObject($mob_id); $new_mob = $mob->duplicate(); // copy news item // create new media cast item include_once "./Services/News/classes/class.ilNewsItem.php"; $mc_item = new ilNewsItem(); $mc_item->setMobId($new_mob->getId()); $mc_item->setContentType(NEWS_AUDIO); $mc_item->setContextObjId($a_new_obj->getId()); $mc_item->setContextObjType($a_new_obj->getType()); $mc_item->setUserId($ilUser->getId()); $mc_item->setPlaytime($item["playtime"]); $mc_item->setTitle($item["title"]); $mc_item->setContent($item["content"]); $mc_item->setVisibility($item["visibility"]); $mc_item->create(); } }
/** * generate new dataset in frm_posts * @param integer $topic * @param integer $thread * @param integer $user * @param string $message * @param integer $parent_pos * @param integer $notify * @param integer $anonymize * @param string $subject * @param datetime $date * @return integer $lastInsert: new post ID * @access public */ public function generatePost($forum_id, $thread_id, $user, $message, $parent_pos, $notify, $subject = '', $alias = '', $date = '', $status = 1, $send_activation_mail = 0) { global $ilUser, $ilDB; $objNewPost = new ilForumPost(); $objNewPost->setForumId($forum_id); $objNewPost->setThreadId($thread_id); $objNewPost->setSubject($subject); $objNewPost->setMessage($message); $objNewPost->setUserId($user); $objNewPost->setUserAlias($alias); if ($date == "") { $objNewPost->setCreateDate(date("Y-m-d H:i:s")); } else { if (strpos($date, "-") > 0) { $objNewPost->setCreateDate($date); } else { $objNewPost->setCreateDate(date("Y-m-d H:i:s", $date)); } } $objNewPost->setImportName($this->getImportName()); $objNewPost->setNotification($notify); $objNewPost->setStatus($status); $objNewPost->insert(); // entry in tree-table if ($parent_pos == 0) { $this->addPostTree($objNewPost->getThreadId(), $objNewPost->getId(), $objNewPost->getCreateDate()); } else { $this->insertPostNode($objNewPost->getId(), $parent_pos, $objNewPost->getThreadId(), $objNewPost->getCreateDate()); } //echo "<br>->".$objNewPost->getId()."-".$parent_pos."-".$objNewPost->getThreadId()."-". // $objNewPost->getCreateDate()."-".$forum_id."-".$message."-".$user."-"; // string last post $lastPost = $objNewPost->getForumId() . "#" . $objNewPost->getThreadId() . "#" . $objNewPost->getId(); // update thread $result = $ilDB->manipulateF(' UPDATE frm_threads SET thr_num_posts = thr_num_posts + 1, thr_last_post = %s WHERE thr_pk = %s', array('text', 'integer'), array($lastPost, $objNewPost->getThreadId())); // update forum $result = $ilDB->manipulateF(' UPDATE frm_data SET top_num_posts = top_num_posts + 1, top_last_post = %s WHERE top_pk = %s', array('text', 'integer'), array($lastPost, $objNewPost->getForumId())); // MARK READ $forum_obj = ilObjectFactory::getInstanceByRefId($this->getForumRefId()); $forum_obj->markPostRead($objNewPost->getUserId(), $objNewPost->getThreadId(), $objNewPost->getId()); $pos_data = $objNewPost->getDataAsArray(); $pos_data["ref_id"] = $this->getForumRefId(); // Send notification to moderators if they have to enable a post if (!$status && $send_activation_mail) { $pos_data["top_name"] = $forum_obj->getTitle(); $this->sendPostActivationNotification($pos_data); } // Add Notification to news if ($status) { require_once 'Services/RTE/classes/class.ilRTE.php'; include_once "./Services/News/classes/class.ilNewsItem.php"; $news_item = new ilNewsItem(); $news_item->setContext($forum_obj->getId(), 'frm', $objNewPost->getId(), 'pos'); $news_item->setPriority(NEWS_NOTICE); $news_item->setTitle($objNewPost->getSubject()); $news_item->setContent(ilRTE::_replaceMediaObjectImageSrc($this->prepareText($objNewPost->getMessage(), 0), 1)); $news_item->setUserId($user); $news_item->setVisibility(NEWS_USERS); $news_item->create(); } return $objNewPost->getId(); }