Пример #1
0
 private function getUnreadCount()
 {
     $unreadCount = UserData::model()->getUnreadCount(Ibos::app()->user->uid);
     $sidebarUnreadMap["mention"] = $unreadCount["unread_atme"];
     $sidebarUnreadMap["comment"] = $unreadCount["unread_comment"];
     $sidebarUnreadMap["notify"] = $unreadCount["unread_notify"];
     $sidebarUnreadMap["pm"] = $unreadCount["unread_message"];
     return $sidebarUnreadMap;
 }
Пример #2
0
 public function getHeader($lang = array())
 {
     $onlineStatus = UserUtil::getOnlineStatus($this->getUid());
     $styleMap = array(-1 => "o-pm-offline", 1 => "o-pm-online");
     $data = array("user" => $this->getUser(), "assetUrl" => $this->getAssetUrl("user"), "swfConfig" => AttachUtil::getUploadConfig(), "onlineIcon" => $styleMap[$onlineStatus], "lang" => $lang);
     if ($this->getIsWeiboEnabled()) {
         $data["userData"] = UserData::model()->getUserData($this->getUid());
         !$this->getIsMe() && ($data["states"] = Follow::model()->getFollowState(Ibos::app()->user->uid, $this->getUid()));
     }
     return $this->renderPartial("application.modules.user.views.header", $data, true);
 }
Пример #3
0
 public function actionIndex()
 {
     $uid = Ibos::app()->user->uid;
     $unreadAtMe = UserData::model()->countUnreadAtMeByUid($uid);
     $pageCount = Atme::model()->countByAttributes(array("uid" => $uid));
     $pages = PageUtil::create($pageCount);
     $atList = Atme::model()->fetchAllAtmeListByUid($uid, $pages->getLimit(), $pages->getOffset());
     $feedIds = ConvertUtil::getSubByKey($atList, "feedid");
     $diggArr = FeedDigg::model()->checkIsDigg($feedIds, $uid);
     $data = array("unreadAtmeCount" => $unreadAtMe, "list" => $atList, "pages" => $pages, "digg" => $diggArr);
     $this->setPageTitle(Ibos::lang("Mention me"));
     $this->setPageState("breadCrumbs", array(array("name" => Ibos::lang("Message center"), "url" => $this->createUrl("mention/index")), array("name" => Ibos::lang("Mention me"))));
     $this->render("index", $data);
 }
Пример #4
0
 public function addComment($data, $forApi = false, $notCount = false, $lessUids = null)
 {
     $add = $this->escapeData($data);
     if ($add["content"] === "") {
         $this->addError("comment", Ibos::lang("Required comment content", "message.default"));
         return false;
     }
     $add["isdel"] = 0;
     $res = $this->add($add, true);
     if ($res) {
         isset($data["touid"]) && !empty($data["touid"]) && ($lessUids[] = intval($data["touid"]));
         $scream = explode("//", $data["content"]);
         Atme::model()->addAtme("message", "comment", trim($scream[0]), $res, null, $lessUids);
         $table = ucfirst($add["table"]);
         $pk = $table::model()->getTableSchema()->primaryKey;
         $table::model()->updateCounters(array("commentcount" => 1), "`{$pk}` = {$add["rowid"]}");
         if (Ibos::app()->user->uid != $add["moduleuid"] && $add["moduleuid"] != "") {
             !$notCount && UserData::model()->updateKey("unread_comment", 1, true, $add["moduleuid"]);
         }
         if (!empty($add["touid"]) && $add["touid"] != Ibos::app()->user->uid && $add["touid"] != $add["moduleuid"]) {
             !$notCount && UserData::model()->updateKey("unread_comment", 1, true, $add["touid"]);
         }
         if ($add["table"] == "feed") {
             if (Ibos::app()->user->uid != $add["uid"]) {
                 UserUtil::updateCreditByAction("addcomment", Ibos::app()->user->uid);
                 UserUtil::updateCreditByAction("getcomment", $data["moduleuid"]);
             }
             Feed::model()->cleanCache($add["rowid"]);
         }
         if ($add["touid"] != Ibos::app()->user->uid || $add["moduleuid"] != Ibos::app()->user->uid && $add["moduleuid"] != "") {
             $author = User::model()->fetchByUid(Ibos::app()->user->uid);
             $config["{name}"] = $author["realname"];
             $sourceInfo = Source::getCommentSource($add, $forApi);
             $config["{url}"] = $sourceInfo["source_url"];
             $config["{sourceContent}"] = StringUtil::parseHtml($sourceInfo["source_content"]);
             if (!empty($add["touid"])) {
                 $config["{commentType}"] = "回复了我的评论:";
                 Notify::model()->sendNotify($add["touid"], "comment", $config);
             } else {
                 $config["{commentType}"] = "评论了我的微博:";
                 if (!empty($add["moduleuid"])) {
                     Notify::model()->sendNotify($add["moduleuid"], "comment", $config);
                 }
             }
         }
     }
     return $res;
 }
