function postNextTopStory()
 {
     // only post one story every three hours
     $tstamp = $this->statusObj->getState('lastTwitterPost');
     if (!isset($_GET['test']) and time() - $tstamp < 60 * TWITTER_INTERVAL_MINUTES) {
         return;
     }
     //echo 'continuing';
     require_once PATH_CORE . '/classes/content.class.php';
     $cObj = new content($this->db);
     require_once PATH_CORE . '/classes/log.class.php';
     $logObj = new log($this->db);
     $topStories = $cObj->fetchUpcomingStories();
     $uid = 1;
     while ($data = $this->db->readQ($topStories)) {
         if (!$this->checkLog($uid, $data->siteContentId) and $data->score >= TWITTER_SCORE_THRESHOLD) {
             // post to twitter
             $result = $this->update($data->siteContentId, $data->title);
             if ($result) {
                 $logItem = $logObj->serialize(0, $uid, 'postTwitter', $data->siteContentId);
                 $logObj->add($logItem);
                 $this->statusObj->setState('lastTwitterPost', time());
             }
             // only do one at a time
             return;
         }
     }
 }
 function logHourlyStats()
 {
     require_once PATH_CORE . '/classes/log.class.php';
     $logObj = new log($this->db);
     // record recentSessions
     $q = $this->db->query("SELECT count(id) as cnt FROM fbSessions WHERE fb_sig_time>=date_sub(NOW(), INTERVAL 10 MINUTE);");
     $data = $this->db->readQ($q);
     $cnt = $data->cnt;
     $logItem = $logObj->serialize(0, 0, 'sessionsRecent', $cnt);
     $logObj->add($logItem);
     // record sessions in last hour
     $q = $this->db->query("SELECT count(id) as cnt FROM fbSessions WHERE fb_sig_time>=date_sub(NOW(), INTERVAL 60 MINUTE);");
     $data = $this->db->readQ($q);
     $cnt = $data->cnt;
     $logItem = $logObj->serialize(0, 0, 'sessionsHour', $cnt);
     $logObj->add($logItem);
 }
 function makePost($mode)
 {
     require_once PATH_CORE . '/classes/log.class.php';
     $logObj = new log($this->db);
     switch ($mode) {
         case 'wall':
             if (isset($_GET['self'])) {
                 $idName = 'tbId_publishSelf';
             } else {
                 $idName = 'tbId_publish';
             }
             require_once PATH_CORE . '/classes/systemStatus.class.php';
             $ssObj = new systemStatus($this->db);
             $templateId = $ssObj->getState($idName);
             if (isset($_POST['app_params']['selId']) || $_POST['app_params']['pubType'] == 'invite') {
                 if (isset($_POST['app_params']) && trim($_POST['app_params']['comment_text']) != '') {
                     $msg = $_POST['app_params']['comment_text'];
                 }
                 $feedElements = $this->fetchFeedElements($_POST['app_params']['pubType'], $_POST['app_params']['selId'], $_POST['fb_sig_user']);
                 $fbmlArray = array("content" => array("feed" => array("template_id" => $templateId, "template_data" => array("title" => $feedElements['title'], "headline" => $feedElements['title'], "storyLink" => $feedElements['storyLink'] . '?&referfbid=' . $_POST['fb_sig_user'], "url" => URL_CANVAS . '/?referfbid=' . $_POST['fb_sig_user'], "story" => $feedElements['story'] . '<br><br>' . $msg, "pubType" => $feedElements['pubType'], "appName" => SITE_TITLE, "refId" => $_POST['fb_sig_user'], "storyImage" => $feedElements['image'], "images" => array(array('src' => $feedElements['image'], 'href' => $feedElements['storyLink']))))), "method" => "publisher_getFeedStory");
                 $logObj->updateFromPublisher($logObj->serialize(0, $this->fetchUseridFromFbid($_POST['fb_sig_user']), 'publisherPost', $_POST['app_params']['selId']));
             } else {
                 $fbmlArray = array("errorCode" => 1, "errorTitle" => 'Wait!', "errorMessage" => 'You must select a story to post. Post cancelled.');
             }
             $fbml = json_encode($fbmlArray);
             break;
         case 'email':
             if (isset($_POST['selId']) || $_POST['pubType'] == 'invite') {
                 //fb_sig_user
                 if ($_POST['pubType'] == 'invite') {
                     $idForLog = 0;
                 } else {
                     $idForLog = $_POST['selId'];
                 }
                 $logObj->updateFromPublisher($logObj->serialize(0, $this->fetchUseridFromFbid($_POST['fb_sig_user']), 'messageAttach', $idForLog));
                 $feedElements = $this->fetchFeedElements($_POST['pubType'], $_POST['selId'], $_POST['fb_sig_user']);
                 $fbml .= $feedElements['story'];
                 if ($feedElements['storyLink'] != '') {
                     $fbml .= '<br /><a href="' . $feedElements['storyLink'] . '?&referfbid=' . $_POST['fb_sig_user'] . '">Read More</a>';
                 }
             } else {
                 $fbml = 'No content selected';
             }
             break;
     }
     return $fbml;
 }
 function recordReferral($referid = 0, $action = '', $itemid = 0)
 {
     // record the referral in the log
     // $this->session->userid was referred to $action page by $referid userid, $itemid may be siteContentId
     // action may be referReader or referToSite
     if ($this->session->isLoaded and $this->session->userid != 0) {
         // log referid as having referred this user
         require_once PATH_CORE . '/classes/log.class.php';
         $logObj = new log($this->db);
         $logItem = $logObj->serialize(0, $referid, $action, $itemid, $this->session->userid);
         $inLog = $logObj->update($logItem);
         // check if UserInfo.refuid has not been set before
         if ($this->session->u->refuid == 0) {
             // load the userinfo for this user
             $this->session->ui->refuid = $referid;
             $this->session->ui->update();
         }
         // sign up page will use refuid to mark invites as accepted
     }
 }
