-----
MODXのバージョン:1.0.25J
PHPのバージョン:7.4.28
データベース:5.5.5-10.5.15-MariaDB
-----
ユーザーの操作画面でテンプレートを切り替える仕組みを探しておりましたが、
理想のプラグイン・スニペット等が発見できなかったため質問させていただきます。
プログラムにそれほど詳しくないのですが、「MODX_MobileConverter」のソースを一部参考にスニペットで実現しようとしてみました。
デザインテンプレートとして、以下を作成しています。
[2]black
[3]white
[4]black-content
[5]white-content
※black⇆white、black-content⇆white-contentの切り替わりを想定しています。
ユーザーが操作するフロント側の画面にボタンを配置し、ボタンをクリックすると、用意されたテンプレートに切り替わる仕組みです。
以下、リソース画面に配置するボタンのソースです。
コード: 全て選択
<form name="form" action="[~[*id*]~]" method="post">
<input type="submit" class="btn" name="subject" id="subject" value="白" />
<input type="submit" class="btn" name="subject" id="subject" value="黒" />
<input id="thisTPL" name="thisTPL" type="hidden" value="[*template*]" />
</form>
コード: 全て選択
$post = $_POST['subject'];
$thisTPL = $_POST['thisTPL'];
//白から黒へ切り替わる部分抜粋
if($thisTPL == '4'){ //現在4 black-content
if($post == "白"){
$tbl = $modx->getFullTableName("site_templates");
$whr = 'templatename=\''. 'white-content' .'\'';
if( $rs = $modx->db->select('id,content',$tbl,$whr) ){
if( $resource = $modx->fetchRow($rs) ){
$this->documentObject['template'] = $resource['id'];
$this->documentContent = $resource['content'];
//$this->documentContent= $this->parseDocumentSource($this->documentContent);
}
}
}else{
}
}
よろしくお願いいたします。