Пример #5
0
 public function actionIndex()
 {
     $data = array();
     $data["userData"] = UserData::model()->getUserData($this->uid);
     $data["activeUser"] = UserData::model()->fetchActiveUsers();
     $data["movements"] = Ibos::app()->setting->get("setting/wbmovement");
     $data["enableMovementModule"] = WbCommonUtil::getMovementModules();
     $data["uploadConfig"] = AttachUtil::getUploadConfig();
     $this->setPageState("breadCrumbs", array(array("name" => Ibos::lang("Enterprise weibo")), array("name" => Ibos::lang("Index"), "url" => $this->createUrl("list/index")), array("name" => Ibos::lang("List"))));
     $var["type"] = isset($_GET["type"]) ? StringUtil::filterCleanHtml($_GET["type"]) : "all";
     $var["feedtype"] = isset($_GET["feedtype"]) ? StringUtil::filterCleanHtml($_GET["feedtype"]) : "all";
     $var["feedkey"] = isset($_GET["feedkey"]) ? StringUtil::filterCleanHtml(urldecode($_GET["feedkey"])) : "";
     $var["loadNew"] = isset($_GET["page"]) ? 0 : 1;
     $var["loadMore"] = isset($_GET["page"]) ? 0 : 1;
     $var["loadId"] = 0;
     $var["nums"] = isset($_GET["page"]) ? WbConst::DEF_LIST_FEED_NUMS : 10;
     $this->render("index", array_merge($data, $var, $this->getData($var)));
 }
Пример #6
0
 public function actionUserCard()
 {
     $uid = EnvUtil::getRequest("uid");
     $user = User::model()->fetchByUid($uid);
     $onlineStatus = UserUtil::getOnlineStatus($uid);
     $styleMap = array(-1 => "o-pm-offline", 1 => "o-pm-online");
     if (empty($user)) {
         $this->error(Ibos::lang("Request tainting", "error"));
     } else {
         $weiboExists = ModuleUtil::getIsEnabled("weibo");
         $data = array("user" => $user, "status" => $styleMap[$onlineStatus], "lang" => Ibos::getLangSources(), "weibo" => $weiboExists);
         if ($weiboExists) {
             $data["userData"] = UserData::model()->getUserData($user["uid"]);
             $data["states"] = Follow::model()->getFollowState(Ibos::app()->user->uid, $user["uid"]);
         }
         $content = $this->renderPartial("userCard", $data, true);
         echo $content;
         exit;
     }
 }
Пример #7
0
 public function actionIndex()
 {
     $uid = Ibos::app()->user->uid;
     $type = EnvUtil::getRequest("type");
     $map = array("and");
     if (!in_array($type, array("receive", "sent"))) {
         $type = "receive";
     }
     if ($type == "receive") {
         $con = "touid = '{$uid}' AND uid != '{$uid}' AND `isdel` = 0";
     } else {
         $con = "`uid` = {$uid} AND `isdel` = 0";
     }
     $map[] = $con;
     $count = Comment::model()->count($con . " AND `isdel` = 0");
     $pages = PageUtil::create($count);
     $list = Comment::model()->getCommentList($map, "cid DESC", $pages->getLimit(), $pages->getOffset(), true);
     $data = array("list" => $list, "type" => $type, "pages" => $pages);
     UserData::model()->resetUserCount($uid, "unread_comment", 0);
     $this->setPageTitle(Ibos::lang("Comment"));
     $this->setPageState("breadCrumbs", array(array("name" => Ibos::lang("Message center"), "url" => $this->createUrl("mention/index")), array("name" => Ibos::lang("Comment"), "url" => $this->createUrl("comment/index"))));
     $this->render("index", $data);
 }
