2013-11-27 95 views
2

我已經創建了一個自定義的CMS和一個插件系統,正如我所料。短代碼插件爲自己的自定義CMS像wordpress短代碼插件

現在我想根據簡碼創建插件, 如: [畫廊attR1位= 100 attR2位= 「字符串」]和[mycode的標題= '消息' 顏色= '#F00']的Hello World [/ mycode的]

我想處理上述在我的CMS中的簡碼。 函數將用HTML代替短代碼,並將&的屬性設置爲mySQL查詢或其他的參數。

可能會對正則表達式有所幫助,我不擅長正則表達式。如果存在其他笑話或好方法,我不喜歡使用這樣的正則表達式。

使用PHP和mySQL開發的CMS。

我參觀了WordPress開發的網站,並得到了概念,我有註冊已經創建功能或設置插件,菜單,工具條主題等

我覺得這個信息是足以讓一點,我可以只是用這種方式解釋。

預先感謝您

+0

有一個問題在這裏......如果因爲我不知道你在問什麼.. – jcobhams

+0

用於例如:在頁面內容有標籤([gallery id = 1 title = photos])。我需要一種方法,可以找到這種類型的標籤,並調用該標籤名稱(函數庫(array(id => 1,title => photos)))的函數。它們之間可能是任何結束標籤和字符串。 – user3034390

+1

你在開玩笑嗎?...大聲笑...「我需要一種方法,可以找到這種標籤和調用函數」..你有什麼嘗試?..或者我們應該爲你寫你的代碼? – jcobhams

回答

1

此代碼解決了邏輯

function plugin_sortcode($contents) { 
    global $SORTCODES, $DATA; 

    foreach ($SORTCODES as $name => $fn) { 
     $attr = array(); 
     preg_match_all("/\[" . $name . " (.*?)\]/", $contents, $matches); 
     if ($matches[0]) { 

      $code = $matches[0][0]; 
      if (isset($matches[1])) { 
       $attrs = $matches[1][0]; 
       $attrs = explode(" ", $attrs); 
       foreach ($attrs as $values) { 
        $attrs1 = explode("=", $values); 
        $attr[$attrs1[0]] = $attrs1[1]; 
       } 
      } 

      $data = $fn($attr, $DATA); 
      $contents = str_replace($code, $data, $contents); 
     } 
    } 

    return $contents; 
} 
+0

你可以幫助使用C#中的相同函數嗎? 我問過它在https://stackoverflow.com/questions/44815192/shortcode-parser-in-c-sharp 另外,如果有一箇中間空間,例如:[gallery id =「1」text =「我的圖庫」] –