Skip to content

Latest commit

 

History

History
967 lines (675 loc) · 23.2 KB

File metadata and controls

967 lines (675 loc) · 23.2 KB

Available Hooks in Asgaros Forum

Overview of actions and filters at asgaros forum.

Actions

  • asgarosforum_after_post_author
  • asgarosforum_after_post_message
  • asgarosforum_after_add_topic_submit
  • asgarosforum_after_add_post_submit
  • asgarosforum_after_edit_post_submit
  • asgarosforum_after_topic_approve
  • asgarosforum_{current_view}_custom_content_top
  • asgarosforum_{current_view}_custom_content_bottom
  • asgarosforum_editor_custom_content_bottom
  • asgarosforum_statistics_custom_element
  • asgarosforum_statistics_custom_content_bottom
  • asgarosforum_admin_show_custom_category_data
  • asgarosforum_before_delete_post
  • asgarosforum_before_delete_topic
  • asgarosforum_after_delete_post
  • asgarosforum_after_delete_topic
  • asgarosforum_custom_forum_column
  • asgarosforum_custom_topic_column
  • asgarosforum_custom_profile_content
  • asgarosforum_custom_profile_menu
  • asgarosforum_custom_header_menu
  • asgarosforum_prepare_{current_view}
  • asgarosforum_wp_head
  • asgarosforum_bottom_navigation
  • asgarosforum_usergroup_{ID}_add_user
  • asgarosforum_usergroup_{ID}_remove_user
  • asgarosforum_prepare
  • asgarosforum_breadcrumbs_{current_view}
  • asgarosforum_content_top
  • asgarosforum_content_header
  • asgarosforum_after_category
  • asgarosforum_after_forum
  • asgarosforum_after_topic
  • asgarosforum_after_post
  • asgarosforum_content_bottom
  • asgarosforum_add_admin_submenu_page
  • asgarosforum_execution_check
  • asgarosforum_enqueue_css_js
  • asgarosforum_profile_row
  • asgarosforum_after_add_reaction
  • asgarosforum_after_remove_reaction
  • asgarosforum_after_update_reaction

asgarosforum_after_post_author

asgarosforum_after_post_message

asgarosforum_after_add_topic_submit

asgarosforum_after_add_post_submit

asgarosforum_after_edit_post_submit

asgarosforum_after_topic_approve

asgarosforum_{current_view}_custom_content_top

Description

Make some action on top of asgaros forum for a specific view. The code will be executed before the header.

Available Views:

view_name Description
overview Overview page of all forums
forum Page with a single forum
topic Page with a single topic
post Only used in the single post shortcode
editpost Edit a post
addpost Add a post
addtopic Add a topic
movetopic Move a topic
search Page with results of search
subscription Overview of all subscriptions of a user
profile Page with profile of Asgaros Forum
history Page with users history in profile
members Page with list of members
activity Activity page of Forum
unread Page with unread posts
unapproved Page with unapproved posts/topics
reports page with reported posts/topics

Usage

<?php
   add_action('asgarosforum_{current_view}_custom_content_top', 'function_name');
?>

Examples

<?php
    // Add action to print message on top of the memberslist
     add_action('asgarosforum_members_custom_content_top', 'add_welcome_message');

    // Print welcome message
    function add_welcome_message(){

        echo '<h2>Welcome to the List of all Members</h2>';
    }
?>

Source

forum.php

asgarosforum_{current_view}_custom_content_bottom

asgarosforum_editor_custom_content_bottom

asgarosforum_statistics_custom_element

asgarosforum_statistics_custom_content_bottom

asgarosforum_admin_show_custom_category_data

asgarosforum_before_delete_post

asgarosforum_before_delete_topic

asgarosforum_after_delete_post

asgarosforum_after_delete_topic

asgarosforum_custom_forum_column

asgarosforum_custom_topic_column

asgarosforum_custom_profile_content

asgarosforum_custom_profile_menu

asgarosforum_custom_header_menu

asgarosforum_prepare_{current_view}

asgarosforum_wp_head

asgarosforum_bottom_navigation

asgarosforum_usergroup_{ID}_add_user

asgarosforum_usergroup_{ID}_remove_user

asgarosforum_prepare

asgarosforum_breadcrumbs_{current_view}

asgarosforum_content_top

Description

Make some action on top of asgaros forum. The code will be executed before the header.

Usage

<?php
   add_action('asgarosforum_post_custom_content_top', 'function_name');
?>

