Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 6
0
 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;
         }
     }
 }
Ejemplo n.º 7
0
 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;
 }
Ejemplo n.º 8
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;
     }
 }
Ejemplo n.º 9
0
 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;
 }
Ejemplo n.º 10
0
 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;
 }
Ejemplo n.º 11
0
<?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'];