public function actionFeed() { $feedid = intval(EnvUtil::getRequest("feedid")); $feedInfo = Feed::model()->get($feedid); if (!$feedInfo) { $this->error(Ibos::lang("Weibo not exists")); } if ($feedInfo["isdel"] == "1") { $this->error(Ibos::lang("No relate weibo")); exit; } if ($feedInfo["from"] == "1") { $feedInfo["from"] = EnvUtil::getFromClient(6, $feedInfo["module"], "3G版"); } else { switch ($feedInfo["module"]) { case "mobile": break; default: $feedInfo["from"] = EnvUtil::getFromClient($feedInfo["from"], $feedInfo["module"]); break; } } if ($feedInfo["type"] === "postimage") { $var = unserialize($feedInfo["feeddata"]); $feedInfo["image_body"] = $var["body"]; if (!empty($var["attach_id"])) { $attach = AttachUtil::getAttachData($var["attach_id"]); $attachUrl = FileUtil::getAttachUrl(); foreach ($attach as $ak => $av) { $_attach = array("attach_id" => $av["aid"], "attach_name" => $av["filename"], "attach_url" => FileUtil::fileName($attachUrl . "/" . $av["attachment"]), "extension" => StringUtil::getFileExt($av["filename"]), "size" => $av["filesize"]); $_attach["attach_small"] = WbCommonUtil::getThumbImageUrl($av, WbConst::ALBUM_DISPLAY_WIDTH, WbConst::ALBUM_DISPLAY_HEIGHT); $_attach["attach_middle"] = WbCommonUtil::getThumbImageUrl($av, WbConst::WEIBO_DISPLAY_WIDTH, WbConst::WEIBO_DISPLAY_HEIGHT); $feedInfo["attachInfo"][$ak] = $_attach; } } } $diggArr = FeedDigg::model()->checkIsDigg($feedid, Ibos::app()->user->uid); $data = array("diggArr" => $diggArr, "fd" => $feedInfo, "assetUrl" => Ibos::app()->assetManager->getAssetsUrl("user"), "moduleAssetUrl" => Ibos::app()->assetManager->getAssetsUrl("weibo"), "colleagues" => $this->getRelation("colleague")); if (!$this->getIsMe()) { $data["bothfollow"] = $this->getRelation("bothfollow"); $data["secondfollow"] = $this->getRelation("secondfollow"); } $this->setPageState("breadCrumbs", array(array("name" => Ibos::lang("Enterprise weibo"), "url" => $this->createUrl("home/index")), array("name" => $feedInfo["user_info"]["realname"] . Ibos::lang("sbs feed"), "url" => $this->createUrl("personal/index", array("uid" => $this->getUid()))), array("name" => Ibos::lang("Detail")))); $this->render("detail", $data, false, array("user.default")); }
private function parseTemplate($_data) { $user = User::model()->fetchByUid($_data["uid"]); $_data["data"] = unserialize($_data["feeddata"]); $var = $_data["data"]; if (!empty($var["attach_id"])) { $var["attachInfo"] = AttachUtil::getAttach($var["attach_id"]); $attachUrl = FileUtil::getAttachUrl(); foreach ($var["attachInfo"] as $ak => $av) { $_attach = array("attach_id" => $av["aid"], "attach_name" => $av["filename"], "attach_url" => FileUtil::fileName($attachUrl . "/" . $av["attachment"]), "extension" => StringUtil::getFileExt($av["filename"]), "size" => $av["filesize"]); if ($_data["type"] == "postimage") { $_attach["attach_small"] = WbCommonUtil::getThumbImageUrl($av, WbConst::ALBUM_DISPLAY_WIDTH, WbConst::ALBUM_DISPLAY_HEIGHT); $_attach["attach_middle"] = WbCommonUtil::getThumbImageUrl($av, WbConst::WEIBO_DISPLAY_WIDTH, WbConst::WEIBO_DISPLAY_HEIGHT); } $var["attachInfo"][$ak] = $_attach; } } $var["uid"] = $_data["uid"]; $var["actor"] = "<a href='{$user["space_url"]}' data-toggle='usercard' data-param=\"uid={$user["uid"]}\">{$user["realname"]}</a>"; $var["actor_uid"] = $user["uid"]; $var["actor_uname"] = $user["realname"]; $var["feedid"] = $_data["feedid"]; if (!empty($_data["rowid"])) { empty($_data["table"]) && ($_data["table"] = "feed"); $var["sourceInfo"] = Source::getSourceInfo($_data["table"], $_data["rowid"], false, $_data["module"]); } else { $var["sourceInfo"] = null; } $feedTemplateAlias = "application.modules.message.config.feed.{$_data["type"]}Feed"; $file = Ibos::getPathOfAlias($feedTemplateAlias); if (!file_exists($file . ".php")) { $feedTemplateAlias = "application.modules.message.config.feed.postFeed"; } $feedXmlContent = Ibos::app()->getController()->renderPartial($feedTemplateAlias, $var, true); $s = simplexml_load_string($feedXmlContent); if (!$s) { return false; } $result = $s->xpath("//feed[@type='" . StringUtil::filterCleanHtml($_data["type"]) . "']"); $actions = (array) $result[0]->feedAttr; $return["content"] = $var["content"]; if (isset($var["attach_id"])) { $return["attach_id"] = $var["attach_id"]; } $return["userInfo"] = $user; $return["title"] = trim((string) $result[0]->title); $return["body"] = trim((string) $result[0]->body); $return["info"] = trim((string) $result[0]["info"]); $return["body"] = StringUtil::parseHtml($return["body"]); $return["api_source"] = $var["sourceInfo"]; $return["actions"] = $actions["@attributes"]; if (!$this->notDel($_data["module"], $_data["type"], $_data["rowid"])) { $return["body"] = Ibos::lang("Info already delete", "message.default"); } return $return; }