Exemplo n.º 5
0
             $siteCommentId = $result;
             $filename = PATH_CACHE . '/read_' . $cid . '_com_m.cac';
             if (file_exists($filename)) {
                 unlink($filename);
             }
             $filename = PATH_CACHE . '/read_' . $cid . '_com_n.cac';
             if (file_exists($filename)) {
                 unlink($filename);
             }
         }
         $cObj->updateCommentCount($cid);
     }
     if (!$error) {
         require_once PATH_CORE . '/classes/log.class.php';
         $logObj = new log($db);
         $logItem = $logObj->serialize(0, $userid, 'comment', $siteCommentId, 0, $cid);
         $inLog = $logObj->add($logItem);
         $code = '<div id="dialogMessage"><h2>Your comment has been published successfully.</h2><p>What would you like to do next?</p>';
         $code .= '<ul class="bullet_list">' . $storyOption . '<li><a href="#" onclick="hideDialog(); return shareStory(this,' . $cid . ');">Share story with friends</a></li><li><a href="?p=invite" onclick="hideDialog(); return switchPage(\'invite\');">Invite friends to ' . SITE_TITLE . '</a></li></ul></div>';
     } else {
         $code = '<div id="dialogMessage">Sorry, there was a problem publishing your comment. Error: ' . $errorMsg . '</div>';
     }
     break;
 case 'requestVerify':
     // send it
     // to do - this code is duped in pagesignup, move to account.class.php
     global $init;
     // ask NewsCloud to send an email verification request
     /*
     require_once (PATH_CORE.'/classes/systemStatus.class.php');
     $ssObj=new systemStatus($db);
 function ajaxIdeaRecordLike($isSessionValid = false, $userid = 0, $id = 0)
 {
     //$this->db->log('inside ajaxidearecordlike');
     if ($isSessionValid) {
         require_once PATH_CORE . '/classes/log.class.php';
         $logObj = new log($this->db);
         // record the like in the log
         $logItem = $logObj->serialize(0, $userid, 'likeIdea', $id);
         $inLog = $logObj->update($logItem);
         if ($inLog) {
             $iTable = new ideasTable($this->db);
             $ir = $iTable->getRowObject();
             $ir->load($id);
             $ir->numLikes += 1;
             $ir->update();
             $code = '<a href="#" class="voteLink" onclick="return ideaRecordLike(' . $id . ');" title="like this idea">Like</a> ' . $ir->numLikes;
         } else {
             $code = 'You already liked this!';
         }
     } else {
         $code = '<a href="' . URL_CANVAS . '?p=ideas" requirelogin="******">Please authorize ' . SITE_TITLE . ' with Facebook before continuing.</a>';
     }
     return $code;
 }
 function updateUserLevels($limit = 100)
 {
     // scan every use account and adjust the user level to match their cached points
     require_once PATH_CORE . '/classes/user.class.php';
     if ($limit == 0) {
         $useridList = $this->db->query("SELECT SQL_CALC_FOUND_ROWS\tuserid FROM UserInfo;");
         // $this->page->rowsPerPage
     } else {
         $useridList = $this->db->query("SELECT SQL_CALC_FOUND_ROWS\tuserid FROM UserInfo ORDER BY lastUpdateLevels ASC LIMIT 0,{$limit}");
         // $this->page->rowsPerPage
     }
     $userTable = new UserTable($this->db);
     $userInfoTable = new UserInfoTable($this->db);
     $user = $userTable->getRowObject();
     $userinfo = $userInfoTable->getRowObject();
     $userLevels = $this->setUserLevels();
     $pointLevels = $userLevels->pointLevels;
     $nameLevels = array_keys($userLevels->nameLevels);
     $this->log('<pre>' . print_r($pointLevels, true) . print_r($nameLevels, true) . '</pre>');
     $levels = array_combine($pointLevels, $nameLevels);
     $this->log('updateUserLevels...');
     if ($this->db->countQ($useridList) > 0) {
         while ($data = $this->db->readQ($useridList)) {
             if ($user->load($data->userid) && $userinfo->load($data->userid)) {
                 $x = 0;
                 if (is_array($levels)) {
                     foreach ($levels as $val => $name) {
                         if ($user->cachedPointsEarned >= $val) {
                             $userLevel = $name;
                             $pointLevel = $val;
                             $votePower = $userLevels->votePowerLevels[$x];
                         }
                         $x += 1;
                     }
                 }
                 // minor hack: assume user levels only increase. deducting earned points would require revoking challenges
                 // also, the limit on redemptions of the levelIncrease challenge should limit potential for abuse
                 // AND checking for duplicate log entries with itemid=pts will also prevent multiple level ups at the same level
                 if ($user->userLevel != $userLevel && $userLevel != $nameLevels[0]) {
                     require_once PATH_CORE . '/classes/log.class.php';
                     $log = new log($this->db);
                     $log->update($log->serialize(0, $user->userid, 'levelIncrease', array_search($pointLevel, $pointLevels), 0));
                     $user->votePower = $votePower;
                     $this->db->log('VotePower increase ' . $user->userid . ' ' . $userLevel . ' ' . $votePower);
                 }
                 $user->userLevel = $userLevel;
                 $user->update();
                 $userinfo->lastUpdateLevels = date('Y-m-d H:i:s', time());
                 $userinfo->update();
                 //$this->log('updated user '. $data->userid.'<br/>');
             } else {
                 $this->log('updateUserLevels: couldnt load user ' . $data->userid);
             }
         }
     } else {
         $this->log('updateUserLevels: got no user records!');
     }
 }
 function buildSend()
 {
     $code .= '<div >';
     if (isset($_GET['submit'])) {
         $this->db->log($_POST);
         //validate form
         $errorMessage = '';
         if (sizeof($_POST['ids']) < 1) {
             $errorMessage = 'Please specify someone to send the ' . CARDS_NAME . ' to!';
         } else {
             if ($_POST['pickCard'] == '' or $_POST['pickCard'] == 0) {
                 $errorMessage = ' You must select a ' . CARDS_NAME . '!';
             }
         }
         if ($errorMessage != '') {
             $msgType = 'error';
             $title = 'There was a problem...';
             $message = $errorMessage;
         } else {
             $postMsg = $_POST['msg'];
             if ($postMsg == $defaultMsg) {
                 $postMsg = '';
             }
             // reset default msg to blank
             $checkDuplicate = $this->cardsObj->checkResubmit($this->session->userid, $_POST['pickCard'], $_POST['ids']);
             if (!$checkDuplicate) {
                 // look up card name
                 $q = $this->db->query("SELECT name FROM Cards WHERE id={$_POST['pickCard']};");
                 $ci = $this->db->readQ($q);
                 require_once PATH_CORE . '/classes/log.class.php';
                 $logObj = new log($this->db);
                 foreach ($_POST['ids'] as $id) {
                     // record sendCard in log table
                     $logItem = $logObj->serialize(0, $this->session->userid, 'sendCard', $_POST['pickCard'], $id);
                     $inLog = $logObj->update($logItem);
                     $lastId = $logObj->db->getId();
                     if (is_numeric($lastId)) {
                         // add postMsg to logExtra
                         $xTable = new LogExtraTable($this->db);
                         $le = $xTable->getRowObject();
                         $le->logid = $lastId;
                         $le->txt = $postMsg;
                         $le->insert();
                     }
                     $noteMsg = ' sent you a <a href="' . URL_CANVAS . '?p=cards&o=display&id=' . $lastId . '&sid=' . $this->session->userid . '">' . $ci->name . ' ' . CARDS_NAME . '</a> via <a href="' . URL_CANVAS . '">' . SITE_TITLE . '</a>';
                     $apiResult = $this->page->app->facebook->api_client->notifications_send($id, $noteMsg, 'user_to_user');
                 }
                 $message = '';
                 // success - display msg in $code directly
                 $code .= $this->cardsObj->makeFancyTitle(CARDS_NAME . ' SENT SUCCESSFULLY', '500px');
                 $rxList = $this->templateObj->buildFacebookUserList('', $_POST['ids']);
                 $code .= $this->cardsObj->makeOneCard($_POST['pickCard'], $postMsg, $rxList);
                 $code .= '<h2><a href="?p=cards&o=send" requirelogin="******">Click here to send another ' . CARDS_NAME . '</h2></a>';
                 $code .= '<br><h2><a href="?p=cards&o=tx">Click here to see all the ' . CARDS_NAME . 's you have sent.</h2></a>';
                 $code .= '</div>';
                 return $code;
             } else {
                 $msgType = 'error';
                 $title = 'There was a problem...';
                 $message = "<b>You have already sent that " . CARDS_NAME . " to one or more of these people.</b>";
             }
         }
     }
     if ($message != '') {
         $code .= $this->page->buildMessage($msgType, $title, $message);
     }
     // prefill is user to send to
     if (isset($_GET['prefillId'])) {
         $prefillId = $_GET['prefillId'];
     } else {
         $prefillId = 0;
     }
     $code .= $this->cardsObj->buildSendForm($prefillId);
     $code .= '</div>';
     return $code;
 }
 function autoFeature()
 {
     // look up FeaturedTemplate.t to see if more than interval
     $q = $this->db->queryC("SELECT id FROM FeaturedTemplate WHERE t<DATE_SUB(NOW(),INTERVAL " . AUTOFEATURE_INTERVAL . " HOUR);");
     if ($q === false) {
         //return false;
     }
     // get admin user list
     require_once PATH_CORE . '/classes/user.class.php';
     $userTable = new UserTable($this->db);
     $adminList = $userTable->listAdmins();
     if ($adminList == '') {
         $this->db->log("AF Error: No admins listed");
         return false;
     }
     $cnt = 0;
     $tempInterval = AUTOFEATURE_INTERVAL * 2;
     while ($cnt < 6) {
         // find 2 stories (posted by admin, in last n hours, not yet in log) - sort preference to images
         $qStr = "SELECT Content.siteContentId,title,ContentImages.url AS imageUrl FROM Content LEFT JOIN ContentImages ON Content.siteContentId=ContentImages.siteContentId LEFT JOIN Log ON Content.siteContentId=Log.itemid AND Log.action='storyFeatured' WHERE FIND_IN_SET(Content.userid,'{$adminList}') AND Content.date>DATE_SUB(NOW(),INTERVAL {$tempInterval} HOUR) ORDER BY (Log.id IS NULL) DESC,(imageUrl<>'') DESC, Content.siteContentId DESC LIMIT 2;";
         $q1 = $this->db->queryC($qStr);
         if ($this->db->cnt == 2) {
             break;
         }
         $cnt += 1;
         $tempInterval *= 2;
     }
     if ($this->db->cnt == 0) {
         return false;
     }
     // not enough stories
     $numPrimaryStories = $this->db->cnt;
     $primaryStories = array();
     $excludeStoryList = '';
     // load array with results
     while ($d = $this->db->readQ($q1)) {
         $primaryStories[] = $d;
         $excludeStoryList .= $d->siteContentId . ',';
     }
     $excludeStoryList = trim($excludeStoryList, ',');
     // find secondary stories
     $cnt = 0;
     $tempInterval = AUTOFEATURE_INTERVAL * 4;
     while ($cnt < 3) {
         // 4 stories in last n hours e.g. 12/24 excluding above selections, posted by admins - no worries if featured before
         $qStr = "SELECT Content.siteContentId,title,ContentImages.url AS imageUrl FROM Content LEFT JOIN ContentImages ON Content.siteContentId=ContentImages.siteContentId WHERE NOT FIND_IN_SET(Content.siteContentId,'{$excludeStoryList}') AND FIND_IN_SET(Content.userid,'{$adminList}') AND Content.date>DATE_SUB(NOW(),INTERVAL {$tempInterval} HOUR) ORDER BY Content.siteContentId DESC LIMIT 4;";
         $q2 = $this->db->queryC($qStr);
         if ($this->db->cnt == 4) {
             break;
         }
         $cnt += 1;
         $tempInterval *= 2;
     }
     $numSecondaryStories = $this->db->cnt;
     $secondaryStories = array();
     // load array with results
     while ($d = $this->db->readQ($q2)) {
         $secondaryStories[] = $d;
     }
     $autoLog = PATH_SERVER_LOGS . 'auto.log';
     // log changes to auto.log
     $this->db->log('Time: ' . date('H:i') . ' on ' . date('m-d'), $autoLog);
     $this->db->log('Template: ' . $template, $autoLog);
     // from story arrays, determine best template e.g. images
     // no images
     $story_1_id = 0;
     $story_2_id = 0;
     $story_3_id = 0;
     $story_4_id = 0;
     $story_5_id = 0;
     $story_6_id = 0;
     if ($primaryStories[0]->imageUrl == '') {
         // first always likeliest to have image due to sort
         $template = 'template_1';
         $story_1_id = $primaryStories[0]->siteContentId;
         $this->db->log($primaryStories[0], $autoLog);
     } else {
         if ($primaryStories[0]->imageUrl != '' and $primaryStories[1]->imageUrl != '') {
             // two images
             // less than two secondary stories
             $x = rand(0, 1);
             if ($x == 0) {
                 $template = 'template_3';
             } else {
                 $template = 'template_4';
             }
             // two images version 2
             $story_1_id = $primaryStories[0]->siteContentId;
             $story_4_id = $primaryStories[1]->siteContentId;
             $this->db->log($primaryStories[0], $autoLog);
             $this->db->log($primaryStories[1], $autoLog);
             /*if ($numSecondaryStories<4) {
             		} else {
             			// 4 secondary stories			
             			$template='template_5';
             			$story_1_id=$primaryStories[0]->siteContentId;
             			$story_4_id=$primaryStories[1]->siteContentId;	
             			$story_2_id=$secondaryStories[0]->siteContentId;
             			$story_3_id=$secondaryStories[1]->siteContentId;			
             			$story_5_id=$secondaryStories[2]->siteContentId;
             			$story_6_id=$secondaryStories[3]->siteContentId;			
             			$this->db->log($primaryStories[0],$autoLog);
             			$this->db->log($primaryStories[1],$autoLog);
             			$this->db->log($secondaryStories,$autoLog);
             		}
             		*/
         } else {
             //  one image if ($primaryStories[0]->imageUrl<>'') - first always likeliest to have image due to sort
             if ($numSecondaryStories >= 2) {
                 $template = 'template_2';
                 // one image, two story links
                 $story_1_id = $primaryStories[0]->siteContentId;
                 $story_2_id = $secondaryStories[0]->siteContentId;
                 $story_3_id = $secondaryStories[1]->siteContentId;
                 $this->db->log($primaryStories[0], $autoLog);
                 $this->db->log($secondaryStories[0], $autoLog);
                 $this->db->log($secondaryStories[1], $autoLog);
             } else {
                 $template = 'template_1';
                 // less than two secondaryStories
                 $story_1_id = $primaryStories[0]->siteContentId;
                 $this->db->log($primaryStories[0], $autoLog);
             }
         }
     }
     // add top two to the log as having been featured
     require_once PATH_CORE . '/classes/log.class.php';
     $logObj = new log($this->db);
     for ($i = 1; $i <= 6; $i++) {
         $str = '$story_' . $i . '_id';
         eval("\$storyid = \"{$str}\";");
         if ($storyid > 0) {
             // only log new ones
             $q = $this->db->queryC("SELECT id FROM Log WHERE action='storyFeatured' AND itemid={$storyid} LIMIT 1;");
             if ($q === false) {
                 $logItem = $logObj->serialize(0, 0, 'storyFeatured', $storyid);
                 $logObj->add($logItem);
             }
         }
     }
     // taken from save_template.php in console
     $this->db->query("UPDATE Content set isFeatured = 0 WHERE isFeatured = 1");
     // set new features
     $sql = sprintf("REPLACE INTO FeaturedTemplate SET id = 1, template = '%s', story_1_id = %s, story_2_id = %s, story_3_id = %s, story_4_id = %s, story_5_id = %s, story_6_id = %s", $template, $story_1_id, $story_2_id, $story_3_id, $story_4_id, $story_5_id, $story_6_id);
     $this->db->query($sql);
     $this->db->query("UPDATE Content set isFeatured = 1 WHERE siteContentId IN ({$story_1_id}, {$story_2_id}, {$story_3_id}, {$story_4_id}, {$story_5_id}, {$story_6_id})");
     // clear out the cache of the home top stories
     require_once PATH_CORE . '/classes/template.class.php';
     $templateObj = new template($this->db);
     $templateObj->resetCache('home_feature');
     // update twitter feed
     if (USE_TWITTER) {
         require_once PATH_CORE . 'classes/twitter.class.php';
         $twitterObj = new twitter_old($this->db);
         $twitterObj->postFeaturedStories();
     }
     return true;
 }
