本文整理汇总了PHP中DiscussHelper::formatContent方法的典型用法代码示例。如果您正苦于以下问题:PHP DiscussHelper::formatContent方法的具体用法?PHP DiscussHelper::formatContent怎么用?PHP DiscussHelper::formatContent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DiscussHelper
的用法示例。
在下文中一共展示了DiscussHelper::formatContent方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: display
//.........这里部分代码省略.........
$this->logView();
// Update hit count for this discussion.
$post->hit();
// Set page headers
$this->setPageHeaders($post);
// Before sending the title and content to be parsed, we need to store this temporarily in case it needs to be accessed.
$post->title_clear = $post->title;
// Filter badwords
$post->title = DiscussHelper::wordFilter($post->title);
$post->content = DiscussHelper::wordFilter($post->content);
// Get the tags for this discussion
$postsTagsModel = $this->getModel('PostsTags');
$tags = $postsTagsModel->getPostTags($id);
// Get adsense codes here.
$adsense = DiscussHelper::getAdsense();
$postsModel = DiscussHelper::getModel('Posts');
// Get the answer for this discussion.
$answer = $postsModel->getAcceptedReply($post->id);
// Format the answer object.
if ($answer) {
$answer = DiscussHelper::formatReplies($answer, $category);
$answer = $answer[0];
}
// Get a list of replies for this post.
$data = $this->getReplies($category, $post, $sort, $answer);
$replies = $data->replies;
$totalReplies = $data->total;
$hasMoreReplies = $data->more;
$readMoreURI = $data->readmore;
// Get comments for the post
$commentLimit = $config->get('main_comment_pagination') ? $config->get('main_comment_pagination_count') : null;
$post->comments = false;
if ($config->get('main_commentpost')) {
$comments = $post->getComments($commentLimit);
$post->comments = DiscussHelper::formatComments($comments);
}
// get reply comments count
$post->commentsCount = $post->getTotalComments();
// Get the post access object here.
$access = $post->getAccess($category);
$post->access = $access;
// Add custom values.
$postOwner = $post->getOwner();
$profileTable = DiscussHelper::getTable('Profile');
if ($postOwner->id) {
$profileTable->load($postOwner->id);
}
$post->user = $profileTable;
// update user's post read flag
if ($my->id != 0) {
$profile = DiscussHelper::getTable('Profile');
$profile->load($my->id);
$profile->read($post->id);
}
$badgesTable = DiscussHelper::getTable('Profile');
$badgesTable->load($post->user->id);
$postBadges = $badgesTable->getBadges();
// Get Likes model here.
$post->likesAuthor = DiscussHelper::getHelper('Likes')->getLikesHTML($post->id, $my->id, 'post');
$post->isVoted = DiscussHelper::getHelper('Post')->isVoted($post->id);
// Format the content.
$post->content = DiscussHelper::formatContent($post);
// Test if trigger is necessary here.
if ($config->get('main_content_trigger_posts')) {
// Move aside the original content_raw
$content_raw_temp = $post->content_raw;
// Add the br tags in the content, we do it here so that the content triggers's javascript will not get added with br tags
$post->content_raw = DiscussHelper::formatContent($post);
$post->event = new stdClass();
// Triger onContentPrepare here. Since it doesn't have any return value, just ignore this.
DiscussHelper::triggerPlugins('content', 'onContentPrepare', $post);
$post->event->afterDisplayTtle = DiscussHelper::triggerPlugins('content', 'onContentAfterTitle', $post, true);
$post->event->beforeDisplayContent = DiscussHelper::triggerPlugins('content', 'onContentBeforeDisplay', $post, true);
$post->event->afterDisplayContent = DiscussHelper::triggerPlugins('content', 'onContentAfterDisplay', $post, true);
// Assign the processed content back
$post->content = $post->content_raw;
// Move back the original content_raw
$post->content_raw = $content_raw_temp;
}
$theme = new DiscussThemes();
// Get list of moderators from the site.
$moderators = array();
$composer = new DiscussComposer("replying", $post);
// Set the discussion object.
$theme->set('post', $post);
$theme->set('composer', $composer);
$theme->set('replies', $replies);
$theme->set('answer', $answer);
$theme->set('sort', $sort);
$theme->set('adsense', $adsense);
$theme->set('tags', $tags);
$theme->set('totalReplies', $totalReplies);
$theme->set('hasMoreReplies', $hasMoreReplies);
$theme->set('access', $access);
$theme->set('category', $category);
$theme->set('moderators', $moderators);
$theme->set('readMoreURI', $readMoreURI);
$theme->set('postBadges', $postBadges);
echo $theme->fetch('post.php');
}
示例2: formatReplies
public static function formatReplies($result, $category = null)
{
$config = DiscussHelper::getConfig();
if (!$result) {
return $result;
}
$my = JFactory::getUser();
$replies = array();
for ($i = 0; $i < count($result); $i++) {
$row =& $result[$i];
$reply = DiscussHelper::getTable('Post');
$reply->bind($row);
$response = new stdClass();
if ($row->user_id == 0 || $row->user_type == DISCUSS_POSTER_GUEST) {
$response->id = '0';
$response->name = 'Guest';
// TODO: user the poster_name
} else {
$replier = JFactory::getUser($row->user_id);
$response->id = $replier->id;
$response->name = $replier->name;
}
//load porfile info and auto save into table if user is not already exist in discuss's user table.
$creator = DiscussHelper::getTable('Profile');
$creator->load($response->id);
$reply->user = $creator;
$reply->content_raw = $row->content;
$reply->isVoted = $row->isVoted;
$reply->total_vote_cnt = $row->total_vote_cnt;
$reply->title = DiscussHelper::wordFilter($reply->title);
$reply->content = DiscussHelper::wordFilter($reply->content);
// Legacy fix when switching from WYSIWYG editor to bbcode.
$reply->content = EasyDiscussParser::html2bbcode($reply->content);
// Parse bbcodes.
$reply->content = self::parseContent($reply->content, true);
// Parse @username links.
$reply->content = DiscussHelper::getHelper('String')->nameToLink($reply->content);
// set for vote status
$reply->voted = $reply->hasVoted();
// get total vote for this reply
$reply->totalVote = $reply->sum_totalvote;
// get the 5 latest voters
$voters = DiscussHelper::getVoters($row->id);
$reply->voters = $voters->voters;
$reply->shownVoterCount = $voters->shownVoterCount;
$reply->minimize = DiscussHelper::getHelper('Post')->toMinimizePost($row->sum_totalvote);
$reply->likesAuthor = DiscussHelper::getHelper('Likes')->getLikesHTML($row->id, null, null, $reply->getLikeAuthorsObject($row->id));
$reply->isLike = DiscussHelper::getHelper('Post')->isLiked($row->id);
// get reply comments
$commentLimit = $config->get('main_comment_pagination') ? $config->get('main_comment_pagination_count') : null;
$comments = $reply->getComments($commentLimit);
$reply->comments = false;
if ($config->get('main_comment')) {
$reply->comments = DiscussHelper::formatComments($comments);
}
// get reply comments count
$reply->commentsCount = $reply->getTotalComments();
// @rule: Check for url references
$reply->references = $reply->getReferences();
$reply->content = DiscussHelper::formatContent($reply);
if ($config->get('main_content_trigger_replies')) {
// Move aside the original content_raw
$content_raw_temp = $reply->content_raw;
// Add the br tags in the content, we do it here so that the content triggers's javascript will not get added with br tags
// $reply->content_raw = DiscussHelper::bbcodeHtmlSwitcher( $reply, 'reply', false );
// process content plugins
DiscussEventsHelper::importPlugin('content');
DiscussEventsHelper::onContentPrepare('reply', $reply);
$reply->event = new stdClass();
$results = DiscussEventsHelper::onContentBeforeDisplay('reply', $reply);
$reply->event->beforeDisplayContent = trim(implode("\n", $results));
$results = DiscussEventsHelper::onContentAfterDisplay('reply', $reply);
$reply->event->afterDisplayContent = trim(implode("\n", $results));
// Assign the processed content back
// $reply->content = $reply->content_raw;
// Move back the original content_raw
$reply->content_raw = $content_raw_temp;
}
$reply->access = $reply->getAccess($category);
$replies[] = $reply;
}
return $replies;
}
示例3: saveReply
/**
* Triggers when an edited reply is saved.
*
* @since 3.0
* @param null
* @return null
*/
public function saveReply()
{
// Load ajax library
$ajax = DiscussHelper::getHelper('Ajax');
$config = DiscussHelper::getConfig();
// Get the posted data
$data = JRequest::get('post');
// Prepare the output data
$output = array();
$output['id'] = $data['post_id'];
$acl = DiscussHelper::getHelper('ACL');
$my = JFactory::getUser();
// Check for empty content
$this->checkEmpty($data, $ajax);
// Rebind the post data because it may contain HTML codes
$data['content'] = JRequest::getVar('content', '', 'post', 'none', JREQUEST_ALLOWRAW);
$data['content_type'] = DiscussHelper::getEditorType('reply');
// Load up the post table
$post = DiscussHelper::getTable('Post');
$post->load($data['post_id']);
// Bind the post table with the data
$post->bind($data);
// Check if the post data is valid
if (!$post->id || !$data['post_id']) {
$ajax->reject('error', JText::_('COM_EASYDISCUSS_SYSTEM_INVALID_ID'));
return $ajax->send();
}
// Only allow users with proper access
$isModerator = DiscussHelper::getHelper('Moderator')->isModerator($post->category_id);
// Do not allow unauthorized access
if (!DiscussHelper::isSiteAdmin() && $post->user_id != $my->id && !$acl->allowed('edit_reply', 0) && !$isModerator) {
$ajax->reject('error', JText::_('COM_EASYDISCUSS_SYSTEM_INSUFFICIENT_PERMISSIONS'));
$ajax->send();
}
// Get the new content from the post data
$post->content = $data['content'];
// Validate captcha
$this->checkCaptcha($data);
// @rule: Bind parameters
if ($config->get('reply_field_references')) {
$post->bindParams($data);
}
// Bind file attachments
if ($acl->allowed('add_attachment', '0')) {
$post->bindAttachments();
}
// Determines if this is a new post.
$isNew = false;
// @trigger: onBeforeSave
DiscussEventsHelper::importPlugin('content');
DiscussEventsHelper::onContentBeforeSave('post', $post, $isNew);
// Try to store the post now
if (!$post->store()) {
$ajax->reject('error', JText::_('COM_EASYDISCUSS_ERROR'));
$ajax->send();
}
// Process polls
$this->processPolls($post);
// Process custom fields
$this->saveCustomFieldsValue($post->id);
// @trigger: onAfterSave
DiscussEventsHelper::onContentAfterSave('post', $post, $isNew);
// Filter for badwords
$post->title = DiscussHelper::wordFilter($post->title);
$post->content = DiscussHelper::wordFilter($post->content);
// Determines if the user is allowed to delete this post
$canDelete = false;
if (DiscussHelper::isSiteAdmin() || $acl->allowed('delete_reply', '0') || $post->user_id == $my->id) {
$canDelete = true;
}
// URL References
$post->references = $post->getReferences();
// Get the voted state
$voteModel = DiscussHelper::getModel('Votes');
$post->voted = $voteModel->hasVoted($post->id);
// Get total votes for this post
$post->totalVote = $post->sum_totalvote;
// Load profile info
$creator = DiscussHelper::getTable('Profile');
$creator->load($post->user_id);
// Assign creator
$post->user = $creator;
// Format the content.
$tmp = $post->content;
$post->content_raw = $post->content;
$post->content = DiscussHelper::formatContent($post);
// Once the formatting is done, we need to escape the raw content
$post->content_raw = DiscussHelper::getHelper('String')->escape($tmp);
// Store the default values
//default value
$post->isVoted = 0;
$post->total_vote_cnt = 0;
$post->likesAuthor = '';
//.........这里部分代码省略.........