示例#1
0
 function execute(&$controller, &$request, &$user)
 {
     $account = $request->getParameter('account');
     $request->setAttribute('account', $account);
     $count = $request->hasParameter('count') ? $request->getParameter('count') : 16;
     $callback = $request->hasParameter('callback') ? $request->getParameter('callback') : false;
     $request->setAttribute('callback', $callback);
     $raw = $request->hasParameter('raw') ? true : false;
     $request->setAttribute('raw', $raw);
     $member = DB_DataObject::factory('member');
     $member->get('account', $account);
     $site = DB_DataObject::factory('site');
     $site->get('member_id', $member->id);
     $feed = array();
     $feed['uri'] = SCRIPT_PATH . "{$member->account}/";
     $feed['title'] = $site->title;
     $feed['description'] = $site->description;
     $feed['author'] = $member->account;
     $entries = EntryUtils::get_entries_by_account($account, $count);
     foreach ($entries as $key => $entry) {
         $entry['tags'] = TagUtils::get_tags_by_entry_id($entry['id']);
         $entries[$key] = $entry;
     }
     $feed = $feed + $entries;
     $request->setAttribute('feed', $feed);
     $request->setAttribute('entries', $entries);
     return VIEW_SUCCESS;
 }
示例#2
0
 function execute(&$controller, &$request, &$user)
 {
     $account = $request->getParameter('account');
     $request->setAttribute('account', $account);
     $archives = EntryUtils::get_archives_by_account($account);
     $request->setAttribute('archives', $archives);
     return VIEW_SUCCESS;
 }
示例#3
0
 function execute(&$controller, &$request, &$user)
 {
     $member = DB_DataObject::factory('member');
     $member->get('account', $request->getParameter('account'));
     $request->setAttribute('member', $member);
     $account = $request->getParameter('account');
     $entry_id = $request->getParameter('entry_id');
     $entry = EntryUtils::get_by_account_and_id($account, $entry_id);
     $entry['tags'] = TagUtils::get_tags_by_entry_id($entry_id);
     $request->setAttribute('entry', $entry);
     return VIEW_SUCCESS;
 }
示例#4
0
 function execute(&$controller, &$request, &$user)
 {
     $member = DB_DataObject::factory('member');
     $member->find();
     $sitemaps = array();
     while ($member->fetch()) {
         $last_update = EntryUtils::get_last_update_by_account($member->account);
         $last_update = $last_update > 0 ? $last_update : time();
         $sitemaps[] = array('loc' => SCRIPT_PATH . $member->account . '/sitemap', 'lastmod' => $last_update);
     }
     $request->setAttribute('sitemaps', $sitemaps);
     return VIEW_SUCCESS;
 }
示例#5
0
 function execute(&$controller, &$request, &$user)
 {
     $this->attrs['title'] = 'Plnet > ' . msg('tags');
     $tag = $request->hasParameter('tag') ? $request->getParameter('tag') : null;
     if ($tag) {
         $entries = EntryUtils::get_entries_by_tagname($tag);
         foreach ($entries as $key => $entry) {
             $entry['tags'] = TagUtils::get_tags_by_entry_id($entry['id']);
         }
         $request->setAttribute('pager', ActionUtils::pager($entries));
         $request->setAttribute('tag', $tag);
     }
     return VIEW_INDEX;
 }
示例#6
0
 function execute(&$controller, &$request, &$user)
 {
     $account = $request->getParameter('account');
     $urls = array();
     $last_update = EntryUtils::get_last_update($account);
     $last_update = $last_update > 0 ? $last_update : time();
     // top
     $urls[] = array('loc' => SCRIPT_PATH . $account . '/', 'lastmod' => $last_update, 'changefreq' => PLNET_SITEMAP_TOP_FREQ, 'priority' => PLNET_SITEMAP_TOP_PRIORITY);
     // archive
     $archives = EntryUtils::get_archives_by_account($account);
     foreach ($archives as $archive) {
         $last_update = EntryUtils::get_last_update_by_account_and_year_month($account, $archive['y'], $archive['m']);
         $last_update = $last_update > 0 ? $last_update : time();
         $urls[] = array('loc' => SCRIPT_PATH . "{$account}/{$archive['y']}/{$archive['m']}/", 'lastmod' => $last_update, 'changefreq' => PLNET_SITEMAP_ARCHIVE_FREQ, 'priority' => PLNET_SITEMAP_ARCHIVE_PRIORITY);
     }
     /*
             // tag
             $tags = TagUtils::get_tags_by_account($account);
             foreach ($tags as $tag) {
                 $last_update = EntryUtils::get_last_update_by_account_and_tagname($account, $tag['id']);
                 $last_update = $last_update > 0 ? $last_update : time();
                 $urls[] = array(
                     'loc' => SCRIPT_PATH . "{$account}/tag/{$tag['name']}/",
                     'lastmod' => $last_update,
                     'changefreq' => PLNET_SITEMAP_TAG_FREQ,
                     'priority' => PLNET_SITEMAP_TAG_PRIORITY
                 );
             }
     */
     // source
     $sources = FeedUtils::get_feeds_by_account($account);
     foreach ($sources as $source) {
         $last_update = EntryUtils::get_last_update_by_account_feed_id($account, $source['id']);
         $last_update = $last_update > 0 ? $last_update : time();
         $urls[] = array('loc' => SCRIPT_PATH . $account . '/source/' . $source['id'], 'lastmod' => $last_update, 'changefreq' => PLNET_SITEMAP_SOURCE_FREQ, 'priority' => PLNET_SITEMAP_SOURCE_PRIORITY);
     }
     // individual
     $entries = EntryUtils::get_entries_by_account($account);
     foreach ($entries as $entry) {
         $last_update = $entry['lastupdatedtime'];
         $last_update = $last_update > 0 ? $last_update : time();
         $urls[] = array('loc' => SCRIPT_PATH . "{$account}/{$entry['id']}", 'lastmod' => $last_update, 'changefreq' => PLNET_SITEMAP_INDIVIDUAL_FREQ, 'priority' => PLNET_SITEMAP_INDIVIDUAL_PRIORITY);
     }
     $request->setAttribute('urls', $urls);
     return VIEW_SUCCESS;
 }