Examples

<?php
    // Add action to print message on top of the forum
     add_action('asgarosforum_post_custom_content_top', 'add_welcome_message');

    // Print welcome message
    function add_welcome_message(){

        echo '<h2>Welcome to our Forum</h2>';
    }
?>

Source

forum.php

asgarosforum_content_header

Description

Make some action after the content header

Usage

<?php
   add_action('asgarosforum_content_header', 'function_name');
?>

Examples

<?php
    // Add action to print information after header
     add_action('asgarosforum_content_header', 'add_information');

    // Print information
    function add_information(){

        echo '<div class="forum-notification">Please read the forum rules before creating a topic.</div>';
    }
?>

Source

forum.php

asgarosforum_after_category

asgarosforum_after_forum

asgarosforum_after_topic

asgarosforum_after_post

asgarosforum_content_bottom

asgarosforum_add_admin_submenu_page

asgarosforum_execution_check

asgarosforum_enqueue_css_js

asgarosforum_profile_row

asgarosforum_after_add_reaction

asgarosforum_after_remove_reaction

asgarosforum_after_update_reaction

Filters

asgarosforum_filter_username

Description

Change the username to a custom name.

Parameters

$user_name

Username that will be shown in forum.

$user_object

User Object of User.

Usage

<?php
   add_filter('asgarosforum_filter_username', 'function_name', 10, 2);
?>

Examples

<?php
   // Add filter to customize username
   add_filter('asgarosforum_filter_username', 'show_first_name', 10, 2);

   function show_first_name($username, $user_object){
   
      // get first name of user
      $new_username = $user_object->first_name;
      
      // Set default name if user didn't set a first name
      if (empty($new_username)){
        $new_username = $username;
      }
      
      return $new_username;
   }
?>

Source

forum.php forum-profile.php

asgarosforum_filter_login_message

asgarosforum_filter_post_username

Description

Change Username in a post. You can also use it to add some further information after the username

Usage

<?php
   add_filter('asgarosforum_filter_post_username', 'function_name', 10, 2);
?>

Examples

<?php
   // Add filter to customize username
   add_filter('asgarosforum_filter_post_username', 'add_custom_value', 10, 2);

   function add_custom_value($username, $user_id){
      // Get meta data of user
      $user_meta=get_userdata($user_id);
      
      // Get user roles of user and create string
      $user_roles= implode(', ', $user_meta->roles) . " ";
     
      // Add user role to username
      $username = $username . $user_roles;
      
      // Return string to render
      return $username;
   }
?>

Source

post-element.php

asgarosforum_filter_post_content

asgarosforum_filter_post_shortcodes

asgarosforum_filter_editor_settings

asgarosforum_filter_editor_buttons

asgarosforum_filter_get_posts

asgarosforum_filter_get_threads

asgarosforum_filter_get_posts_order

asgarosforum_filter_get_threads_order

asgarosforum_filter_notify_global_topic_subscribers_message

asgarosforum_filter_notify_topic_subscribers_message

asgarosforum_filter_notify_mentioned_user_message

asgarosforum_filter_insert_custom_validation

asgarosforum_filter_subject_before_insert

asgarosforum_filter_content_before_insert

asgarosforum_filter_before_post_submit

Description

Adjust a post before it is being submitted or cancel the submission.

Parameters

$add_post

Array with all information of the post:

$add_post = array(
                'topic'         => $this->asgarosforum->current_topic, // topic id
                'forum'         => $this->asgarosforum->current_forum, // forum id
                'content'       => $this->data_content, // content of the post
                'author'        => $author_id, // author id
                'upload_list'   => $upload_list, // list of files to upload
                'warning'       => null,  // String to output as warning
                'error'         => null, // String to output as error
                'redirect'      => null, // URL to redirect
                'add_post'      => true, // Boolean if post will be added
            );

Usage

<?php
    add_filter ( 'asgarosforum_filter_before_post_submit', 'function_name');
?>

Examples

<?php
    // Reject post if content is too long
    add_filter ( 'asgarosforum_filter_before_post_submit', 'reject_long_posts');

    function reject_long_posts( $add_post){

        // Check lenght of content
        if (strlen($add_post['content']) > 1000){
            // Set error message
            $add_post['error'] = "Your post is too long!!";
            // Dump the submitted post
            $add_post['add_post'] = false;
        }
        
        return $add_post;
    }
?>

Source

forum-content.php

asgarosforum_filter_before_edit_post_submit

