Пример #1
0
 public function print_entries($date_objects = array(), $show_dates = TRUE)
 {
     $t = Weblog::getInstance()->loadTemplate("weblog_entries.template.html");
     //$t = new HTML_TEMPLATE_IT();
     //$t->loadTemplateFile( PATH_EXTENSIONS . "weblog/ui/html/weblog_entries.template.html" );
     $user = lms_steam::get_current_user();
     if (count($date_objects) == 0) {
         $date_objects = $this->get_date_objects();
         usort($date_objects, "sort_dates_ascending");
     }
     if (count($date_objects) == 0) {
         $t->setVariable("LABEL_NO_ENTRY_FOUND", "<h3>" . gettext("No posts yet.") . "</h3>");
         $this->set_main_html($t->get());
         return NULL;
     }
     $ld = 0;
     // TODO FIX IT !!!
     $data_tnr = array();
     foreach ($date_objects as $date_object) {
         $data_tnr[$date_object->get_id()] = array();
         $data_tnr[$date_object->get_id()]["comments"] = $date_object->get_annotations(FALSE, TRUE);
         $data_tnr[$date_object->get_id()]["creator"] = $date_object->get_creator(TRUE);
         $data_tnr[$date_object->get_id()]["is_writer"] = $date_object->check_access_write($user, TRUE);
         $data_tnr[$date_object->get_id()]["attributes"] = $date_object->get_attributes(array("DATE_TITLE", "DATE_DESCRIPTION", "DATE_START_DATE", "DATE_CATEGORY", "DATE_PODCAST", "OBJ_KEYWORDS"), TRUE);
     }
     $data_result = $GLOBALS["STEAM"]->buffer_flush();
     $creator = FALSE;
     $category = FALSE;
     $creators = array();
     $categories = array();
     foreach ($date_objects as $date_object) {
         $creator = $data_result[$data_tnr[$date_object->get_id()]["creator"]];
         $creators[$creator->get_id()] = $creator;
         $category = $data_result[$data_tnr[$date_object->get_id()]["attributes"]]["DATE_CATEGORY"];
         if (is_object($category)) {
             $categories[$category->get_id()] = $category;
         }
     }
     $creator_data = steam_factory::get_attributes($GLOBALS["STEAM"]->get_id(), array_values($creators), array(OBJ_NAME, USER_FIRSTNAME, USER_FULLNAME));
     $category_data = steam_factory::get_attributes($GLOBALS["STEAM"]->get_id(), array_values($categories), array(OBJ_NAME));
     foreach ($date_objects as $date_object) {
         $t->setCurrentBlock("BLOCK_ARTICLE");
         $entry = $data_result[$data_tnr[$date_object->get_id()]["attributes"]];
         $comments = $data_result[$data_tnr[$date_object->get_id()]["comments"]];
         $cd = strftime("%G%m%d", $entry["DATE_START_DATE"]);
         if (($cd != $ld || $ld == 0) && $show_dates) {
             $t->setCurrentBlock("BLOCK_DATE");
             $t->setVariable("VALUE_DATE", strftime("%d. %B %G", $entry["DATE_START_DATE"]));
             $t->parse("BLOCK_DATE");
         }
         $t->setVariable("VALUE_ARTICLE_SUBJECT", h($entry["DATE_TITLE"]));
         $t->setVariable("VALUE_ARTICLE_TEXT", get_formatted_output($entry["DATE_DESCRIPTION"]));
         $creator = $data_result[$data_tnr[$date_object->get_id()]["creator"]];
         $t->setVariable("VALUE_POSTED_BY", str_replace("%NAME", "<a href=\"" . PATH_URL . "user/" . $creator_data[$creator->get_id()][OBJ_NAME] . "/\">" . h($creator_data[$creator->get_id()][USER_FIRSTNAME]) . " " . h($creator_data[$creator->get_id()][USER_FULLNAME]) . "</a>", gettext("Posted by %NAME")));
         if ($show_dates) {
             $date_or_time = strftime("%R", $entry["DATE_START_DATE"]);
         } else {
             $date_or_time = strftime("%x %R", $entry["DATE_START_DATE"]);
         }
         $t->setVariable("VALUE_DATE_TIME", $date_or_time);
         $t->setVariable('POST_ID', $date_object->get_id());
         $t->setVariable('POST_PERMALINK', PATH_URL . 'weblog/' . $this->steam_weblog->get_id() . '/#comment' . $date_object->get_id());
         $t->setVariable("POST_PERMALINK_LABEL", gettext("permalink"));
         if ($data_result[$data_tnr[$date_object->get_id()]["is_writer"]]) {
             $t->setCurrentBlock("BLOCK_OWN_POST");
             $t->setVariable("POST_LINK_DELETE", PATH_URL . "weblog/entrydelete/" . $date_object->get_id() . "/");
             $t->setVariable("POST_LABEL_DELETE", gettext("delete"));
             $t->setVariable("POST_LINK_EDIT", PATH_URL . "weblog/entryedit/" . $date_object->get_id() . "/");
             $t->setVariable("POST_LABEL_EDIT", gettext("edit"));
             $t->parse("BLOCK_OWN_POST");
         }
         $category = $entry["DATE_CATEGORY"];
         if (is_object($category)) {
             $t->setVariable("LABEL_IN", gettext("in"));
             $t->setVariable("VALUE_CATEGORY", "<a href=\"" . PATH_URL . "weblog/" . $category->get_id() . "/\">" . h($category_data[$category->get_id()][OBJ_NAME]) . "</a>");
         } else {
             $t->setVariable("VALUE_CATEGORY", gettext("no category"));
         }
         $t->setVariable("LINK_COMMENTS", PATH_URL . "weblog/comments/" . $date_object->get_id() . "/");
         $t->setVariable("LABEL_COMMENTS", count($comments) . " " . (count($comments) == 1 ? gettext("comment") : gettext("comments")));
         $t->parse("BLOCK_ARTICLE");
         $ld = $cd;
     }
     $this->set_main_html($t->get());
 }