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;
 }