-1

D7を使用します。コンテンツタイプのマークアップだけを出力する必要があり、ページのマークアップ(つまりポップアップコンテンツ)は出力しない場合がいくつかあります。現在、コンテンツタイプごとに(レンダリングレイヤーごとに)複数のtplファイルを作成して、周囲のすべてのhtmlを削除しています。これらのtplには、出力行が1つしかありません。これは非常に非効率的で面倒です。template.phpファイルでこれを処理する簡単な方法があるはずです。答えが見つからないようです。助けていただければ幸いです

4

1 に答える 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 に答える