2012-04-08 9 views
0

マイコンsquadは、CMSのより大きなコミュニティ内の内部グループのすべての機能を管理します。私は管理者にこのグループを参照する動詞を変更する機能を提供したいと思います。そのような例は、team,wing,platoon、またはdogfoodでもかまいません。CodeIgniter:DBから引き出された定数.php定数

私が遭遇している問題は、データベース文字列からルーティングを引き出す必要があるため、site.com/squadは管理者が設定する値になります。しかしながら。 a)コアをハッキングせずに、またはb)CI_Routerを拡張することなく、これを行うことはできません。

私は拡張子を始めたが、これだけ遠くに持っている:

class MY_Router extends CI_Router { 
    function MY_Router() 
    { 
     $this->config =& get_config(); 
     parent::__construct(); 
    } 
} 

私が達成したいすべてがある:

define('UNIT', $this->get_setting('squad-term')); 
$route[UNIT] = "squad"; 

は誰がこれへのアプローチを持っていますか?

答えて

1

私の友人はthis articleを見つけ、解決策は完全に機能します。それには別のdb要求がかかることが許されますが、それは支払う価格です。これを行う

config/routes.php

require_once(BASEPATH .'database/DB'. EXT); 
$db =& DB(); 
$query = $db->where('setting_slug', 'squad-term')->get('_settings'); 
$result = $query->result(); 
$term = lcfirst($result[0]->setting_value); 

$route[$term] = "squad"; 
$route[$term . 's'] = "squads"; 
+0

はci 3.0で動作しません –

1

私は通常これを行う方法は、文字列(例:squad_)を先頭に追加することです "あなたは別のものを追加し、routes.phpの

site.com/squad_team 
site.com/squad_squad 
site.com/squad_dogfood 

またはビットクリーナーに正規表現と一致させることができますセグメントにあなたは、なぜあなた

私はわからない、と述べた$route['s/(:any)']

site.com/s/team 
site.com/s/squad 
site.com/s/food 

経由routes.phpの中で一致させることができますレベル」チームコントローラの名前を書き換える必要があります

+0

まだ動的にする経路探索が必要です。もっと明確にしてください。グループアクション(ユーザ、コミュニティの壁、メッセージ、ニュースなどを管理するための機能)は、コントローラの「チーム」によって処理されます。インストールするすべての管理者がコミュニティの部隊の部門に電話をかけたいとは思っていないので、私は動詞を「チーム」に変更する方法を設定しました。あなたのチームの管理を担当するコントローラーを「チーム」と呼ぶのはかなり馬鹿だと思いませんか?したがって、私は条件付きでデータベースに割り当てられた動詞に基づいてコントローラをルーティングします。 – codezyne

関連する問題