public static function shortcode_index($atts, $widget = false) { if (CMA_Thread::canBeViewed()) { CMA_AnswerController::addDisclaimer($force = true); if (!isset($atts['navbar'])) { $atts['navbar'] = 1; } if (!isset($atts['form'])) { $atts['form'] = 1; } if (!isset($atts['pagination'])) { $atts['pagination'] = 1; } // $atts['displaycategories'] = 1; if (empty($atts['limit'])) { $atts['limit'] = CMA_Settings::getOption(CMA_Settings::OPTION_ITEMS_PER_PAGE); } return self::general_shortcode($atts, $widget); } else { if (!$widget) { $output = '<ul class="errors"><li>' . CMA_Labels::getLocalized('no_permissions') . '</li></ul> <a href="javascript:history.back(-1)">' . CMA_Labels::getLocalized('back_to_previous_page') . '</a><br />'; $output .= CMA_BaseController::_loadView('answer/widget/login', compact('widget')); return $output; } } }
public static function _loadView($_name, $_params = array()) { $canBeViewed = (empty($_params['checkPermissions']) or CMA_Thread::canBeViewed()); if (!$canBeViewed) { if (isset($_params['widget']) && $_params['widget']) { return ''; } $path = CMA_PATH . '/views/frontend/permissions.phtml'; $_name = 'permissions'; $_params = array('contentOnly' => true); } else { $path = CMA_PATH . '/views/frontend/' . $_name . '.phtml'; } $template = self::locateTemplate(array($_name), $path); if (!empty($_params)) { extract($_params); } ob_start(); require $template; return ob_get_clean(); }
public static function overrideTemplate($template) { global $wp_query; // var_dump($wp_query->request);exit; if (get_query_var('post_type') == CMA_Thread::POST_TYPE || is_tax(CMA_Category::TAXONOMY)) { // Avoid to display 404 when trying to load to big page number if (is_404() and self::$query->get('paged') > 1) { wp_redirect(preg_replace('#/page/[0-9]+/#', '/', $_SERVER['REQUEST_URI'])); exit; } if (!CMA_Thread::canBeViewed()) { $template = self::prepareSinglePage($title = CMA_Labels::getLocalized('index_page_title'), $content = self::_loadView('answer/meta/access-denied', array(), true), true); } else { if (is_404()) { // leave default 404 template $template = get_404_template(); } else { if (is_single()) { global $post; if (!empty($_GET[self::PARAM_EDIT_QUESTION_ID])) { $template = self::prepareSinglePage($post->post_title, self::_processEditQuestionView(), true); } else { if (!empty($_GET[self::PARAM_EDIT_ANSWER_ID])) { $template = self::prepareSinglePage($post->post_title, self::_processEditAnswerView(), true); } else { // Thread page wp_enqueue_script('cma-toast', CMA_URL . '/views/resources/toast/js/jquery.toastmessage.js', array('jquery'), false, true); wp_enqueue_style('cma-toast-css', CMA_URL . '/views/resources/toast/resources/css/jquery.toastmessage.css', array(), false); if (CMA_Settings::getOption(CMA_Settings::OPTION_SHOW_SOCIAL)) { wp_enqueue_script('cma-twitter', 'https://platform.twitter.com/widgets.js', array(), false, true); wp_enqueue_script('cma-linkedin', 'https://platform.linkedin.com/in.js', array(), false, true); } if (self::isAjax()) { $template = self::locateTemplate(array('answer/ajax'), $template); } else { if ($name = CMA_Settings::getThreadPageTemplate()) { $template = locate_template(array($name, 'page.php', 'single.php'), false, false); add_filter('body_class', array(__CLASS__, 'pageBodyClass'), 20); } else { $template = self::locateTemplate(array('answer/single'), $template); } } } } } else { if (self::isAjax()) { self::prepareSinglePage($title = self::getIndexTitle(), $content = '', $newQuery = true); $template = self::locateTemplate(array('answer/ajax'), $template); } else { if ($name = CMA_Settings::getIndexPageTemplate()) { self::prepareSinglePage($title = self::getIndexTitle(), $content = '', $newQuery = true); $template = locate_template(array($name, 'page.php', 'single.php'), false, false); add_filter('body_class', array(__CLASS__, 'pageBodyClass'), 20); } else { $template = self::locateTemplate(array('answer/index'), $template); } } $wp_query->set('is_cma_index', 1); self::$query->set('is_cma_index', 1); } } } add_filter('body_class', array(get_class(), 'adjustBodyClass'), 20, 2); self::loadScripts(); } else { if (get_query_var('cma_answer_answers')) { self::loadScripts(); } } return $template; }