0

我想創建我自己的函數,名爲anchor_admin()基於anchor()函數在CodeIgniter中。如何在CodeIgniter中將anchor()函數擴展爲anchor_admin()?

我的想法是這樣的:

我已經定義管理路徑在的config.php文件例如像這樣:

$config['base_url'] = ''; 
$config['base_url_admin'] = 'my-custom-admin-folder'; 

然後

我需要以某種方式創建一個擴展錨()函數創建一個新anchor_admin()函數。

所以不是打字:

<?php echo anchor('my-custom-admin-folder/gallery', 'Gallery', 'class="admin-link"'); ?> 

我只會鍵入:

<?php echo anchor_admin('gallery', 'Gallery', 'class="admin-link"'); ?> 

但輸出沃爾德總是:

<a href="http:/localhost/my-custom-admin-folder/gallery" class="admin-link">Gallery</a> 

基本上,我只需要在廣告中的配置變量$ this-> config-> item('base_url_admin')在由核心anchor()函數生成的url結尾處。

如何做到這一點?

哪些文件做我NNED創建並往哪裏放?

我想創建一個助手是不是要走的路。

我應該創建一個庫或我已經創建可以把它放在一個函數我的應用程序的核心文件夾中的我MY_Controller文件中,我使用它來加載已有一些東西?

回答

2

CI中,你可以「擴展」傭工(「擴展」是一個catch在這種情況下,所有任期他們不是真的類)。這允許你添加你自己的輔助函數,這些函數將被加載標準的函數(在你的情況下,URL Helper)。

它在這裏的笨文檔解釋 - http://ellislab.com/codeigniter/user-guide/general/helpers.html

你的情況,你想做到以下幾點:

由1- application/helpers/

2 - 創建文件MY_url_helper.php創建anchor_admin()功能如下:

function anchor_admin($uri = '', $title = '', $attributes = '') { 

    // Get the admin folder from your config 
    $CI =& get_instance(); 
    $admin_folder = $CI->config->item('base_url_admin'); 

    $title = (string) $title; 

    if (! is_array($uri)) { 

     // Add the admin folder on to the start of the uri string 
     $site_url = site_url($admin_folder.'/'.$uri); 

    } else { 

     // Add the admin folder on to the start of the uri array 

     array_unshift($uri, $admin_folder); 

     $site_url = site_url($uri); 

    } 

    if ($title == '') { 

    $title = $site_url; 

    } 

    if ($attributes != '') { 

    $attributes = _parse_attributes($attributes); 

    } 

    return '<a href="'.$site_url.'"'.$attributes.'>'.$title.'</a>'; 

} 

3-使用helper和functio ñ你通常會如何:

$this->load->helper('url'); 

echo anchor_admin('controller/method/param', 'This is an Admin link', array('id' => 'admin_link')); 

希望幫助!

+0

嗯,謝謝,我會看看它,讓你知道它是否工作。 – Derfder 2013-03-08 15:27:12

+0

請注意,我剛剛編輯了上述功能以使用您的配置項目。 – 2013-03-08 15:34:21

+0

哇,似乎工作很好;) – Derfder 2013-03-08 15:58:32