ap_get_addons()
Description #
Get all AnsPress add-ons data.
Source #
File: includes/functions.php
function ap_get_addons() {
$cache = wp_cache_get( 'addons', 'anspress' );
$option = get_option( 'anspress_addons', array() );
if ( false !== $cache ) {
return $cache;
}
$all_files = array();
foreach ( array( 'pro', 'free' ) as $folder ) {
$path = ANSPRESS_ADDONS_DIR . DS . $folder;
if ( file_exists( $path ) ) {
$files = scandir( $path );
foreach ( $files as $file ) {
$ext = pathinfo( $file, PATHINFO_EXTENSION );
if ( 'php' === $ext ) {
$all_files[] = $folder . DS . $file;
}
}
}
}
$addons = array(
'email.php' => array(
'name' => __( 'Emails', 'anspress-question-answer' ),
'description' => __( 'Notifies users and admins by email for various events and activities.', 'anspress-question-answer' ),
),
'categories.php' => array(
'name' => __( 'Categories', 'anspress-question-answer' ),
'description' => __( 'Add category support in AnsPress questions.', 'anspress-question-answer' ),
),
'notifications.php' => array(
'name' => __( 'Notifications', 'anspress-question-answer' ),
'description' => __( 'Adds a fancy user notification dropdown like Facebook and Stackoverflow.', 'anspress-question-answer' ),
),
'tags.php' => array(
'name' => __( 'Tags', 'anspress-question-answer' ),
'description' => __( 'Add tag support in AnsPress questions.', 'anspress-question-answer' ),
),
'reputation.php' => array(
'name' => __( 'Reputation', 'anspress-question-answer' ),
'description' => __( 'Award points to user based on activities.', 'anspress-question-answer' ),
),
'buddypress.php' => array(
'name' => __( 'BuddyPress', 'anspress-question-answer' ),
'description' => __( 'Integrate AnsPress with BuddyPress.', 'anspress-question-answer' ),
),
'profile.php' => array(
'name' => __( 'User Profile', 'anspress-question-answer' ),
'description' => __( 'User profile for users.', 'anspress-question-answer' ),
),
'recaptcha.php' => array(
'name' => __( 'reCaptcha', 'anspress-question-answer' ),
'description' => __( 'Add reCaptcha verification in question, answer and comment forms.', 'anspress-question-answer' ),
),
'syntaxhighlighter.php' => array(
'name' => __( 'Syntax Highlighter', 'anspress-question-answer' ),
'description' => __( 'Add syntax highlighter support.', 'anspress-question-answer' ),
),
'akismet.php' => array(
'name' => __( 'Akismet Check', 'anspress-question-answer' ),
'description' => __( 'Check for spam in post content.', 'anspress-question-answer' ),
),
);
/**
* This hooks can be used to filter existing addons or for adding new addons.
*
* @since 4.1.8
*/
$addons = apply_filters( 'ap_addons', $addons );
$valid_addons = array();
foreach ( (array) $addons as $k => $addon ) {
$path = ANSPRESS_ADDONS_DIR . DS . basename( $k, '.php' ) . DS . $k;
$path2 = ANSPRESS_ADDONS_DIR . DS . $k;
$addons[ $k ]['path'] = '';
if ( isset( $addon['path'] ) && file_exists( $addon['path'] ) ) {
$addons[ $k ]['path'] = wp_normalize_path( $addon['path'] );
} elseif ( file_exists( $path ) ) {
$addons[ $k ]['path'] = wp_normalize_path( $path );
} elseif ( file_exists( $path2 ) ) {
$addons[ $k ]['path'] = wp_normalize_path( $path2 );
}
$addons[ $k ]['pro'] = isset( $addon['pro'] ) ? $addon['pro'] : false;
$addons[ $k ]['active'] = isset( $option[ $k ] ) ? true : false;
$addons[ $k ]['id'] = $k;
$addons[ $k ]['class'] = sanitize_html_class( sanitize_title( str_replace( array( '/', '.php' ), array( '-', '' ), 'addon-' . $k ) ) );
if ( ! empty( $addons[ $k ]['path'] ) && file_exists( $addons[ $k ]['path'] ) ) {
$valid_addons[ $k ] = $addons[ $k ];
}
}
wp_cache_set( 'addons', $valid_addons, 'anspress' );
return $valid_addons;
}
Expand full source code Collapse full source code View on GitHub: includes/functions.php:1601
Add your comment