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