Exemplo n.º 10
0
require_once PATH_PHP . '/classes/comments.class.php';
$commentsObj = new comments($db);
/* process request variables */
if (isset($_GET['permalink'])) {
    $permalink = $_GET['permalink'];
} else {
    // go to 404 error page
    header("Location: " . URL_ROOT);
    exit;
}
$story = $cObj->getByPermalink($permalink);
// record story read by this user
if ($db->ui->isLoggedIn) {
    require_once PATH_CORE . '/classes/log.class.php';
    $logObj = new log(&$db);
    $logItem = $logObj->serialize(0, $db->ui->userid, 'readStory', $story->siteContentId);
    // note this is the local contentid
    $logObj->update($logItem);
}
/* begin building the page */
$page->setTitle($story->title);
$page->pkgStyles(CACHE_PREFIX . 'nrStory', array(PATH_PHP_STYLES . '/newsroom.css', PATH_PHP_STYLES . '/tabs.css'));
$page->pkgScripts(CACHE_PREFIX . 'nrStory', array(PATH_PHP_SCRIPTS . '/comments.js', PATH_PHP_SCRIPTS . '/voting.js', PATH_PHP_SCRIPTS . '/journal.js'));
$page->addToHeader($common->buildHeader() . $common->buildNavigation('Read Story'));
$page->addToFooter($common->buildFooter());
$page->addRSSFeed(URL_HOME . '?p=rss');
$code = '';
$code .= '<div id="pageBody">';
$code .= '<div id="pageContent">';
$templateObj->registerTemplates('PHP');
/* fetch story */
Exemplo n.º 11
0
<?php

