当前位置: 首页>>代码示例>>PHP>>正文


PHP DiscussHelper::getEditorType方法代码示例

本文整理汇总了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;
 }
开发者ID:pguilford,项目名称:vcomcc,代码行数:64,代码来源:helper.php

示例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 = '';
//.........这里部分代码省略.........
开发者ID:BetterBetterBetter,项目名称:B3App,代码行数:101,代码来源:view.ajax.php

示例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');
//.........这里部分代码省略.........
开发者ID:pguilford,项目名称:vcomcc,代码行数:101,代码来源:posts.php


注:本文中的DiscussHelper::getEditorType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。