Пример #8
0
 public function actionFollower()
 {
     $user = $this->getUser();
     $count = Follow::model()->getFollowCount(array($user["uid"]));
     $list = $this->getFollowData("follower", 0, WbConst::DEF_LIST_FEED_NUMS);
     if ($this->getIsMe()) {
         UserData::model()->resetUserCount($this->getUid(), "new_folower_count", 0);
     }
     $data = array("count" => $count[$user["uid"]], "list" => $list, "assetUrl" => Ibos::app()->assetManager->getAssetsUrl("user"), "moduleAssetUrl" => Ibos::app()->assetManager->getAssetsUrl("weibo"), "limit" => WbConst::DEF_LIST_FEED_NUMS);
     $this->setPageState("breadCrumbs", array(array("name" => Ibos::lang("Enterprise weibo"), "url" => $this->createUrl("home/index")), array("name" => $user["realname"] . Ibos::lang("sbs fans"), "url" => $this->createUrl("personal/follower", array("uid" => $user["uid"]))), array("name" => Ibos::lang("List"))));
     $this->render("follower", $data, false, array("user.default"));
 }
Пример #9
0
 public function actionLogin()
 {
     if (!Ibos::app()->user->isGuest) {
         $return = array("login" => true, "formhash" => FORMHASH, "uid" => Yii::app()->user->uid, "user" => user::model()->fetchByUid(Ibos::app()->user->uid), "APPID" => Ibos::app()->setting->get("setting/iboscloud/appid"));
         if (EnvUtil::getRequest("issetuser") != "true") {
             $userData = UserUtil::getUserByPy();
             $return["userData"] = $userData;
         }
         if (ModuleUtil::getIsEnabled("weibo")) {
             $udata = UserData::model()->getUserData();
         }
         $return["user"]["following_count"] = isset($udata["following_count"]) ? $udata["following_count"] : 0;
         $return["user"]["follower_count"] = isset($udata["follower_count"]) ? $udata["follower_count"] : 0;
         $return["user"]["weibo_count"] = isset($udata["weibo_count"]) ? $udata["weibo_count"] : 0;
         $this->ajaxReturn($return, "JSONP");
     }
     $account = Ibos::app()->setting->get("setting/account");
     $userName = EnvUtil::getRequest("username");
     $passWord = EnvUtil::getRequest("password");
     $gps = EnvUtil::getRequest("gps");
     $address = EnvUtil::getRequest("address");
     $ip = Ibos::app()->setting->get("clientip");
     $cookieTime = 0;
     if (!$passWord || $passWord != addslashes($passWord)) {
         $this->ajaxReturn(array("login" => false, "msg" => Ibos::lang("Passwd illegal", "user.default")), "JSONP");
     }
     $identity = new ICUserIdentity($userName, $passWord);
     $result = $identity->authenticate(false);
     if (0 < $result) {
         $user = Ibos::app()->user;
         if ($account["allowshare"] != 1) {
             $user->setStateKeyPrefix(Ibos::app()->setting->get("sid"));
         }
         MainUtil::setCookie("autologin", 1, $cookieTime);
         $user->login($identity, $cookieTime);
         if ($user->uid != 1) {
             MainUtil::checkLicenseLimit(true);
         }
         $urlForward = EnvUtil::referer();
         $log = array("terminal" => "app", "password" => StringUtil::passwordMask($passWord), "ip" => $ip, "user" => $userName, "loginType" => "username", "address" => $address, "gps" => $gps);
         Log::write($log, "login", sprintf("module.user.%d", Ibos::app()->user->uid));
         $return = array("login" => true, "formhash" => EnvUtil::formHash(), "uid" => Ibos::app()->user->uid, "user" => user::model()->fetchByUid(Ibos::app()->user->uid), "APPID" => Ibos::app()->setting->get("setting/iboscloud/appid"));
         if (ModuleUtil::getIsEnabled("weibo")) {
             $udata = UserData::model()->getUserData();
         }
         $return["user"]["following_count"] = isset($udata["following_count"]) ? $udata["following_count"] : 0;
         $return["user"]["follower_count"] = isset($udata["follower_count"]) ? $udata["follower_count"] : 0;
         $return["user"]["weibo_count"] = isset($udata["weibo_count"]) ? $udata["weibo_count"] : 0;
         if (EnvUtil::getRequest("issetuser") != "true") {
             $userData = UserUtil::getUserByPy();
             $return["userData"] = $userData;
         }
         $this->ajaxReturn($return, "JSONP");
     } elseif ($result === 0) {
         $this->ajaxReturn(array("login" => false, "msg" => Ibos::lang("User not fount", "user.default", array("{username}" => $userName))), "JSONP");
     } elseif ($result === -1) {
         $this->ajaxReturn(array("login" => false, "msg" => Ibos::lang("User lock", "user.default", array("{username}" => $userName))), "JSONP");
     } elseif ($result === -2) {
         $this->ajaxReturn(array("login" => false, "msg" => Ibos::lang("User disabled", "", array("{username}" => $userName))), "JSONP");
     } elseif ($result === -3) {
         $log = array("user" => $userName, "password" => StringUtil::passwordMask($passWord), "ip" => $ip);
         Log::write($log, "illegal", "module.user.login");
         $this->ajaxReturn(array("login" => false, "msg" => Ibos::lang("User name or password is not correct", "user.default")), "JSONP");
     }
 }
