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; }
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; }
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; } }