Вход Регистрация
Файл: oc-includes/osclass/helpers/hPlugins.php
Строк: 337
<?php

/*
 * Copyright 2014 Osclass
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

    /**
    * Helper Plugins
    * @package Osclass
    * @subpackage Helpers
    * @author Osclass
    */

    /**
     * Run a hook
     *
     * @param string $hook
     * @return void
     */
    
function osc_run_hook($hook) {
        
$args func_get_args();
        
call_user_func_array(array('Plugins''runHook'), $args);
    }

    
/**
     * Apply a filter to a text
     *
     * @param string $hook
     * @param string $content
     * @return boolean
     */
    
function osc_apply_filter($hook$content) {
        
$args func_get_args();
        return 
call_user_func_array(array('Plugins''applyFilter'), $args);
    }

    
/**
     * Add a hook
     *
     * @param string $hook
     * @param string $function
     * @param int $priority
     * @return void
     */
    
function osc_add_hook($hook$function$priority 5) {
        
Plugins::addHook($hook$function$priority);
    }

    
/**
     * Add a filter
     *
     * @param string $hook
     * @param string $function
     * @param int $priority
     * @return void
     */
    
function osc_add_filter($hook$function$priority 5) {
        
Plugins::addHook($hook$function$priority);
    }

    
/**
     * Remove a hook's function
     *
     * @param string $hook
     * @param string $function
     * @return void
     */
    
function osc_remove_hook($hook$function) {
        
Plugins::removeHook($hook$function);
    }

    
/**
     * Remove a filter's function
     *
     * @param string $hook
     * @param string $function
     * @return void
     */
    
function osc_remove_filter($hook$function) {
        
Plugins::removeHook($hook$function);
    }

    
/**
     * If the plugin is attached to the category
     *
     * @param string $name
     * @param int $id
     * @return boolean
     */
    
function osc_is_this_category($name$id) {
        return 
Plugins::isThisCategory($name$id);
    }

    
/**
     * Returns plugin's information
     *
     * @param string $plugins
     * @return array
     */
    
function osc_plugin_get_info($plugin) {
        return 
Plugins::getInfo($plugin);
    }

    
/**
     * Check if there's a new version of the plugin
     *
     * @param string $plugin
     * @return boolean
     */
    
function osc_plugin_check_update($plugin) {
        return 
Plugins::checkUpdate($plugin);
    }

    
/**
     * Register a plugin file to be loaded
     *
     * @param string $path
     * @param string $function
     * @return void
     */
    
function osc_register_plugin($path$function) {
        
Plugins::register($path$function);
    }

    
/**
     * Get list of the plugins
     *
     * @return array
     */
    
function osc_get_plugins() {
        return 
Plugins::getActive();
    }

    
/**
     * Gets if a plugin is installed or not
     *
     * @param string $plugin
     * @return void
     */
    
function osc_plugin_is_installed($plugin) {
        return 
Plugins::isInstalled($plugin);
    }

    
/**
     * Gets if a plugin is enabled or not
     *
     * @param string $plugin
     * @return void
     */
    
function osc_plugin_is_enabled($plugin) {
        return 
Plugins::isEnabled($plugin);
    }

    
/**
     * Show the default configure view for plugins (attach them to categories)
     *
     * @param string $plugin
     * @return boolean
     */
    
function osc_plugin_configure_view($plugin) {
        return 
Plugins::configureView($plugin);
    }

    
/**
     * Gets the path to a plugin's resource
     *
     * @param string $file
     * @return string
     */
    
function osc_plugin_resource($file) {
        return 
Plugins::resource($file);
    }

    
/**
     * Gets plugin's configure url
     *
     * @param string $plugin
     * @return string
     */
    
function osc_plugin_configure_url($plugin) {
        return 
osc_admin_base_url(true).'?page=plugins&action=configure&plugin='.$plugin;
    }

    
/**
     * Gets the ajax url
     *
     * @since 3.1
     * @param string $hook
     * @param array $params
     * @return string
     */
    
function osc_admin_ajax_hook_url($hook ''$params = array()) {
        return 
_osc_ajax_hook_url(true$hook$params);
    }

    
/**
     * Gets the ajax url
     *
     * @since 3.0
     * @param string $hook
     * @param array $params
     * @return string
     */
    
function osc_ajax_hook_url($hook ''$params = array()) {
        return 
_osc_ajax_hook_url(false$hook$params);
    }

    
/**
     * Gets the ajax url
     *
     * @since 3.1
     * @param string $admin
     * @param string $hook
     * @param array $params
     * @return string
     */
    
function _osc_ajax_hook_url($admin$hook$params) {
        if( 
$admin ) {
            
$url osc_admin_base_url(true);
        } else {
            
$url osc_base_url(true);
        }

        
$url .= '?page=ajax&action=runhook';

        if( 
$hook != '' ) {
            
$url .= '&hook=' $hook;
        }

        if( 
is_array($params) ) {
            
$url_params = array();
            foreach(
$params as $k => $v) {
                
$url_params[] = sprintf('%s=%s'$k$v);
            }
            
$url .= implode('&'$url_params);
        }

        return 
$url;
    }

    
/**
     * Gets the path for ajax
     *
     * @param string $file
     * @return string
     */
    
function osc_ajax_plugin_url($file '') {
        
$file        preg_replace('|/+|''/'str_replace('\', '/', $file));
        $plugin_path = str_replace('
\', '/', osc_plugins_path());
        $file        = str_replace($plugin_path, '', $file);
        return (osc_base_url(true) . "?page=ajax&action=custom&ajaxfile=" . $file);
    }

    /**
     * Gets the configure admin'
s url
     
*
     * @
param string $file
     
* @return string
     
*/
    function 
osc_admin_configure_plugin_url($file '') {
        
$file        preg_replace('|/+|''/'str_replace('\', '/', $file));
        $plugin_path = str_replace('
\', '/', osc_plugins_path());
        $file        = str_replace($plugin_path, '', $file);
        return osc_admin_base_url(true) . '
?page=plugins&action=configure&plugin=' . $file;
    }

    /**
     * Gets urls for custom plugin administrations options
     *
     * @param string $file
     * @return string
     */
    function osc_admin_render_plugin_url($file = '') {
        $file        = preg_replace('
|/+|', '/', str_replace('\', '/', $file));
        $plugin_path = str_replace('
\', '/', osc_plugins_path());
        $file        = str_replace($plugin_path, '', $file);
        return osc_admin_base_url(true) . '
?page=plugins&action=renderplugin&file=' . $file;
    }

    /**
     * Show custom plugin administrationfile
     *
     * @param string $file
     * @return void
     */
    function osc_admin_render_plugin($file = '') {
        osc_redirect_to(osc_admin_render_plugin_url($file));
    }

?>
Онлайн: 1
Реклама