D7を使用します。コンテンツタイプのマークアップだけを出力する必要があり、ページのマークアップ(つまりポップアップコンテンツ)は出力しない場合がいくつかあります。現在、コンテンツタイプごとに(レンダリングレイヤーごとに)複数のtplファイルを作成して、周囲のすべてのhtmlを削除しています。これらのtplには、出力行が1つしかありません。これは非常に非効率的で面倒です。template.phpファイルでこれを処理する簡単な方法があるはずです。答えが見つからないようです。助けていただければ幸いです
1 に答える
1
私は次のトリックでこれを行いました
1) template.php を編集します
function mytheme_preprocess_page(&$variables, $hook) {
if (isset($_GET['modal']) && $_GET['modal'] == true) {
$variables['theme_hook_suggestions'][] = 'page__modal';
}
}
2) 新しいファイル ページ -- modal.tpl.php を作成します。
通常の page.tpl からすべてのものをコピーし、#header やタブ、フッターなどの不要なものをすべて削除します
3) 追加するすべてのページ ?modal=1 は、このテンプレートを使用しますl() 関数 でそれを行います
4) 高度なもの
クラス属性を介してすべてのリンクにクエリを追加したい場合:通常のpage.tplに小さなjavascript関数を含めて、クラス「モーダル」ですべてのリンクを解析し、この方法でモーダルを追加します
そんな感じ
$(function() {
$("a.modal").attr('href', function(i, h) {
return h + (h.indexOf('?') != -1 ? "&modal=true" : "?modal=1");
});
});
4. テーマまたはモジュールへの JavaScript の追加も参照してください。
于 2012-10-23T14:51:26.323 に答える