Esempio n. 1
0
 function find_with_content_category_by_account($account)
 {
     $db =& DBUtils::connect();
     $sql = 'SELECT cc.id AS category_id, cc.name AS category_name, mcf.feed_id
         FROM member_to_content_category_to_feed mcf
         JOIN member m ON mcf.member_id = m.id
         JOIN content_category cc ON mcf.content_category_id = cc.id
         WHERE m.account = ?';
     $result = $db->getAll($sql, array($account));
     if (DB::isError($result)) {
         trigger_error(__CLASS__ . '::' . __FUNCTION__ . '(): ' . $result->toString(), E_USER_ERROR);
         return false;
     }
     $mcfs = $result;
     $other = ContentCategoryUtils::get(PLNET_OTHER_CATEGORY_ID);
     $feeds = FeedUtils::get_feeds_by_account($account);
     $feeds_with_category = array();
     foreach ($feeds as $key => $feed) {
         foreach ($mcfs as $i => $mcf) {
             if ($feed['id'] == $mcf['feed_id']) {
                 $feed['category_id'] = $mcf['category_id'];
                 $feed['category_name'] = $mcf['category_name'];
             }
         }
         if (!isset($feed['category_id'])) {
             $feed['category_id'] = $other['id'];
             $feed['category_name'] = $other['name'];
         }
         $feeds_with_category[] = $feed;
     }
     return $feeds_with_category;
 }
Esempio n. 2
0
 function execute(&$controller, &$request, &$user)
 {
     $account = $request->getParameter('account');
     $cc = ContentCategoryUtils::find();
     ContentCategoryUtils::array_localize($cc);
     $request->setAttribute('categories', $cc);
     return VIEW_SUCCESS;
 }
 function execute(&$controller, &$request, &$user)
 {
     $callback = $request->hasParameter('callback') ? $request->getParameter('callback') : false;
     $request->setAttribute('callback', $callback);
     $content_categories = ContentCategoryUtils::find();
     foreach ($content_categories as $key => $content_category) {
         $content_categories[$key]['name'] = msg($content_category['name']);
     }
     $request->setAttribute('content_categories', Utils::to_json($content_categories));
     return VIEW_SUCCESS;
 }
