いつもお世話になっています。
Evo内に、独自でグローバル設定の延長のような設定画面を作りたいと思うのですが、それは可能でしょうか?
現在は、同じようなことをリソースとテンプレート変数、GETFIELDで作って使用していますが、モジュールもしくは独自で設定画面を出来たらと思い、いろいろ調べたのですがわかりませんでした。
ちょっとしたヒントでもいいので、よろしくお願いします。
独自設定画面を作りたいのですが・・・ トピックは解決済みです
Re: 独自設定画面を作りたいのですが・・・
特に無理せず実装できると思います。(設定画面を作るということなのでコード量はそれなりになるかもしれませんが)
いろいろアプローチがありますが(PHPは分かりますでしょうか?)
manager/index.phpで $_GET['a']==='17' の場合、このアクションを横取りして独自の設定画面出力を行なうということができると思います。Revoだと標準でCMPという本格的な仕組みが備わってますが、Evoの場合は仕組みに頼らずにライトに実装できると思います。
manager/actions/mutate_settings.dynamic.php がグローバル設定の画面のコードなので、これをコピーしていろいろ実験してみるとコツをつかめると思います。
いろいろアプローチがありますが(PHPは分かりますでしょうか?)
manager/index.phpで $_GET['a']==='17' の場合、このアクションを横取りして独自の設定画面出力を行なうということができると思います。Revoだと標準でCMPという本格的な仕組みが備わってますが、Evoの場合は仕組みに頼らずにライトに実装できると思います。
manager/actions/mutate_settings.dynamic.php がグローバル設定の画面のコードなので、これをコピーしていろいろ実験してみるとコツをつかめると思います。
Re: 独自設定画面を作りたいのですが・・・
さっそくのお返事ありがとうございます。
PHPに関しては、すでにあるコードを改造したりするのは、多少ならできる程度です。
もし何か参考になるようなコード、またはページがあれば、教えて頂けませんでしょうか?
PHPに関しては、すでにあるコードを改造したりするのは、多少ならできる程度です。
もし何か参考になるようなコード、またはページがあれば、教えて頂けませんでしょうか?
Re: 独自設定画面を作りたいのですが・・・
コード: 全て選択
if($_REQUEST['mode'] == 'update')
{
更新処理
exit;
}
include_once "header.inc.php";
?>
<form>
サイト名<input type="text" name="site_name" value="<?php echo $modx->config['site_name'];?>" />
<input type="submit" value="更新" />
</form>
<?php
include_once "footer.inc.php";
Re: 独自設定画面を作りたいのですが・・・
ありがとうございます。
なんか出来るような気がしてきました。
アドバイスをもとに自分なりにやってみますね。
なんか出来るような気がしてきました。
アドバイスをもとに自分なりにやってみますね。
Re: 独自設定画面を作りたいのですが・・・
たぶん多少の試行錯誤は必要だと思うのでこまめに質問いただければと
Re: 独自設定画面を作りたいのですが・・・
yama様、なんとかアドバイスを参考に既存の値をモジュール内で更新出来ることが出来ました。
(適当にいろいろコピペしたら動いちゃったみたいな感じですが・・・。なので、意味はわからない所が多数あります。)
そこで、グローバル変数にはない新しい項目を作りたいのですが、変数を作るにはどうしたらよいでしょうか?
(適当にいろいろコピペしたら動いちゃったみたいな感じですが・・・。なので、意味はわからない所が多数あります。)
そこで、グローバル変数にはない新しい項目を作りたいのですが、変数を作るにはどうしたらよいでしょうか?
Re: 独自設定画面を作りたいのですが・・・
単純にinput要素を増やしたぶんだけ、変数を追加できます。
サイト名<input type="text" name="site_name" value="<?php echo $modx->config['site_name'];?>" />
たとえば先ほど例示した上記の記述では$modx->config['site_name']という変数を扱っていますが、
変数X<input type="text" name="x" value="<?php echo $modx->config['x'];?>" />
上記のように書けば、xという変数を追加できます。name="x"というのがそれにあたります
assets/cache/siteCache.idx.php
上記のファイルをテキストエディタで開いてみると、
$c['site_name'] = "My MODX Site";
こんな感じで値が管理されていることが分かると思います
この値はデータベースでも連動して管理されています。(データベースで管理されている値のほうがデータ本体です)
サイト名<input type="text" name="site_name" value="<?php echo $modx->config['site_name'];?>" />
たとえば先ほど例示した上記の記述では$modx->config['site_name']という変数を扱っていますが、
変数X<input type="text" name="x" value="<?php echo $modx->config['x'];?>" />
上記のように書けば、xという変数を追加できます。name="x"というのがそれにあたります
assets/cache/siteCache.idx.php
上記のファイルをテキストエディタで開いてみると、
$c['site_name'] = "My MODX Site";
こんな感じで値が管理されていることが分かると思います
この値はデータベースでも連動して管理されています。(データベースで管理されている値のほうがデータ本体です)
Re: 独自設定画面を作りたいのですが・・・
おお、いけました!!
とりあえず、ここからふくらませてみようと思います。
yama様ありがとうございました。
とりあえず、ここからふくらませてみようと思います。
yama様ありがとうございました。