Beispiel #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;
 }
 function execute(&$controller, &$request, &$user)
 {
     $cc_name = $request->getAttribute('cc_name');
     $title = sprintf(msg('user list of this content category service'), msg($cc_name));
     $ms = MemberUtils::get_list_by_content_category_name($cc_name);
     foreach ((array) $ms as $member) {
         if ($member['show_profile']) {
             $feeds = FeedUtils::get_feeds_by_account($member['account']);
             $m = array('account' => $member['account'], 'profile_icon' => $member['photo'] ? SCRIPT_PATH . "photo.php?member_id={$member['id']}" : SCRIPT_PATH . 'images/profile_icon.jpg', 'self_introduction' => $member['self_introduction'], 'feeds' => $feeds);
             $members[] = $m;
         }
     }
     $request->setAttribute('title', $title);
     $request->setAttribute('pager', ActionUtils::pager($members, 50));
     return VIEW_SUCCESS;
 }
Beispiel #3
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;
 }
Beispiel #4
0
 function execute(&$controller, &$request, &$user)
 {
     $format = $request->hasParameter('format') ? $request->getParameter('format') : 'html';
     $limit = $format != 'html' ? PLNET_FEED_NUMBER : null;
     $this->attrs['title'] = 'Plnet > ' . msg('plnet list');
     $member = DB_DataObject::factory('member');
     $sql = 'SELECT m.id, m.account, m.photo,
         UNIX_TIMESTAMP(m.createdtime) AS createdtime,
         s.title, s.description
         FROM member m
         JOIN site s ON m.id = s.member_id
         ORDER BY createdtime DESC';
     if ($limit) {
         $sql .= " LIMIT {$limit}";
     }
     $member->query($sql);
     $members = array();
     while ($member->fetch()) {
         $feeds = FeedUtils::get_feeds_by_account($member->account);
         $m = array('account' => $member->account, 'profile_icon' => $member->photo ? SCRIPT_PATH . "photo.php?member_id={$member->id}" : SCRIPT_PATH . 'images/profile_icon.jpg', 'author' => $member->account, 'title' => $member->title, 'link' => SCRIPT_PATH . "{$member->account}/", 'date' => $member->createdtime, 'description' => $member->description, 'feeds' => $feeds);
         $members[] = $m;
     }
     $channel = array('title' => '新しいPlnet', 'link' => SCRIPT_PATH . 'list/', 'description' => '新しいPlnet');
     switch ($format) {
         case 'rss10':
             $writer =& new FeedWriter();
             $channel['uri'] = "{$channel['link']}rss";
             $writer->setChannel($channel);
             $writer->setItems($members);
             $writer->display($format);
             return VIEW_NONE;
         case 'rss20':
             $writer =& new FeedWriter();
             $channel['uri'] = "{$channel['link']}rss2";
             $writer->setChannel($channel);
             $writer->setItems($members);
             $writer->display($format);
             return VIEW_NONE;
         case 'html':
         default:
             $request->setAttribute('pager', ActionUtils::pager($members, 50));
             return VIEW_INDEX;
     }
 }