1

Joomlaでさまざまなレイアウトを実装しようとしています。ページごとに異なるレイアウトを設定するためにエイリアス名を使用しています。Joomlaに関する電子書籍を読みましたが、別のレイアウトを作成したり、バックエンドパネルで設定したりする方法は他にありません。質問したかったのですが、ページごとにバックエンドパネルとは異なるページを設定する別の方法/方法はありますか?Joomla1.5でそれが可能であることを確認したいだけです。

私の以前の方法

// Get Alias Page
function getCurrentAlias(){
   $menu= &JSite::getMenu();
   $active= $menu->getActive();
   return $active->alias;
}

エイリアスページ名を取得した後、条件ステートメントを使用して、ページごとに異なるコンテンツを取得しました。

<-- Header Part -->
<-- Start Content Part -->
if( $pageName == "home" ){
   {{Content Home}}
}elseif( preg_match("#^(news).*$#", $pageName) ){
   {{Content News}}
}...etc
<-- End Content Part -->
<-- Footer Part -->
4

2 に答える 2

1

まず、1.5を使用しないことをお勧めします。来月は寿命に達します。

ただし、1.5を使用する場合は、必要以上に難しくなります。ページごとに構造に大きな違いが必要な場合は、使用する構造ごとにテンプレートをインストールしてから、各テンプレートを適切なメニュー項目に割り当てることができます。サイトに表示されていない非表示のメニューにある場合でも、メニュー項目を作成する必要があります。

CSSと折りたたみ可能なモジュール位置を使用して、ページの構造を制御することもできます。これを追加すると、ページの本文タグにIDを追加するページクラスのサフィックスを設定できるため、ページ固有のCSSを簡単に作成できます。

<?php
$menu = &JSite::getMenu();
$active = $menu->getActive();
if (is_object( $active )) :
$params = new JParameter( $active->params );
$pageclass = $params->get( 'pageclass_sfx' );
endif;
?>

<body id="<?php echo $pageclass ? $pageclass : 'default'; ?>">

次に、ページ上のモジュールの位置ごとに、それらを折りたたみ可能にして、使用されていない場合にページに表示されないようにすることができます。

<?php if ($this->countModules('top')) : ?><div id="top"><jdoc:include type="modules" name="top" style="xhtml" /></div><?php endif; ?>

したがって、基本的に、モジュールを「最上位」の位置に配置しないと、ページに配置されることはありません。これら2つのアイテムを組み合わせて使用​​すると、1つのテンプレートで各ページの外観を正確に制御できます。

于 2012-08-16T16:56:13.390 に答える
0

Joomla!を使用しているとき 1.5特定のCSS、JSなどをロードするために「メニュー依存アイテム」と呼ばれる拡張機能を使用しました

適切なCSSなどをロードすることで、特定のページを完全にリレーアウトできます。

もちろん、Joomlaにテンプレート「Styles」が登場しました!2.5以降では、スタイルのバリエーションだけをメニュー項目に割り当てることができるため、これは不要になりました。

于 2012-08-15T03:51:44.953 に答える