function execute(&$controller, &$request, &$user) { $site = DB_DataObject::factory('site'); $request->setAttribute('sites', $site->getNewSite(5)); $member_num = MemberUtils::total(); $request->setAttribute('member_num', $member_num); $request->setAttribute('yesterday', time() - 60 * 60 * 24); return VIEW_SUCCESS; }
function get_tags_by_account($account) { $member_id = MemberUtils::get_id_by_account($account); $db =& DBUtils::connect(); $sql = "SELECT t.name, COUNT(t.id) AS cnt\n FROM member m\n JOIN source s ON m.id = s.member_id\n JOIN source_to_feed s2f ON s.id = s2f.source_id\n JOIN feed f ON s2f.feed_id = f.id\n JOIN feed_to_entry f2e ON f.id = f2e.feed_id\n JOIN entry e ON f2e.entry_id = e.id\n JOIN entry_to_tag e2t ON e.id = e2t.entry_id\n JOIN tag t ON e2t.tag_id = t.id\n WHERE m.id = ?\n GROUP BY t.id"; $tags = $db->getAll($sql, array($member_id)); if (DB::isError($tags)) { trigger_error('fetch error.' . $tags->toString(), E_USER_ERROR); return false; } return $tags; }
function execute(&$controller, &$request, &$user) { $account = $request->hasParameter('account') ? $request->getParameter('account') : null; $member = $user->getAttribute('member', GLU_NS); $owner_id = MemberUtils::get_id_by_account($account); $visitor_id = isset($member->id) ? $member->id : null; $site = SiteUtils::get_by_account($account); $request->setAttribute('site', $site); $controller->forward('Footprint', 'AddFootprint'); $footprints = FootprintUtils::get_footprints($owner_id, $visitor_id); $request->setAttribute('footprints', $footprints); return VIEW_SUCCESS; }
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 update_content_category_id_by_account_and_feed_id($cc_id, $account, $feed_id) { $member_id = MemberUtils::get_id_by_account($account); $db =& DBUtils::connect(); $exists = MemberToContentCategoryToFeedUtils::is_exists_by_member_id_and_feed_id($member_id, $feed_id); if ($exists) { $fields = array('content_category_id' => $cc_id); $result = $db->autoExecute('member_to_content_category_to_feed', $fields, DB_AUTOQUERY_UPDATE, "member_id = {$member_id} AND feed_id = {$feed_id}"); } else { $fields = array('content_category_id' => $cc_id, 'member_id' => $member_id, 'feed_id' => $feed_id); $result = $db->autoExecute('member_to_content_category_to_feed', $fields, DB_AUTOQUERY_INSERT); } if (DB::isError($result)) { trigger_error(__CLASS__ . '::' . __FUNCTION__ . '(): ' . $result->toString(), E_USER_ERROR); return false; } return $result; }
function execute(&$controller, &$request, &$user) { $account = $request->hasParameter('account') ? $request->getParameter('account') : null; $member = $user->getAttribute('member', GLU_NS); $owner_id = MemberUtils::get_id_by_account($account); $visitor_id = isset($member->id) ? $member->id : null; if ($visitor_id and $owner_id != $visitor_id and !FootprintUtils::is_exist_today($owner_id, $visitor_id)) { $footprint = DB_DataObject::factory('footprint'); $footprint->owner_id = $owner_id; $footprint->visitor_id = $visitor_id; $footprint_id = $footprint->insert(); if ($footprint_id === false) { $error =& PEAR::getStaticProperty('DB_DataObject', 'lastError'); if (PEAR::isError($error)) { trigger_error($error->toString(), E_USER_ERROR); exit; } return VIEW_NONE; } } }
function execute(&$controller, &$request, &$user) { $site = DB_DataObject::factory('site'); $sql = 'SELECT m.account, s.title, s.description, UNIX_TIMESTAMP(m.createdtime) AS createdtime FROM member m JOIN source src ON m.id = src.member_id JOIN site s ON m.id = s.member_id GROUP BY m.id HAVING COUNT(s.id) > 0 ORDER BY m.createdtime DESC LIMIT 16'; $site->query($sql); $sites = array(); while ($site->fetch()) { $sites[] = $site; } $request->setAttribute('sites', $sites); $request->setAttribute('title', PLNET_FEED_NEW_PLNET_TITLE); $request->setAttribute('description', PLNET_FEED_NEW_PLNET_DESCRIPTION); $member_num = MemberUtils::total(); $request->setAttribute('member_num', $member_num); return VIEW_SUCCESS; }
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; } }
function get_entries_count_by_account_and_tagname($account, $tagname) { $member_id = MemberUtils::get_id_by_account($account); $db =& DBUtils::connect(); $sql = "SELECT COUNT(e.id) AS CNT\n FROM member_to_feed m2f\n JOIN feed f ON m2f.feed_id = f.id\n JOIN entry e ON f.id = e.feed_id\n JOIN entry_to_tag e2t ON e.id = e2t.entry_id\n JOIN tag t ON e2t.tag_id = t.id\n WHERE m2f.member_id = ?\n AND t.name = ?"; $result =& $db->getOne($sql, array($member_id, $tagname)); if (DB::isError($result)) { trigger_error(__CLASS__ . '::' . __FUNCTION__ . '(): ' . $result->toString(), E_USER_ERROR); return false; } return $result; }
function execute(&$controller, &$request, &$user) { $uri = $request->getParameter('uri'); $member = $user->getAttribute('member', GLU_NS); $redirect = $request->hasParameter('redirect') ? $request->getParameter('redirect') : null; $cc_id = $this->getContentCategoryIdByUri($uri) ? $this->getContentCategoryIdByUri($uri) : 8; // get feed $f = new FeedParser($uri); $parse_result = $f->parse(); if ($parse_result === false) { trigger_error(__CLASS__ . '::' . __FUNCTION__ . '(): ' . "Failed to parse feed uri: {$uri}", E_USER_NOTICE); header('Content-Type: text/plain; charset=utf-8'); echo 'false'; return VIEW_NONE; } $name = $f->getTitle(); $favicon = $f->getFavicon() ? $f->getFavicon() : SCRIPT_PATH . 'images/favicon.ico'; $db =& DBUtils::connect(false); $db->query('BEGIN'); // get feedId $feedId = $this->getFeedIdByUri($uri); if ($feedId === false) { // add feed $fields = array('uri' => $uri, 'link' => $f->getLink(), 'title' => $f->getTitle(), 'description' => $f->getDescription(), 'favicon' => $favicon, 'lastupdatedtime' => date("Y-m-d H:i:s")); $res = $db->autoExecute('feed', $fields, DB_AUTOQUERY_INSERT); if (DB::isError($res)) { $db->rollback(); trigger_error(__CLASS__ . '::' . __FUNCTION__ . '(): ' . "Failed to insert. " . $res->toString(), E_USER_ERROR); header('Content-Type: text/plain; charset=utf-8'); echo 'false'; return VIEW_NONE; } // specific mysql $feedId = $db->getOne('SELECT LAST_INSERT_ID()'); } // add member_to_feed $m2f_fields = array('member_id' => MemberUtils::get_id_by_account($member->account), 'feed_id' => $feedId); if (DBUtils::get('member_to_feed', $m2f_fields)) { echo "'already exists'"; // already exists return VIEW_NONE; } $res = $db->autoExecute('member_to_feed', $m2f_fields, DB_AUTOQUERY_INSERT); if (DB::isError($res)) { $db->rollback(); trigger_error(__CLASS__ . '::' . __FUNCTION__ . '(): ' . "Failed to insert m2f. " . $res->toString(), E_USER_WARNING); header('Content-Type: text/plain; charset=utf-8'); echo 'false'; return VIEW_NONE; } // add member_to_content_category_to_feed $m2cc2f_fields = array('member_id' => $member->id, 'content_category_id' => $cc_id, 'feed_id' => $feedId); $sql = "SELECT count(*)\n FROM member_to_content_category_to_feed\n WHERE member_id = ?\n AND content_category_id = ?\n AND feed_id = ? "; if ($db->getOne($sql, array_values($m2cc2f_fields)) == 0) { $res = $db->autoExecute('member_to_content_category_to_feed', $m2cc2f_fields, DB_AUTOQUERY_INSERT); if (DB::isError($res)) { $db->rollback(); trigger_error(__CLASS__ . '::' . __FUNCTION__ . '(): ' . 'Failed to insert m2cc2f. ' . $res->toString(), E_USER_WARNING); header('Content-Type: text/plain; charset=utf-8'); echo 'false'; return VIEW_NONE; } } // try to crawl $crawler =& new Crawler(); $crawl_result = $crawler->crawl($uri); if ($crawl_result === false) { $db->rollback(); trigger_error("AddFeedAction::execute(): Failed to crawl: {$uri}", E_USER_NOTICE); header('Content-Type: text/plain; charset=utf-8'); echo 'false'; return VIEW_NONE; } $db->commit(); if ($redirect) { Controller::redirect(SCRIPT_PATH . 'setting/feed'); } else { header('Content-Type: text/plain; charset=utf-8'); echo 'true'; } return VIEW_NONE; }
<?php require_once dirname(dirname(__FILE__)) . '/webapp/config.php'; require_once 'MemberUtils.php'; session_cache_limiter('public'); $member_id = $_REQUEST['member_id']; $member = MemberUtils::get_by_id($member_id); echo $member['photo'];