public static function getTemplatePart($slug, $name = null)
 {
     $post = get_post();
     $thread = CMA_Thread::getInstance($post->ID);
     switch ($name) {
         case 'header':
             if (self::isAjax()) {
                 echo self::_loadView('answer/meta/single-header', compact('thread'));
             }
             break;
         case 'breadcrumbs':
             do_action('CMA_breadcrumbs');
             break;
         case 'navbar':
             if (CMA_Settings::getOption(CMA_Settings::OPTION_SHOW_QUESTION_PAGE_NAV_BAR) and empty($_GET['post_id'])) {
                 $displayOptions = self::getDisplayOptions();
                 echo self::_loadView('answer/nav/nav-bar', compact('thread', 'displayOptions'));
             }
             break;
         case 'backlink':
             echo self::getBacklink();
             break;
         case 'messages':
             if (is_main_query()) {
                 do_action('cma_flash_messages');
             }
             break;
         case 'tags':
             echo CMA_Thread::getTags($post->ID);
             break;
         case 'social-icons':
             if (CMA_Settings::getOption(CMA_Settings::OPTION_SHOW_SOCIAL) and empty($_GET['widgetCacheId'])) {
                 echo self::_loadView('answer/widget/social', compact('thread'));
             }
             break;
         case 'thread-ref-id':
             if (CMA_Settings::getOption(CMA_Settings::OPTION_THREAD_DISPLAY_ID)) {
                 echo self::_loadView('answer/meta/thread-ref-id', compact('thread'));
             }
             break;
         case 'rating-question':
             $rating = $thread->getPostRating();
             $usersFavoriteNumber = count($thread->getUsersFavorite());
             $favoriteTitle = $thread->isFavorite() ? CMA::__('Unmark as favorite') : CMA::__('Mark as favorite');
             $favoriteNumberTitle = sprintf(CMA_Labels::getLocalized('favorite_for_users'), $usersFavoriteNumber);
             echo self::_loadView('answer/meta/rating-question', compact('thread', 'rating', 'usersFavoriteNumber', 'favoriteTitle', 'favoriteNumberTitle'));
             break;
         case 'attachments':
             $attachments = $thread->getAttachments();
             echo self::_loadView('answer/meta/attachments', compact('thread', 'attachments'));
             break;
         case 'user-related-questions':
             if (CMA_Settings::getOption(CMA_Settings::OPTION_USER_RELATED_QUESTIONS_ENABLE)) {
                 $questions = $thread->getUserRelatedQuestions(true);
                 echo self::_loadView('answer/meta/user-related-questions', compact('thread', 'questions'));
             }
             break;
         case 'resolve-question':
             echo self::_loadView('answer/meta/resolve-question', compact('thread'));
             break;
         case 'meta-question':
             $avatar = CMA_Settings::getOption(CMA_Settings::OPTION_SHOW_GRAVATARS) ? get_avatar($thread->getAuthorId(), 32) : null;
             $author = sprintf(CMA::__('Posted by %s'), $thread->getAuthorLink());
             if (CMA_Settings::getOption(CMA_Settings::OPTION_SHOW_USER_STATS)) {
                 $author .= ' ' . self::getUserStats($thread->getAuthorId());
             }
             $displayOptions = self::getDisplayOptions();
             echo self::_loadView('answer/meta/meta-question', compact('thread', 'avatar', 'author', 'userStats', 'displayOptions'));
             break;
         case 'controls-question':
             echo self::_loadView('answer/meta/controls-question', compact('thread'));
             break;
         case 'comments-question':
             do_action('CMA_comments_question', $thread->getId());
             break;
         case 'answers':
             global $answers, $answersSort;
             $answersSort = !empty($_GET['sort']) ? $_GET['sort'] : CMA_Answer::getOrderBy();
             if (!ctype_alnum($answersSort)) {
                 $answersSort = 'newest';
             }
             $answers = $thread->getAnswers($answersSort, $onlyVisible = true);
             $data = self::createHTMLData(array('rating-enabled' => intval(CMA_Settings::getOption(CMA_Settings::OPTION_ANSWERS_RATING_ALLOWED)), 'rating-negative-allowed' => intval(CMA_Settings::getOption(CMA_Settings::OPTION_NEGATIVE_RATING_ALLOWED)), 'best-answer-defined' => $thread->getBestAnswerId() ? 1 : 0, 'best-answer-enabled' => intval(CMA_Settings::getOption(CMA_Settings::OPTION_ENABLED_MARK_BEST_ANSWER)), 'allow-own-best-answer' => intval(CMA_Settings::getOption(CMA_Settings::OPTION_ALLOW_OWN_BEST_ANSWER)), 'best-answer-nonce' => wp_create_nonce('cma_best_answer'), 'spam-nonce' => wp_create_nonce('cma_report_spam')));
             echo self::_loadView('answer/thread-answers', compact('thread', 'data'));
             break;
         case 'single-answer':
             global $answer;
             $data = self::createHTMLData($answer->getViewData());
             echo self::_loadView('answer/single-answer', compact('thread', 'answer', 'data'));
             break;
         case 'sort-answers':
             global $answers, $answersSort;
             if (CMA_Settings::getOption(CMA_Settings::OPTION_ANSWERS_RATING_ALLOWED) and !empty($answers) and count($answers) > 1) {
                 $desc = CMA_Settings::getOption(CMA_Settings::OPTION_ANSWER_SORTING_DESC);
                 $dateClass = $answersSort == CMA_Answer::ORDER_BY_DATE ? 'cma-current-sort' : '';
                 $dateLabel = CMA_Labels::getLocalized($desc ? 'orderby_newest' : 'orderby_oldest');
                 $dateUrl = $thread->getPermalink(array('sort' => 'newest'));
                 $votesClass = $answersSort == CMA_Answer::ORDER_BY_VOTES ? 'cma-current-sort' : '';
                 $votesLabel = CMA_Labels::getLocalized($desc ? 'orderby_highest_rating' : 'orderby_lowest_rating');
                 $votesUrl = $thread->getPermalink(array('sort' => 'votes'));
                 echo self::_loadView('answer/meta/sort-answers', compact('thread', 'dateClass', 'dateLabel', 'dateUrl', 'votesClass', 'votesLabel', 'votesUrl'));
             }
             break;
         case 'rating-answer':
             global $answer;
             $rating = $answer->getRating();
             $bestAnswerLabel = CMA_Labels::getLocalized('best_answer');
             echo self::_loadView('answer/meta/rating-answer', compact('thread', 'rating', 'bestAnswerLabel'));
             break;
         case 'content-answer':
             global $answer;
             $content = do_shortcode(CMA_Thread::filterShortcodes(CMA_VideoHelper::processContent($answer->getContent())));
             echo self::_loadView('answer/content-answer', compact('thread', 'answer', 'content'));
             break;
         case 'attachments-answer':
             global $answer;
             $attachments = $answer->getAttachments();
             echo self::_loadView('answer/meta/attachments', compact('thread', 'answer', 'attachments'));
             break;
         case 'meta-answer':
             global $answer;
             $avatar = CMA_Settings::getOption(CMA_Settings::OPTION_SHOW_GRAVATARS) ? get_avatar($answer->getAuthorId(), 32) : null;
             $author = sprintf(CMA::__('Posted by %s'), $answer->getAuthorLink());
             if (CMA_Settings::getOption(CMA_Settings::OPTION_SHOW_USER_STATS)) {
                 $author .= ' ' . self::getUserStats($answer->getAuthorId());
             }
             echo self::_loadView('answer/meta/meta-answer', compact('thread', 'answer', 'avatar', 'author', 'userStats'));
             break;
         case 'controls-answer':
             global $answer;
             echo self::_loadView('answer/meta/controls-answer', compact('thread', 'answer'));
             break;
         case 'comments-answer':
             global $answer;
             do_action('CMA_comments_answer', $answer->getThreadId(), $answer->getId());
             break;
         case 'form-answer':
             if (!$thread->isResolved() || CMA_Settings::getOption(CMA_Settings::OPTION_ANSWER_AFTER_RESOLVED)) {
                 $backlink = self::getBacklink();
                 echo CMA_BaseController::_loadView('answer/widget/answer-form', compact('post', 'thread', 'backlink'));
                 do_action('CMA_thread_answers_form_after');
             }
             break;
     }
 }