/* Process incoming variable requests */
if (isset($_GET['action'])) {
    $action = $_GET['action'];
} else {
    $action = 'unknown';
}
if (isset($_GET['userid'])) {
    $userid = $_GET['userid'];
} else {
    $userid = 0;
}
if (isset($_GET['itemid'])) {
    $itemid = $_GET['itemid'];
} else {
    $id = 0;
}
/* begin building ajax response */
switch ($action) {
    case 'readWire':
        require_once PATH_CORE . "/classes/log.class.php";
        $logObj = new log($db);
        $info = $logObj->serialize(0, $userid, 'readWire', $itemid);
        $logObj->update($info);
        require_once PATH_CORE . "/classes/newswire.class.php";
        $nwObj = new newswire($db);
        $url = $nwObj->getWebpage($itemid);
        header("Location: " . $url);
        break;
}
function logWinner($userid, $prizeid)
{
    require_once PATH_CORE . '/classes/log.class.php';
    $log = new log();
    $db = $log->db;
    $log->update($log->serialize(0, $userid, 'wonPrize', $prizeid, 0));
}
 function fetch($option = 'comments', $cid = 0)
 {
     // to do - remove, temp for vanishteam
     if (CACHE_PREFIX == 'van' and !$this->session->isAppAuthorized) {
         $fHandle = fopen(PATH_SERVER_LOGS . 'edr.log', 'a');
         fwrite($fHandle, 'Required to authorize:' . $_SERVER['HTTP_X_FB_USER_REMOTE_ADDR'] . "\n");
         $this->facebook = $this->session->app->loadFacebookLibrary();
         $user = $this->facebook->require_login();
     }
     // build the read story page
     require_once PATH_CORE . '/classes/read.class.php';
     $readObj = new read($this->db, $this->session);
     $readObj->setPageLink($this);
     require_once PATH_FACEBOOK . '/classes/actionTeam.class.php';
     $this->teamObj = new actionTeam($this->page);
     if (isset($_GET['cid']) and !is_numeric($_GET['cid'])) {
         $this->page->decloak();
     }
     if ($cid == 0) {
         // need for ajax readStory script
         if (isset($_GET['cid']) and is_numeric($_GET['cid'])) {
             $cid = $_GET['cid'];
         } else {
             exit('error2');
         }
     }
     $referid = $this->page->fetchReferral();
     if ($referid !== false && is_numeric($referid)) {
         // record chat action
         if (isset($_GET['chat'])) {
             if (!$this->session->isAppAuthorized) {
                 // require authorization so we can get their fbId - redirs to signup
                 $this->facebook = $this->session->app->loadFacebookLibrary();
                 $user = $this->facebook->require_login();
             }
             if (isset($_POST['fb_sig_added']) and $_POST['fb_sig_added'] == 1) {
                 $targetfbId = $_POST['fb_sig_user'];
             } else {
                 if (isset($_POST['fb_sig_canvas_user'])) {
                     $targetfbId = $_POST['fb_sig_canvas_user'];
                 } else {
                     $targetfbId = 0;
                 }
             }
             // make sure the referer is not clicking on the link themselves
             if ($targetfbId != 0 and $referid != $this->session->userid) {
                 // log referid as having referred this user
                 require_once PATH_CORE . '/classes/log.class.php';
                 $logObj = new log($this->db);
                 $logItem = $logObj->serialize(0, $referid, 'chatStory', $cid, $targetfbId);
                 $inLog = $logObj->update($logItem);
             }
         }
         // check for notification and display it
         if ($this->session->isLoaded and $referid != $this->session->userid) {
             // reader was referred here by someone
             require_once PATH_CORE . '/classes/notifications.class.php';
             $notificationsTable = new NotificationsTable($this->db);
             $msgid = $notificationsTable->lookupReferral($referid, $cid, $this->session->fbId);
             if ($msgid !== false and $msgid != '' and !is_null($msgid)) {
                 $notificationsTable->setStatus($msgid, $this->session->fbId, 'opened');
                 // get fbId from userid
                 require_once PATH_CORE . '/classes/user.class.php';
                 $uit = new UserInfoTable($this->db);
                 $ui = $uit->getRowObject();
                 $ui->load($referid);
                 $msgTable = new NotificationMessagesTable($this->db);
                 $msg = $msgTable->getRowObject();
                 // load the message
                 $msg->load($msgid);
                 // cast msg object into comment property array for token replacement
                 $referObj = array();
                 $referObj[fbId] = $ui->fbId;
                 $referObj[userid] = $referid;
                 $referObj[comments] = $msg->message;
                 $referObj[date] = $msg->dateCreated;
                 $referMsg = $readObj->fetchReferComment($referObj);
             }
         }
         $this->page->recordReferral($referid, 'referReader', $cid);
     }
     if (isset($_GET['viaBookmarklet'])) {
         //$inside.='<script type="text/javascript">function closeWindow() {window.opener = self;window.close();}</script><a href="#" onclick="closeWindow();">test</a>';
         //$inside.=$this->page->buildMessage('success','Your story has been posted','Click here if you wish to <a href="#" onclick="closeWindow();">close this window</a>.');
     } else {
         if (isset($_GET['justPosted'])) {
             // to do: put some options here
         }
     }
     $inside .= '<div id="col_left"><!-- begin left side -->';
     $inside .= $referMsg;
     $inside .= $readObj->fetchReadStory($cid, $option);
     $inside .= '</div><!-- end left side -->';
     $inside .= '<div id="col_right">';
     if ($this->session->isAdmin) {
         $inside .= '<div class="panel_1"><div class="panelBar clearfix">';
         $inside .= '<h2>Administrative Options</h2>';
         $inside .= '</div><!-- end panelBar -->';
         $inside .= '<div class="panel_block">';
         $inside .= '<ul><li><span id="banStoryPoster"><a href="#" onclick="banStoryPoster(' . $cid . ');return false;">Ban Member</a></span></li></ul>';
         // <span id="blockStory"><a href="#" onclick="blockStory('.$cid.');return false;">Block story</a></span><span class="pipe">|</span>
         $inside .= '</div><!-- end panel_block --></div><!-- end panel_1 -->';
     }
     $inside .= $readObj->fetchReadSidePanel($cid, $this->session, $this->page->isAjax);
     if (defined('ADS_ANY_SIDEBAR_BOTTOM')) {
         $inside .= str_replace("{ad}", '<fb:iframe src="' . URL_CALLBACK . '?p=cache&m=ad&locale=anySidebarBottom" frameborder="0" scrolling="no" style="width:180px;height:600px;padding:0px;margin:-5px 0px 0px 0px;"/>', $this->common['adWrapTallSidebar']);
     }
     $inside .= '</div> <!-- end right side -->';
     if ($this->page->isAjax) {
         return $inside;
     }
     $code .= '<input type="hidden" id="filter" value="default">';
     $code .= $this->page->constructPage('read', $inside);
     return $code;
 }