Esempio n. 4
0
 function execute(&$controller, &$request, &$user)
 {
     $account = $request->getParameter('account');
     $year = $request->hasParameter('year') ? $request->getParameter('year') : null;
     $month = $request->hasParameter('month') ? $request->getParameter('month') : null;
     $q = $request->hasParameter('q') ? $request->getParameter('q') : null;
     $tag = $request->hasParameter('tag') ? $request->getParameter('tag') : null;
     $source_id = $request->hasParameter('source_id') ? $request->getParameter('source_id') : null;
     $category_id = $request->hasParameter('category_id') ? $request->getParameter('category_id') : null;
     $format = $request->hasParameter('format') ? $request->getParameter('format') : 'html';
     $page = $request->hasParameter('page') ? $request->getParameter('page') : 1;
     $per_page = $format == 'html' ? PLNET_ENTRIES_PER_PAGE : PLNET_FEED_NUMBER;
     $start = ($page - 1) * PLNET_ENTRIES_PER_PAGE;
     $channel = array();
     $site = SiteUtils::get_by_account($account);
     $member = MemberUtils::get_by_account($account);
     switch (true) {
         case $year && $month:
             $t = "Archive: {$year}年{$month}月";
             $channel['title'] = $site['title'] . " {$t}";
             $channel['link'] = SCRIPT_PATH . "{$account}/{$year}/{$month}/";
             $channel['description'] = $site['description'];
             $rss1 = "{$channel['link']}rss";
             $request->setAttribute('entries_title', "{$t} <a href=\"{$rss1}\"><img class=\"favicon\" src=\"images/feed_icon.gif\" /></a>");
             $entries = EntryUtils::get_entries_by_account_and_year_month($account, $year, $month, $per_page, $start);
             $entries_count = EntryUtils::get_entries_count_by_account_and_year_month($account, $year, $month);
             $path = "/{$account}/{$year}/{$month}/";
             break;
         case $q:
             $t = "Search: {$q}";
             $channel['title'] = $site['title'] . " {$t}";
             $channel['link'] = SCRIPT_PATH . "{$account}/search/{$q}";
             $channel['description'] = $site['description'];
             $rss1 = "{$channel['link']}rss";
             $request->setAttribute('entries_title', $t . " <a href=\"{$rss1}\"><img class=\"favicon\" " . "src=\"images/feed_icon.gif\" /></a>");
             $entries = EntryUtils::get_entries_by_account_and_query($account, $q, $per_page, $start);
             $entries_count = EntryUtils::get_entries_count_by_account_and_query($account, $q);
             $path = "/{$account}/search/{$q}";
             break;
         case $tag:
             $t = "Tag: {$tag}";
             $channel['title'] = $site['title'] . " {$t}";
             $channel['link'] = SCRIPT_PATH . "{$account}/tag/{$tag}";
             $channel['description'] = $site['description'];
             $rss1 = "{$channel['link']}rss";
             $request->setAttribute('entries_title', "Tag: {$tag} <a href=\"{$SCRIPT_PATH}tag/{$tag}\" " . "title=\"Plnet Tag: {$tag}\">[all]</a> <a href=\"{$rss1}\">" . "<img class=\"favicon\" src=\"images/feed_icon.gif\" /></a> ");
             $entries = EntryUtils::get_entries_by_account_and_tagname($account, $tag, $per_page, $start);
             $entries_count = EntryUtils::get_entries_count_by_account_and_tagname($account, $tag);
             $path = "/{$account}/tag/{$tag}";
             break;
         case $source_id:
             $feed = FeedUtils::get_feed_by_id($source_id);
             $t = "Source: {$feed['title']}";
             $channel['title'] = $site['title'] . " {$t}";
             $request->setAttribute('feed_title', $feed['title']);
             $channel['link'] = SCRIPT_PATH . "{$account}/source/{$source_id}/";
             $channel['description'] = $site['description'];
             $rss1 = "{$channel['link']}rss";
             $entries_title = "Source: <a href=\"{$feed['link']} \">" . "{$feed['title']}</a> <a href=\"{$rss1}\"><img class=\"favicon\" " . "src=\"images/feed_icon.gif\" /></a>";
             $request->setAttribute('entries_title', $entries_title);
             $entries = EntryUtils::get_entries_by_account_feed_id($account, $source_id, $per_page, $start);
             $entries_count = EntryUtils::get_entries_count_by_account_feed_id($account, $source_id);
             $path = "/{$account}/source/{$source_id}";
             break;
         case $category_id:
             $content_category = ContentCategoryUtils::get($category_id);
             $entries_title = msg('category') . ": " . msg($content_category['name']);
             $request->setAttribute('entries_title', $entries_title);
             $entries = EntryUtils::find_by_member_id_and_category_id($member['id'], $category_id, $per_page, $start);
             $entries_count = EntryUtils::find_count_by_member_id_and_category_id($member['id'], $category_id);
             $path = "/{$account}/category/{$category_id}";
             break;
         default:
             $channel['title'] = $site['title'];
             $channel['link'] = SCRIPT_PATH . "{$account}/";
             $channel['description'] = $site['description'];
             $entries = EntryUtils::get_entries_by_account($account, $per_page, $start);
             $entries_count = EntryUtils::get_entries_count_by_account($account);
             $path = "/{$account}/";
             break;
     }
     // tags
     foreach ($entries as $key => $entry) {
         $entries[$key]['link'] = SCRIPT_PATH . "{$account}/{$entry['id']}";
         $entries[$key]['formated_date'] = date(msg('entry date format'), $entry['date']);
         $tags = TagUtils::get_tags_by_entry_id($entry['id']);
         if (count($tags) > 0) {
             foreach ($tags as $tag) {
                 $entries[$key]['tags'][] = $tag['name'];
             }
         }
     }
     switch ($format) {
         case 'rss10':
             $channel['uri'] = $channel['link'] . 'rss';
             $writer =& new FeedWriter();
             $writer->setChannel($channel);
             $writer->setItems($entries);
             $writer->display($format);
             return VIEW_NONE;
         case 'rss20':
             $channel['uri'] = $channel['link'] . 'rss2';
             $writer =& new FeedWriter();
             $writer->setChannel($channel);
             $writer->setItems($entries);
             $writer->display($format);
             return VIEW_NONE;
         case 'html':
         default:
             $request->setAttribute('entries', $entries);
             $request->setAttribute('pager', Utils::pager($page, $entries_count, $path));
             return VIEW_SUCCESS;
     }
 }