2012-05-15 55 views
-4

我如何設計一個插件系統的php例子: 我輸入這個URL http:// localhost/cms/admin/ 頁面顯示插件並帶有選項enable this plugin disable this插入?如何在php中創建插件系統

我需要一些東西來幫助管理員來管理我的網站插件 (插件管理器)

+0

這個問題不是很清楚,你能更具體一點嗎? –

+3

@Lynch,歡迎來到堆棧溢出!這是一個網站,可以幫助程序員解決他們遇到的編碼問題,因此您需要提供您已經在嘗試的示例,以便我們爲您提供幫助。 – davidethell

+0

我們如何創建或設計關於這樣一個模糊問題的答案?即使它不是模糊的,我認爲它會太寬泛而無法回答。但未來會告訴我們,我猜。 – PeeHaa

回答

1

你可以做出這樣的CMS /管理/插件目錄,然後使用這樣的:

//read directory and get any plugins found 
function get_plugins(){ 
    $plugins=array(); 
    if ($handle = opendir('cms/admin/plugins')) { 
     $u=0; 
     while (false !== ($entry = readdir($handle))) { 
      //because we want to ignore non files 
      if ($entry!='.' && $entry!='..'){ 
       //for each file we find, lets add it to our array 
       $plugins[$u]=$entry; 
       $u++; 
      } 
     } 
     closedir($handle); 
    } 
    return $plugins; 
} 

//populate our list of plugins 
$plugins=get_plugins(); 

foreach($plugins as $this_plugin){ 
    $r_check_if_installed=mysql_query("SELECT p.plugin_id FROM `plugins` p WHERE p.plugin_file='".mysql_real_escape_string($this_plugin)."' AND p.is_enabled='1'"); 
    if (mysql_num_rows($r_check_if_installed)){ 
     echo $this_plugin.' is installed.<br />'; 
    } else { 
     echo $this_plugin.' not installed.<br />'; 
} 

你可以看到,在這個例子中,我檢查數據庫以查看是否安裝。然後,您可以在這些結果中創建表單或鏈接,以允許用戶激活或停用。

希望有幫助!

+0

謝謝如何爲這段代碼創建一個mysql結構?感謝先進的 –

+0

我會這樣做:CREATE TABLE IF NOT EXISTS'plugins'( 'plugin_id' int(15)NOT NULL AUTO_INCREMENT, 'path_to_file' varchar(255)COLLATE utf8_unicode_ci NOT NULL DEFAULT'', ' plugin_file_name' VARCHAR(255)COLLATE utf8_unicode_ci NOT NULL DEFAULT '',' INT is_enabled'(1)NOT NULL DEFAULT '0', PRIMARY KEY('plugin_id') )ENGINE = InnoDB的默認字符集= UTF8 COLLATE = utf8_unicode_ci AUTO_INCREMENT = 1; – scott