Example #1
0
 public static function init($pluginFilePath)
 {
     register_activation_hook($pluginFilePath, array(__CLASS__, 'install'));
     register_uninstall_hook($pluginFilePath, array(__CLASS__, 'uninstall'));
     add_action('init', array('CMA_Update', 'run'), 0);
     add_action('widgets_init', array('CMA_AnswerController', 'registerSidebars'));
     // Check licensing API before controller init
     $licensingApi = new CMA_Cminds_Licensing_API('CM Answers Pro', CMA_Thread::ADMIN_MENU, 'CM Answers Pro', CMA_PLUGIN_FILE, array('release-notes' => 'http://answers.cminds.com/release-notes/'), '', array('CM Answers Pro'));
     self::$isLicenseOk = $licensingApi->isLicenseOk();
     CMA_Labels::bootstrap();
     CMA_Thread::init();
     add_action('plugins_loaded', array('CMA_BuddyPress', 'bootstrap'));
     add_action('init', array('CMA_BaseController', 'bootstrap'));
     add_action('wp_enqueue_scripts', array(__CLASS__, 'enable_scripts'));
     add_action('admin_enqueue_scripts', array(__CLASS__, 'enable_admin_scripts'));
     add_action('wp_head', array(__CLASS__, 'add_base_url'));
     add_filter('bp_blogs_record_comment_post_types', array(get_class(), 'bp_record_my_custom_post_type_comments'));
     add_filter('plugin_action_links_' . CMA_PLUGINNAME, array(__CLASS__, 'cma_settings_link'));
     add_filter('cm_micropayments_integrations', function ($a = array()) {
         if (!is_array($a)) {
             $a = array();
         }
         $a[] = 'CM Answers Pro';
         return $a;
     });
     add_action('plugins_loaded', array(__CLASS__, 'cm_lang_init'));
 }
 public static function initialize()
 {
     if (!CMA::isLicenseOk()) {
         return;
     }
     self::addAjaxHandler('cma-follow-new-threads', array(__CLASS__, 'ajaxHandler'));
 }
 public static function init()
 {
     if (!CMA::isLicenseOk()) {
         return;
     }
     add_shortcode('CMA-question-form', array(__CLASS__, 'shortcode'));
     add_shortcode('cma-question-form', array(__CLASS__, 'shortcode'));
 }
 public static function initialize()
 {
     if (!CMA::isLicenseOk()) {
         return;
     }
     add_action('cma_index_question_form', array(__CLASS__, 'indexQuestionForm'), 1000, 2);
     add_filter('template_include', array(__CLASS__, 'overrideTemplate'), PHP_INT_MAX);
     // 		add_filter('the_content', array(__CLASS__, 'the_content'), PHP_INT_MAX);
 }
 public static function initialize()
 {
     add_action('wp_set_comment_status', array(__CLASS__, 'hookSetStatus'), 10, 2);
     if (!CMA::isLicenseOk()) {
         return;
     }
     add_action('CMA_comments_question', array(get_class(), 'displayQuestionComments'), 20, 1);
     add_action('CMA_comments_single', array(get_class(), 'displayCommentSingle'), 20, 1);
     add_action('CMA_comments_form_add', array(get_class(), 'displayCommentFormAdd'), 20, 2);
     add_action('CMA_comments_answer', array(get_class(), 'displayAnswerComments'), 20, 2);
     add_filter('template_include', array(get_class(), 'overrideTemplate'));
 }
 public static function init()
 {
     if (!CMA::isLicenseOk()) {
         return;
     }
     add_action('init', array(__CLASS__, 'add_rewrite_endpoint'));
     add_shortcode('cma-my-questions', array(__CLASS__, 'shortcode_my_questions'));
     add_shortcode('cma-my-answers', array(__CLASS__, 'shortcode_my_answers'));
     add_shortcode('cma-answers', array(__CLASS__, 'shortcode_answers'));
     add_shortcode('cma-questions', array(__CLASS__, 'shortcode_questions'));
     add_shortcode('cma-comments', array(__CLASS__, 'shortcode_comments'));
     add_shortcode('cma-categories', array(__CLASS__, 'shortcode_categories'));
     add_shortcode('cma-categories-list', array(__CLASS__, 'shortcode_categories_list'));
     add_shortcode('cma-index', array(__CLASS__, 'shortcode_index'));
     //         add_action('wp_enqueue_scripts', array(__CLASS__,'addStyles'));
 }
 public static function initialize()
 {
     add_action('cma_category_edit_form_fields', array(__CLASS__, 'categoryEditFormAccess'));
     add_action('cma_category_add_form_fields', array(__CLASS__, 'categoryEditFormAccess'));
     add_action('cma_category_edit_form_fields', array(__CLASS__, 'categoryEditFormExperts'));
     add_action('cma_category_add_form_fields', array(__CLASS__, 'categoryEditFormExperts'));
     add_action('cma_category_edit_form_fields', array(__CLASS__, 'categoryEditFormFields'));
     add_action('cma_category_add_form_fields', array(__CLASS__, 'categoryEditFormFields'));
     add_action('edited_cma_category', array(__CLASS__, 'categoryAfterSave'), 10, 2);
     add_action('created_cma_category', array(__CLASS__, 'categoryAfterSave'), 10, 2);
     add_action('cma_question_form_category_custom_fields', array(__CLASS__, 'questionForm'), 10, 2);
     add_action('cma_question_post_after', array(__CLASS__, 'threadSaveAfter'), 10, 2);
     add_action('cma_question_update_after', array(__CLASS__, 'threadSaveAfter'), 10, 1);
     self::addAjaxHandler('cma_load_category_custom_fields', array(__CLASS__, 'loadCustomFields'));
     if (!CMA::isLicenseOk()) {
         return;
     }
 }
 public static function registerPages()
 {
     if (CMA::isLicenseOk()) {
         add_action('generate_rewrite_rules', array(get_class(), 'registerRewriteRules'));
         add_filter('query_vars', array(get_class(), 'registerQueryVars'));
         add_filter('wp_title', array(get_class(), '_showPageTitle'), 1, 3);
         add_action('pre_get_posts', array(get_class(), 'setQueryVars'), 1, 1);
         add_filter('the_posts', array(get_class(), 'editQuery'), 10, 2);
         add_filter('the_content', array(get_class(), 'showPageContent'), 10, 1);
     }
 }
 public static function initialize()
 {
     add_filter('manage_edit-' . CMA_Thread::POST_TYPE . '_columns', array(get_class(), 'registerAdminColumns'));
     add_filter('manage_edit-' . CMA_Thread::POST_TYPE . '_sortable_columns', array(get_class(), 'registerAdminSortableColumns'));
     add_filter('manage_' . CMA_Thread::POST_TYPE . '_posts_custom_column', array(get_class(), 'adminColumnDisplay'), 10, 2);
     do_action('CMA_custom_post_type_nav', CMA_Thread::POST_TYPE);
     add_filter('CMA_admin_settings', array(get_class(), 'addAdminSettings'));
     add_action('pre_get_posts', array(get_class(), 'fixPostType'), 1, 1);
     add_action('pre_get_posts', array(get_class(), 'registerCustomOrder'), 9999, 1);
     add_action('pre_get_posts', array(get_class(), 'registerTagFilter'), 9999, 1);
     add_action('pre_get_posts', array(get_class(), 'registerCustomFilter'), 9999, 1);
     add_action('pre_get_posts', array(get_class(), 'registerPageCount'), 9999, 1);
     add_action('pre_get_posts', array(get_class(), 'registerAsHomepage'), 99, 1);
     add_action('pre_get_posts', array(get_class(), 'checkIfDisabled'), 98, 1);
     //     	add_action('pre_get_posts', array(get_class(), 'registerAdminCustomOrder'), 98, 1);
     add_filter('the_posts', array(__CLASS__, 'thePostsFilter'));
     add_action('cma_index_header_after', array(__CLASS__, 'indexHeaderAfter'));
     add_filter('posts_where', array(get_class(), 'registerCommentsFiltering'), 1, 1);
     add_action('added_term_relationship', array(__CLASS__, 'addedTermRelationship'), 10, 2);
     add_filter('cma_thread_meta_keys', array('CMA_Thread', 'getMetaKeys'), 1, 1);
     add_filter('cma_answer_meta_keys', array('CMA_Answer', 'getMetaKeys'), 1, 1);
     add_filter('cma_comment_meta_keys', array('CMA_Comment', 'getMetaKeys'), 1, 1);
     add_filter('cma_restore_widget_options', array(__CLASS__, 'restoreWidgetOptions'));
     add_action('admin_notices', array(__CLASS__, 'printAdminWarnings'));
     add_filter('cma_video_helper_process_content', array('CMA_VideoHelper', 'processContent'));
     if (!CMA::isLicenseOk()) {
         return;
     }
     add_filter('posts_search', array(get_class(), 'alterSearchQuery'), 9999, 2);
     add_action('template_redirect', array(get_class(), 'processQueryVars'), 1);
     add_filter('template_include', array(get_class(), 'overrideTemplate'), PHP_INT_MAX);
     add_action('parse_query', array(get_class(), 'processStatusChange'));
     add_filter('wp_nav_menu_items', array(get_class(), 'addMenuItem'), 1, 1);
     add_action('wp_enqueue_scripts', array(__CLASS__, 'addDisclaimer'));
     add_filter('cma_is_thread_visible', array(__CLASS__, 'isThreadVisible'), 10, 3);
     add_filter('cma_is_answer_visible', array(__CLASS__, 'isAnswerVisible'), 10, 3);
     add_filter('cma_is_category_visible', array(__CLASS__, 'isCategoryVisible'), 10, 3);
     add_filter('cma_email_headers', array(__CLASS__, 'registerEmailContentType'));
     add_filter('cma_email_body', array(__CLASS__, 'filterEmailBody'));
     add_action('cma_thread_set_best_answer', array(__CLASS__, 'bestAnswerNotification'), 10, 1);
     /* add_action('pre_get_posts', array(get_class(), 'registerStickyPosts'), 1, 1); */
     add_action('transition_post_status', array(get_class(), 'processPostStatusChange'), 10, 3);
     add_action('before_delete_post', array(get_class(), 'processBeforePostDelete'));
     add_action('wp_set_comment_status', array(get_class(), 'processAnwserStatusChange'), 999, 2);
     add_action('delete_comment', array(get_class(), 'processBeforeCommentDelete'));
     add_action('CMA_display_question_form_upload', array(get_class(), 'displayQuestionFormUpload'), 98, 1);
     add_action('CMA_display_answer_form_upload', array(get_class(), 'displayAnswerFormUpload'), 98, 1);
     add_action('CMA_form_tags', array(__CLASS__, 'displayFormTags'));
     add_action('CMA_breadcrumbs', array(get_class(), 'displayBreadcrumbs'), 98, 1);
     add_action('CMA_questions_table_before', array('CMA_Ads', 'display'));
     add_action('CMA_questions_table_after', array('CMA_Ads', 'display'));
     add_action('CMA_thread_before', array('CMA_Ads', 'display'));
     add_action('CMA_thread_answers_before', array('CMA_Ads', 'display'));
     add_action('CMA_thread_answers_after', array('CMA_Ads', 'display'));
     add_action('CMA_thread_answers_form_after', array('CMA_Ads', 'display'));
     add_action('cma_question_snippet', array(__CLASS__, 'showQuestionSnippet'), 10, 2);
     add_action('wp_head', array(__CLASS__, 'wp_head_inline_styles'));
     add_action('wp_head', array(__CLASS__, 'wp_head_noindex'));
     add_filter('the_permalink', array(__CLASS__, 'filterThePermalink'));
     self::initThreadPage();
     // AJAX actions
     self::addAjaxHandler('cma_vote', array(get_class(), 'processVote'));
     self::addAjaxHandler('cma_tag_autocomplete', array(get_class(), 'processTagAutocomplete'));
     if (is_admin()) {
         add_filter('post_row_actions', array(get_class(), 'pageRowActions'), 10, 2);
     }
     if (CMA_Settings::getOption(CMA_Settings::OPTION_SHOW_LOGIN_WIDGET)) {
         add_action('CMA_login_form', array(get_class(), 'showLoginForm'));
     }
     add_shortcode('cma-followed', array(__CLASS__, 'shortcodeFollowed'));
     // Function runs only once on script install or update
     self::postsStickyReset();
 }