Description

Adjust an edited post before it is being submitted or cancel the submission.

Parameters

$edit_post

Array with all information of the post:

$edit_post = array(
                'subject'       => $this->data_content, // subject of the topic
                'content'       => $this->data_content, // content of the post
                'editor'        => $this->asgarosforum->permissions->currentUserID,, // editor id
                'upload_list'   => $upload_list, // list of files to upload
                'warning'       => null,  // String to output as warning
                'error'         => null, // String to output as error
                'redirect'      => null, // URL to redirect
                'edit_post'      => true, // Boolean if post will be added
            );

Usage

<?php
    add_filter ( 'asgarosforum_filter_before_edit_post_submit', 'function_name');
?>

Examples

<?php
    // Reject post if content is too long
    add_filter ( 'asgarosforum_filter_before_edit_post_submit', 'reject_long_posts');

    function reject_long_posts( $edit_post){

        // Check lenght of content
        if (strlen($edit_post['content']) > 1000){
            // Set error message
            $edit_post['error'] = "Your post is too long!!";
            // Dump the submitted post
            $edit_post['edit_post'] = false;
        }
        
        return $edit_post;
    }
?>

Source

forum-content.php

asgarosforum_filter_before_topic_submit

Description

Adjust a topic before it is being submitted or cancel the submission.

Parameters

$add_topic

Array with all information of the topic:

$add_topic = array(
                'forum'         => $this->asgarosforum->current_forum, // forum id
                'subject'       => $this->data_subject, // subject of topic
                'content'       => $this->data_content, // content of the topic
                'author'        => $author_id, // author id
                'upload_list'   => $upload_list, // list of files to upload
                'warning'       => null,  // String to output as warning
                'error'         => null, // String to output as error
                'redirect'      => null, // URL to redirect
                'add_topic'      => true, // Boolean if topic will be added
            );

Usage

<?php
    add_filter ( 'asgarosforum_filter_before_topic_submit', 'function_name');
?>

Examples

<?php
    // Reject topic if content is too short
    add_filter ( 'asgarosforum_filter_before_topic_submit', 'reject_long_posts');

    function reject_long_posts( $add_topic){

        // Check lenght of content
        if (strlen($add_topic['content']) < 50){
            // Set error message
            $add_topic['error'] = "Your post is too short!!";
            // Dump the submitted topic
            $add_topic['add_topic'] = false;
        }
        
        return $add_topic;
    }
?>

Source

forum-content.php

asgarosforum_filter_widget_title_length

asgarosforum_widget_excerpt_length

asgarosforum_subscriber_mails_new_post

asgarosforum_subscriber_mails_new_topic

asgarosforum_filter_error_message_require_login

asgarosforum_filter_user_groups_taxonomy_name

asgarosforum_filter_avatar_size

asgarosforum_filter_profile_header_image

Description

Filters the URL to the background image of the forum profile header.

Parameters

$url

URL to the background image.

$user_id

User ID of shown profile.

Usage

<?php
    add_filter ( 'asgarosforum_filter_profile_header_image', 'function_name', 10, 2);
?>

Examples

<?php
    // Add filter to customize a user profile header background image
    add_filter ( 'asgarosforum_filter_profile_header_image', 'custom_profile_background', 10, 2);

    // Remove profile header background if user is admin
    function custom_profile_background( $url, $user_id){

        // check if user is admin
        if ( user_can( $user_id, 'manage_options' )){
            $url = false;
        }

        return $url;
    }
?>

Source

forum-profile.php

asgarosforum_filter_profile_link

asgarosforum_filter_history_link

asgarosforum_filter_show_header

Description

Show or hide the forum header.

Parameters

$show_header

Boolean value to show or hide header

true: show header false: hide header

Usage

<?php
    add_filter ( 'asgarosforum_filter_show_header', 'function_name');
?>

Examples

<?php
    // Add filter to hide forum header for logged out users
    add_filter ( 'asgarosforum_filter_show_header', 'hide_header');

    // Function to hide header
    function hide_header(){

        return is_user_logged_in();
    }
?>

Source

forum.php

asgarosforum_filter_header_menu

Description

Filter the header menu of asgaros forum.

Parameters

$menu_entries

Array with Menu Entries as arrays:

$menu_entries = array(
    'name' =>   array(
                    'menu_class'        =>  'HTML Class'
                    'menu_link_text'    =>  'Link Text',
                    'menu_url'          =>  '/url',
                    'menu_login_status' =>  '0',  // (0 = all, 1 = only logged in, 2 = only logged out)
                    'menu_new_tab'      =>  true  // (true = open in new tab, false = open in same tab
                ),
);

