本文整理汇总了PHP中DiscussHelper::getEditorType方法的典型用法代码示例。如果您正苦于以下问题:PHP DiscussHelper::getEditorType方法的具体用法?PHP DiscussHelper::getEditorType怎么用?PHP DiscussHelper::getEditorType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DiscussHelper
的用法示例。
在下文中一共展示了DiscussHelper::getEditorType方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: share
/**
* Shares a new content on Facebook
**/
public function share($post)
{
$config = DiscussHelper::getConfig();
$content = $post->content;
$content = EasyDiscussParser::bbcode($content);
JFactory::getLanguage()->load('com_easydiscuss', JPATH_ROOT);
$editor = DiscussHelper::getEditorType('question');
if ($editor == 'html') {
// @rule: Match images from content
$pattern = '/<\\s*img [^\\>]*src\\s*=\\s*[\\""\']?([^\\""\'\\s>]*)/i';
} else {
$pattern = '/\\[img\\](.*?)\\[\\/img\\]/ims';
}
preg_match($pattern, $content, $matches);
$image = '';
if ($matches) {
$image = isset($matches[1]) ? $matches[1] : '';
if (JString::stristr($matches[1], 'https://') === false && JString::stristr($matches[1], 'http://') === false && !empty($image)) {
$image = DISCUSS_JURIROOT . '/' . ltrim($image, '/');
}
}
$text = strip_tags($content);
// @TODO: Configurable content length.
$maxLength = 200;
$text = JString::strlen($text) > $maxLength ? JString::substr($text, 0, $maxLength) . '...' : $text;
$url = DiscussRouter::getRoutedURL('index.php?option=com_easydiscuss&view=post&id=' . $post->id, false, true);
$this->_access_token = preg_replace('/&expires=.*/i', '', $this->_access_token);
$jConfig = DiscussHelper::getJConfig();
$params = array('link' => $url, 'name' => $post->title, 'actions' => '{"name": "' . JText::_('COM_EASYDISCUSS_AUTOPOST_FB_VIEWON_BUTTON') . '", "link" : "' . $url . '"}', 'description' => $text, 'message' => JString::substr(strip_tags($text), 0, 30) . '...', 'access_token' => $this->_access_token);
if (!empty($image)) {
// Since Facebook does not allow https images we need to replace them here.
$params['picture'] = str_ireplace('https://', 'http://', $image);
} else {
$params['picture'] = DISCUSS_JURIROOT . '/media/com_easydiscuss/images/default_facebook.png';
$params['source'] = rtrim(JURI::root(), '/') . '/media/com_easydiscuss/images/default_facebook.png';
}
// @rule: See if we need to post this to a Facebook page instead.
$pageId = $config->get('main_autopost_facebook_page_id');
if (!empty($pageId)) {
$pages = JString::trim($pageId);
$pages = explode(',', $pages);
$total = count($pages);
// @rule: Test if there are any pages at all the user can access
$accounts = parent::api('/me/accounts', array('access_token' => $this->_access_token));
if (is_array($accounts) && isset($accounts['data'])) {
for ($i = 0; $i < $total; $i++) {
foreach ($accounts['data'] as $page) {
if ($page['id'] == $pages[$i]) {
$params['access_token'] = $page['access_token'];
$query = parent::api('/' . $page['id'] . '/feed', 'post', $params);
}
}
}
}
} else {
// @rule: If this is just a normal posting, just post it on their page.
$query = parent::api('/me/feed', 'post', $params);
}
$success = isset($query['id']) ? true : false;
return $success;
}
示例2: 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 = '';
//.........这里部分代码省略.........
示例3: saveReply
/**
* Saves an edited reply if the site is configured to use a WYSIWYG editor
*
* @since 3.2
* @access public
* @param string
* @return
*/
public function saveReply()
{
//JRequest::checkToken('request') or jexit( 'Invalid Token' );
$config = DiscussHelper::getConfig();
$acl = DiscussHelper::getHelper('ACL');
$my = JFactory::getUser();
$app = JFactory::getApplication();
$post = JRequest::get('POST');
$output = array();
$output['id'] = $post['post_id'];
$postTable = DiscussHelper::getTable('Post');
$postTable->load($post['post_id']);
$categoryTable = DiscussHelper::getTable('category');
$categoryTable->load($postTable->category_id);
$postAccess = DiscussHelper::getPostAccess($postTable, $categoryTable);
if (!$postAccess->canEdit()) {
DiscussHelper::setMessageQueue(JText::_('COM_EASYDISCUSS_SYSTEM_INSUFFICIENT_PERMISSIONS'), DISCUSS_QUEUE_ERROR);
$app->redirect(DiscussRouter::_('index.php?option=com_easydiscuss&view=ask&id=' . $post['post_id'], false));
return $app->close();
}
// do checking here!
if (empty($post['dc_reply_content'])) {
DiscussHelper::setMessageQueue(JText::_('COM_EASYDISCUSS_ERROR_REPLY_EMPTY'), DISCUSS_QUEUE_ERROR);
$app->redirect(DiscussRouter::_('index.php?option=com_easydiscuss&view=ask&id=' . $post['post_id'], false));
return $app->close();
}
// Rebind the post data
$post['dc_reply_content'] = JRequest::getVar('dc_reply_content', '', 'post', 'none', JREQUEST_ALLOWRAW);
$post['content'] = $post['dc_reply_content'];
$data['content_type'] = DiscussHelper::getEditorType('reply');
$postTable->bind($post);
$recaptcha = $config->get('antispam_recaptcha');
$public = $config->get('antispam_recaptcha_public');
$private = $config->get('antispam_recaptcha_private');
if (!$config->get('antispam_recaptcha_registered_members') && $my->id > 0) {
$recaptcha = false;
}
if ($recaptcha && $public && $private) {
require_once DISCUSS_CLASSES . '/recaptcha.php';
$obj = DiscussRecaptcha::recaptcha_check_answer($private, $_SERVER['REMOTE_ADDR'], $post['recaptcha_challenge_field'], $post['recaptcha_response_field']);
if (!$obj->is_valid) {
$ajax->reloadCaptcha();
$ajax->reject('error', JText::_('COM_EASYDISCUSS_POST_INVALID_RECAPTCHA_RESPONSE'));
$ajax->send();
}
} else {
if ($config->get('antispam_easydiscuss_captcha')) {
$runCaptcha = DiscussHelper::getHelper('Captcha')->showCaptcha();
if ($runCaptcha) {
$response = JRequest::getVar('captcha-response');
$captchaId = JRequest::getInt('captcha-id');
$discussCaptcha = new stdClass();
$discussCaptcha->captchaResponse = $response;
$discussCaptcha->captchaId = $captchaId;
$state = DiscussHelper::getHelper('Captcha')->verify($discussCaptcha);
if (!$state) {
DiscussHelper::setMessageQueue(JText::_('COM_EASYDISCUSS_INVALID_CAPTCHA'), DISCUSS_QUEUE_ERROR);
$app->redirect(DiscussRouter::_('index.php?option=com_easydiscuss&view=post&layout=edit&id=' . $postTable->id, false));
return $app->close();
}
}
}
}
// @rule: Bind parameters
if ($config->get('reply_field_references')) {
$postTable->bindParams($post);
}
// Bind file attachments
if ($acl->allowed('add_attachment', '0')) {
$postTable->bindAttachments();
}
$isNew = false;
// @trigger: onBeforeSave
DiscussEventsHelper::importPlugin('content');
DiscussEventsHelper::onContentBeforeSave('post', $postTable, $isNew);
if (!$postTable->store()) {
$ajax->reject('error', JText::_('COM_EASYDISCUSS_ERROR'));
$ajax->send();
}
// Process poll items
$includePolls = JRequest::getBool('pollitems', false);
// Process poll items here.
if ($includePolls && $config->get('main_polls')) {
$pollItems = JRequest::getVar('pollitems');
$pollItemsOri = JRequest::getVar('pollitemsOri');
// Delete polls if necessary since this post doesn't contain any polls.
//if( !$isNew && !$includePolls )
if (count($pollItems) == 1 && empty($pollItems[0]) && !$isNew) {
$postTable->removePoll();
}
// Check if the multiple polls checkbox is it checked?
$multiplePolls = JRequest::getVar('multiplePolls', '0');
//.........这里部分代码省略.........