示例#7
0
 function execute(&$controller, &$request, &$user)
 {
     $account = $request->getParameter('account');
     $site = SiteUtils::get_by_account($account);
     $site['link'] = SCRIPT_PATH . "{$account}/";
     $site['uri'] = $site['link'] . 'rss';
     $site['rss_icon'] = SCRIPT_PATH . 'images/feed_icon.gif';
     $request->setAttribute('site', $site);
     $entries = EntryUtils::get_entries_by_account($account, 5);
     foreach ($entries as $key => $value) {
         $entries[$key]['title'] = $this->mb_truncate($value['title']);
         $entries[$key]['link'] = SCRIPT_PATH . "{$account}/{$value['id']}";
         $entries[$key]['favicon'] = SCRIPT_PATH . "icon.php?url={$value['favicon']}";
     }
     $request->setAttribute('entries', $entries);
     return VIEW_SUCCESS;
 }
示例#8
0
 function execute(&$controller, &$request, &$user)
 {
     $account = $request->getParameter('account');
     $request->setAttribute('account', $account);
     $format = $request->hasParameter('format') ? $request->getParameter('format') : 'rss2';
     $request->setAttribute('format', $format);
     $raw = $request->hasParameter('raw') ? true : false;
     $request->setAttribute('raw', $raw);
     $count = $request->hasParameter('count') ? $request->getParameter('count') : '16';
     $request->setAttribute('count', $count);
     $callback = $request->hasParameter('callback') ? $request->getParameter('callback') : false;
     $request->setAttribute('callback', $callback);
     $tag = $request->getParameter('tag');
     $request->setAttribute('tag', $tag);
     $site = SiteUtils::get_by_account($account);
     $request->setAttribute('site', $site);
     $entries = EntryUtils::get_entries_by_account_and_tagname($account, $tag, $count);
     $request->setAttribute('entries', $entries);
     return VIEW_SUCCESS;
 }
示例#9
0
 function execute(&$controller, &$request, &$user)
 {
     $account = $request->getParameter('account');
     $request->setAttribute('account', $account);
     $count = $request->hasParameter('count') ? $request->getParameter('count') : 16;
     $callback = $request->hasParameter('callback') ? $request->getParameter('callback') : false;
     $request->setAttribute('callback', $callback);
     $raw = $request->hasParameter('raw') ? true : false;
     $request->setAttribute('raw', $raw);
     $entries = EntryUtils::get_entries_by_account($account, $count);
     foreach ($entries as $key => $entry) {
         $entry['tags'] = TagUtils::get_tags_by_entry_id($entry['id']);
         $entry['src'] = $entry['uri'];
         $entry['uri'] = SCRIPT_PATH . "{$account}/{$entry['id']}";
         $entries[$key] = $entry;
     }
     $haj =& new HTML_AJAX_JSON();
     $request->setAttribute('entries', $haj->encode($entries));
     return VIEW_SUCCESS;
 }
示例#10
0
 function execute(&$controller, &$request, &$user)
 {
     $account = $request->getParameter('account');
     $request->setAttribute('account', $account);
     $feed_id = $request->getParameter('source_id');
     $request->setAttribute('feed_id', $feed_id);
     $callback = $request->hasParameter('callback') ? $request->getParameter('callback') : false;
     $request->setAttribute('callback', $callback);
     $raw = $request->hasParameter('raw') ? true : false;
     $request->setAttribute('raw', $raw);
     $format = $request->hasParameter('format') ? $request->getParameter('format') : false;
     $request->setAttribute('format', $format);
     $feed = FeedUtils::get_feed_by_id($feed_id);
     $site = array('title' => $feed['title'], 'description' => $feed['description']);
     $request->setAttribute('feed', $feed);
     $entries = EntryUtils::get_entries_by_account_and_feed_id($account, $feed_id);
     foreach ($entries as $key => $entry) {
         $entry['src'] = $feed['uri'];
         $entry['uri'] = SCRIPT_PATH . "{$account}/source/{$entry['id']}";
         $entries[$key] = $entry;
     }
     $request->setAttribute('entries', $entries);
     return VIEW_SUCCESS;
 }
示例#11
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;
     }
 }