Пример #10
0
 private function _updateFollowCount($uid, $fids, $inc = true)
 {
     !is_array($fids) && ($fids = explode(",", $fids));
     UserData::model()->updateKey("following_count", count($fids), $inc, $uid);
     foreach ($fids as $fid) {
         UserData::model()->updateKey("follower_count", 1, $inc, $fid);
         UserData::model()->updateKey("new_folower_count", 1, $inc, $fid);
     }
 }
Пример #11
0
 private function saveAtme($module, $table, $uids, $rowId)
 {
     $self = Ibos::app()->user->uid;
     foreach ($uids as $uid) {
         if ($uid == $self) {
             continue;
         }
         $data[] = array("module" => $module, "table" => $table, "rowid" => $rowId, "uid" => $uid);
         UserData::model()->updateUserCount($uid, "unread_atme", 1);
     }
     $res = array();
     if (!empty($data)) {
         foreach ($data as $value) {
             $res[] = $this->add($value, true);
         }
     }
     return !empty($res) ? implode(",", $res) : "";
 }
Пример #12
0
 public function actionSearchAt()
 {
     $users = UserData::model()->fetchRecentAt(Ibos::app()->user->uid);
     $this->ajaxReturn(!empty($users) ? $users : array());
 }
Пример #13
0
 public function doEditFeed($feedid, $type, $uid = null)
 {
     $return = array("isSuccess" => false);
     if (empty($feedid)) {
     } else {
         $feedid = is_array($feedid) ? implode(",", $feedid) : intval($feedid);
         $con = sprintf("feedid = %d", $feedid);
         $isdel = $type == "delFeed" ? 1 : 0;
         if ($type == "deleteFeed") {
             $msg = array("user" => Ibos::app()->user->username, "ip" => EnvUtil::getClientIp(), "id" => $feedid, "value" => $this->get($feedid));
             Log::write($msg, "db", "module.weibo.deleteFeed");
             $res = $this->deleteAll($con);
             $res && $this->_deleteFeedAttach($feedid);
         } else {
             $ids = explode(",", $feedid);
             $feedList = $this->getFeeds($ids);
             $res = $this->updateAll(array("isdel" => $isdel), $con);
             if ($type == "feedRecover") {
                 foreach ($feedList as $v) {
                     UserData::model()->updateKey("feed_count", 1, true, $v["user_info"]["uid"]);
                     UserData::model()->updateKey("weibo_count", 1, true, $v["user_info"]["uid"]);
                 }
             } else {
                 foreach ($feedList as $v) {
                     UserData::model()->updateKey("feed_count", -1, false, $v["user_info"]["uid"]);
                     UserData::model()->updateKey("weibo_count", -1, false, $v["user_info"]["uid"]);
                 }
             }
             $this->cleanCache($ids);
             $query = $this->fetchAll(array("select" => "feedid", "condition" => sprintf("rowid = %d", $feedid)));
             $sids = ConvertUtil::getSubByKey($query, "feedid");
             $sids && $this->cleanCache($sids);
         }
         $commentQuery = $this->getDbConnection()->createCommand()->select("cid")->from("{{comment}}")->where(sprintf("`module` = 'weibo' AND `table` = 'feed' AND `rowid` = %d", $feedid))->queryAll();
         $commentIds = ConvertUtil::getSubByKey($commentQuery, "cid");
         $commentIds && Comment::model()->deleteComment($commentIds, null, "weibo");
         FeedTopic::model()->deleteWeiboJoinTopic($feedid);
         Atme::model()->deleteAtme("feed", null, $feedid);
         $topics = FeedTopicLink::model()->fetchAll(array("select" => "topicid", "condition" => "feedid=" . $feedid));
         $topicId = ConvertUtil::getSubByKey($topics, "topicid");
         $topicId && FeedTopic::model()->updateCounters(array("count" => -1), sprintf("FIND_IN_SET(topicid,'%s')", implode(",", $topicId)));
         FeedTopicLink::model()->deleteAll("feedid=" . $feedid);
         if ($res) {
             $return = array("isSuccess" => true);
             $uid && UserUtil::updateCreditByAction("deleteweibo", $uid);
         }
     }
     return $return;
 }