Names of the standard menu entries:

name description visibility
home Homepage of the Asgaros Forum Always
profile Profile of the active member Only logged in
memberslist List of all members Always
subscription Page to manage subscriptions Only logged in
activity Page of all activities in the forum Always
login Login page Only logged out
register Register Page Only logged out
logout Logout actual user Only logged out

Usage

<?php
    add_filter ( 'asgarosforum_filter_header_menu', 'function_name');
?>

Examples

<?php
    // Add filter to customize the forum header menu
    add_filter ( 'asgarosforum_filter_header_menu', 'my_custom_menu');

    // Function to customize the forum menu
    function my_custom_menu( $menu_entries){

        // Open memberslist in new tab
        $menu_entries['memberslist']['menu_new_tab'] = true;

        // Create new menu entry
        $menu_entry = array(
                          'menu_class'        =>  'impress',
                          'menu_link_text'    =>  'Impress',
                          'menu_url'          =>  '/impress',
                          'menu_login_status' =>  '0',
                          'menu_new_tab'      =>  true
                      );


        // Add Entry at beginning of the menu
        array_unshift( $menu_entries, $menu_entry);

        return $menu_entries;
    }
?>

Source

forum.php

asgarosforum_filter_forum_menu

asgarosforum_filter_topic_menu

asgarosforum_filter_post_menu

asgarosforum_filter_members_link

asgarosforum_filter_automatic_topic_title

asgarosforum_filter_automatic_topic_content

asgarosforum_filter_widget_avatar_size

asgarosforum_filter_get_sticky_topics_order

asgarosforum_user_replacements

asgarosforum_seo_trailing_slash

asgarosforum_reactions

asgarosforum_widget_recent_posts_custom_content

asgarosforum_widget_recent_topics_custom_content

asgarosforum_title_separator

asgarosforum_filter_profile_row

Description

Filters the rows in the Asgaros Forum Profile before they are getting rendered

Parameters

$profile_rows

Array with profile rows as arrays:

$profile_rows = array(
      'name' => array(
                    'title'     =>  'Title of profile row'
                    'value'     =>  'Value of profile row',
                    'type'     =>  '',  // optional type of profile row. 'usergroup' or ''
                ),
);

Names of the standard rows:

name Description
first_name First name of user
usergroup Group of user
website Website of user
last_seen Last seen of user
member_since User is member since
bio Excerpt of users bio
signature Users signature
$userData

WP_User object of the profile to render

Usage

<?php
    add_filter ( 'asgarosforum_filter_profile_row', 'function_name', 10, 2);
?>

Examples

<?php
    // Add filter to add custom profile row
    add_filter ( 'asgarosforum_filter_profile_row', 'my_custom_profile_row', 10, 2);

    // Function to customize the forum menu
    function my_custom_profile_row( $profile_rows, $userData){

        // Create new profile row
        $profile_row = array(
                          'title'    =>  'Last Name',
                          'value'    =>  $userData->last_name,
                      );


        // Add row at beginning of the user profile
        array_unshift( $profile_rows, $profile_row);

        return $profile_rows;
    }
?>

Source

forum-profile.php

asgarosforum_signature

asgarosforum_filter_meta_post_type

Description

Add the metabox to a custom post type

Parameters

$post_types

Array with post types

$menu_entries = array('post', 'page');

Usage

<?php
    add_filter ( 'asgarosforum_filter_meta_post_type', 'function_name');
?>

Examples

<?php

   add_filter('asgarosforum_filter_meta_post_type', 'add_post_type');

   // Add custom post type to the list of post types
   function add_post_type ($post_types){
       $post_types[] = 'custom_post_type';

       return $post_types;
   }
?>

Source

forum.php

asgarosforum_filter_upload_folder

Description

Change the folder for image uploads.

Parameters

$upload_folder

String with the current name of the upload folder.

Usage

<?php
    add_filter ( 'asgarosforum_filter_upload_folder', 'function_name');
?>

Examples

<?php

   add_filter('asgarosforum_filter_upload_folder', 'change_upload_folder');

   // Add custom post type to the list of post types
   function change_upload_folder ($upload_folder){
       
       $upload_folder = 'new_upload_folder';

       return $upload_folder;
   }
?>

Source

forum-uploads.php