Exemplo n.º 14
0
                 $code = 'Story already added!';
             }
         } else {
             $code .= SIGNIN_LINK;
         }
     } else {
         $error = true;
     }
     break;
 case 'publishWire':
     if (isset($_GET['itemid'])) {
         $itemid = $_GET['itemid'];
         if ($db->ui->isLoggedIn) {
             require_once PATH_CORE . '/classes/log.class.php';
             $logObj = new log($db);
             $logItem = $logObj->serialize(0, $db->ui->userid, 'publishWire', $itemid);
             $inLog = $logObj->update($logItem);
             if ($inLog) {
                 $code = 'Story published!';
             } else {
                 $code = 'Story already published!';
             }
             // create temporary content item, temp permalink
             require_once PATH_CORE . '/classes/newswire.class.php';
             $nwObj = new newswire($db);
             $db->log('call tempcontent');
             $siteContentId = $nwObj->createTempContent($db->ui, $itemid);
             // add to user's journal
             if ($siteContentId !== false) {
                 // add to journal
                 $logItem = $logObj->serialize(0, $db->ui->userid, 'publishStory', $siteContentId);
Exemplo n.º 15
0
 function ajaxAskRecordLike($isSessionValid = false, $mode = 'question', $userid = 0, $id = 0)
 {
     if ($isSessionValid) {
         require_once PATH_CORE . '/classes/log.class.php';
         $logObj = new log($this->db);
         if ($mode == 'question') {
             // record the like in the log
             $logItem = $logObj->serialize(0, $userid, 'likeQuestion', $id);
             $inLog = $logObj->update($logItem);
             if ($inLog) {
                 $aqTable = new askQuestionsTable($this->db);
                 $qr = $aqTable->getRowObject();
                 $qr->load($id);
                 $qr->numLikes += 1;
                 $qr->update();
                 $code = '<a href="#" class="voteLink" onclick="return askRecordLike(\'' . $mode . '\',' . $id . ');" title="like this question">Like</a> ' . $qr->numLikes;
             } else {
                 $code = 'You already liked this!';
             }
         } else {
             // mode : answer
             $logItem = $logObj->serialize(0, $userid, 'likeAnswer', $id);
             $inLog = $logObj->update($logItem);
             if ($inLog) {
                 $aaTable = new askAnswersTable($this->db);
                 $ar = $aaTable->getRowObject();
                 $ar->load($id);
                 $ar->numLikes += 1;
                 $ar->update();
                 $code = '<a href="#" class="voteLink" onclick="return askRecordLike(\'' . $mode . '\',' . $id . ');" title="like this question">Like</a> ' . $ar->numLikes;
             } else {
                 $code = 'You already liked this!';
             }
         }
     } else {
         $code = '<a href="' . URL_CANVAS . '?p=ask" requirelogin="******">Please authorize ' . SITE_TITLE . ' with Facebook before continuing.</a>';
     }
     return $code;
 }
Exemplo n.º 16
0
$userinfo = $userInfoTable->getRowObject();
$db->log("postAuth {$method}, {$fbId}: entered");
// TODO: figure out why either a) cant find table record or b) session isnt being called if there really isnt one
if (!$userinfo->loadFromFbId($fbId)) {
    $db->log("postAuth {$method}: no userinfo entry for fbId {$fbId}");
    initializeUserInfo($fbId);
    if (!$userinfo->loadFromFbId($fbId)) {
        $db->log("die on second postAuth {$method}: no userinfo entry for fbId {$fbId}");
        exit;
    }
}
//check if it's a Page
if (isset($_POST['fb_sig_page_id'])) {
    require_once PATH_CORE . '/classes/log.class.php';
    $logObj = new log($db);
    $logItem = $logObj->serialize(0, 0, 'pageAdd', $_POST['fb_sig_page_id']);
    $logObj->update($logItem);
    $db->log("postAuth {$method}: added app page " . $_POST['fb_sig_page_id']);
    exit;
}
switch ($method) {
    case 'add':
        $userinfo->isAppAuthorized = 1;
        if ($referid > 0) {
            $userinfo->refuid = $referid;
        }
        $db->log("postAuth {$method}: added fbId {$fbId}" . "refuid=" . $referid);
        $userinfo->update();
        break;
    case 'remove':
        // to do: set isAppAuthorized =0