Welcome Guest, Not a member yet? Register   Sign In
AssetLibPro - An advanced CI Asset Library
#28

[eluser]a&w[/eluser]
One other thought/observation.

Had you considered including the ability Rick Ellis's asset_helper includes whereby you can optionally specify a 'module'?

So in controller:
Code:
//current code would do:
$this->assetlibpro->add_js('/assets/js/base.js');
$this->assetlibpro->add_js('/assets/modules/module1/js/spiffy.js');

//with 'helper' could do:
$this->assetlibpro->add_js('base.js');
$this->assetlibpro->add_js('spiffy.js','','module1');//empty string for backward
                                                     //compatibility for 'group'

To do that add this method to library:
Code:
/**
    * Get location of asset
    * @access  private
    * @param   string    the name of the file or asset relative to configured assets folder
    * @param   string    optional, module name
    * @param   string    the asset type (name of folder within module name)
    * @return  string    relative path to asset
    **/
    private function _asset_loc($asset_name, $module_name = NULL, $asset_type = NULL)
    {
        $asset_location = $this->asset_dir;//new config

        if(!empty($module_name)):
            $asset_location .= 'modules/'.$module_name.'/';
        endif;

        $asset_location .= $asset_type.'/'.$asset_name;

        return $asset_location;
    }

And then modify the existing methods slightly:
Code:
//  function add_js($file, $group = '') {
/*mod*/        
    function add_js($file, $group = '', $module_name = NULL) {
/*mod*/        
        if (empty($group))
           $group = $this->default_group_js;
            
        if (!is_string($group))
           return FALSE;
/*new*/        
        $file_loc = $this->_asset_loc($file, $module_name, 'js');
/*new*/        
/*mod*/        
        $this->_add($file_loc, $group);
/*mod*/        
        //$this->_add($file, $group);
    }

Assumed new config property:
Code:
/*
|--------------------------------------------------------------------------
| Asset storage
|--------------------------------------------------------------------------
|
| The path to where to storage the joined assets.
| alp_cache_dir_css = "/assets/compressed/" (as example)
|
*/
$config['alp_asset_dir'] = '/assets/';//TRAILING SLASH! <----------------new
$config['alp_cache_dir_css'] = '/assets/compressed/';//TRAILING SLASH!

And just modify the beginning of the class as so:
Code:
/*new*/        
    var $asset_dir = '';
/*new*/        

    var $cache_dir_css = '/';
    var $cache_dir_js = '/';
    
    var $cache_file_css = '';
    var $cache_file_js = '';
        
    var $gzip_compress_css = TRUE;
    var $gzip_compress_js = TRUE;
    
    var $force_cache_css = TRUE;
    var $force_cache_js = TRUE;
    
    function __construct() {
        $this->CI = get_instance();
        
        log_message('debug', 'Assetlibpro library loaded');
        
        $this->default_group_css = $this->CI->config->item('alp_default_group_css');
        $this->default_group_js = $this->CI->config->item('alp_default_group_js');
/*new*/        
        $this->asset_dir = $this->CI->config->item('alp_asset_dir');
/*new*/
Similar modification for add_css...

Seems like there would be a way to use the 'module' might be a way to provide a quick mechanism for switching (css) 'themes'. Probably more to it since I guess there may need to be folders for assets/compressed/themeName/.

Anyway, just sharing the thought...


Messages In This Thread
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-08-2008, 04:59 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-08-2008, 12:59 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-08-2008, 01:31 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-08-2008, 01:35 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-08-2008, 01:41 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-08-2008, 02:10 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-08-2008, 02:18 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-08-2008, 02:22 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-08-2008, 02:31 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-08-2008, 02:37 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-08-2008, 02:50 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-22-2008, 08:17 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-22-2008, 08:29 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-28-2008, 12:05 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-28-2008, 05:57 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-28-2008, 06:50 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-28-2008, 06:55 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-31-2008, 04:07 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 06-02-2008, 07:10 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 06-02-2008, 09:05 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 06-02-2008, 11:20 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 06-03-2008, 06:00 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 06-03-2008, 08:11 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 08-01-2008, 12:19 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 08-01-2008, 07:19 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 08-01-2008, 09:21 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 08-02-2008, 02:41 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 08-02-2008, 05:44 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 08-05-2008, 09:38 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 08-05-2008, 04:12 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 11-05-2008, 11:24 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 11-06-2008, 02:28 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 11-06-2008, 08:34 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 11-06-2008, 09:09 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 11-06-2008, 10:27 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 11-06-2008, 12:33 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 11-06-2008, 12:47 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 11-06-2008, 04:24 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 11-06-2008, 09:30 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 11-07-2008, 03:42 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 11-09-2008, 02:49 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 11-23-2008, 02:17 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 12-23-2008, 06:30 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 01-09-2009, 07:51 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 01-09-2009, 09:55 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 01-14-2009, 12:13 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 01-28-2009, 07:51 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 01-30-2009, 08:16 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 03-04-2009, 08:37 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 03-05-2009, 08:23 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 03-05-2009, 08:49 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 03-06-2009, 03:02 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 06-11-2009, 03:28 PM
AssetLibPro - An advanced CI Asset Library - by El Forum - 07-23-2009, 02:51 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 07-23-2009, 07:19 AM
AssetLibPro - An advanced CI Asset Library - by El Forum - 05-30-2010, 04:23 PM



Theme © iAndrew 2016 - Forum software by © MyBB