まず、私はPHP noob:/です。
私の目標は、各Joomlaを与えることです!カテゴリーはクラスなので、クライアントのレイアウトを事前にスタイル設定できます。クライアントがカテゴリーを選択すると、基本的にスタイルが選択されます(ブログ:テキストフロート付きポートレート、ブログ:テキスト付きランドスケープ写真、ブログ:マルチPicレイアウトなど)
Joomlaの古いバージョンでこのスレッドを見つけましたが、それらのコードをindex.phpに追加すると「未定義のプロパティ」エラーが表示されました http://forum.joomla.org/viewtopic.php?f=466&t = 406991
また、/ components/com_content/views/category/tmpl/blog_item.phpにコードを追加してみました
どんな助けでも大歓迎です、ありがとう!
更新
「ブログ」メニュー項目タイプとして「注目記事」を使用しています。これはカテゴリーに関係なくすべての注目記事をリストするので、私の希望はカテゴリー(BlogStyle1、2など)を使用して注目記事のスタイルを設定することです。このように、私のクライアントは、カテゴリを選択することで、ブログのスタイルを希望する方法を選択できます。明確にするために、私は特集ブログの記事に、カテゴリーに応じて異なるスタイルを持たせたいと思っています。
特集記事のメニュー項目の記事に特別な「カテゴリ」クラスを追加するには、テンプレートのオーバーライドを作成する必要があります。
単に:default.php
ファイル、次の場所にあります:
components/com_content/views/featured/tmpl/
へ->:
templates/YOURTEMPLATENAME/html/com_content/featured/
上記のフォルダー(html、com_content、featured)が存在しない場合は、それらを作成します。
次に、コピーしたdefault.phpファイルをテキストエディター(メモ帳)で開き、29行目を探します。
<?php if (!empty($this->lead_items)) : ?>
<div class="items-leading clearfix">
<?php foreach ($this->lead_items as &$item) : ?>
<div class="leading-<?php echo $leadingcount; ?><?php echo $item->state == 0 ? ' system-unpublished' : null; ?> clearfix"
itemprop="blogPost" itemscope itemtype="http://schema.org/BlogPosting">
これに変更:
<?php if (!empty($this->lead_items)) : ?>
<div class="items-leading clearfix">
<?php foreach ($this->lead_items as &$item) : ?>
<div class="leading-<?php echo $leadingcount ." $item->category_alias";?><?php echo $item->state == 0 ? ' system-unpublished' : null; ?> clearfix"
itemprop="blogPost" itemscope itemtype="http://schema.org/BlogPosting">
これにより、各記事が属するカテゴリのエイリアス名を備えた追加のクラスが、注目記事ビューのすべての主要なアイテムに追加されます。
同様に、intro_items:にも同じことができます
61行目あたり:
<div class="item column-<?php echo $rowcount ." $item->category_alias"; ?>
<?php echo $item->state == 0 ? ' system-unpublished' : null; ?> span<?php echo round((12 / $this->columns));?>"
itemprop="blogPost" itemscope itemtype="http://schema.org/BlogPosting">
いくつかのオプションがあり、現在のテンプレートを複製して名前を変更できます。次に、CSSを変更し、必要に応じてクラスを追加してから、このテンプレートを目的のカテゴリページに割り当てます。 これを行う方法のヘルプ が見つかります。
(私の意見では)最も簡単なオプションは、カテゴリセクションに別のテンプレートを使用することです。適切なテンプレートを見つけることができれば、時間を大幅に節約できます。
Joomlaのバージョンに応じて、手順は次のようになります。
テンプレートマネージャーに移動します。
テンプレート名をクリックしてテンプレート管理画面に入るか、テンプレート名の横にあるチェックボックスをオンにして、ページ上部のツールで[編集]をクリックします。
設定画面の「メニュー割り当て」タブをクリックします
次に、Webサイトで定義されているすべてのメニューのリストと、各メニューのすべてのメニュー項目のリストを取得します。テンプレートのこのコピーを割り当てるメニュー項目を選択します。
「保存して閉じる」ボタンをクリックして変更を保存します。
テンプレートを特定のメニューアイテムに割り当てる2つ目の方法は、メニューアイテムの設定自体です。このテンプレートの割り当て方法は、前述のように、必要なテンプレートのコピーをすでに準備している場合に役立ちます。
メニューマネージャで新しいメニュー項目を作成します。
メニュー項目設定で「テンプレートスタイル」設定パラメータを探します。
そのパラメータータイトルの横にある選択ボックスをクリックすると、使用可能なテンプレートとテンプレートコピーの選択が表示されます。
適切なテンプレートを選択し、「保存」ボタンをクリックします。
その後、そのメニュー項目は選択したテンプレートに割り当てられます。
今、あなたはただあなたが好きなテンプレートを見つける必要があります!
お役に立てれば。
とても簡単な方法があります。メニューマネージャーでは、メニュー項目にカスタムcssクラスを割り当てることができます。 Protostarでは、このページクラスはコンポーネントコンテナに直接適用されます。この場合は<div class="blog">
を使用すると、ブログの出力全体をカスタムCSSでスタイル設定できます。
これで、ページクラスを使用してスタイルを追加し、スコープを提供できます。次に例を示します。
.my-css-scope .page-header {opacity: .1;}
注意喚起!ページクラスの前にスペースを入力しない場合、デフォルトのページクラスに追加されます。 .blogmy-css-scope
これは、IMOはそれほど有用ではありません。メニューオプションでページクラスを入力する前に、常に先行スペースを入力することをお勧めします。カスタムモジュールクラスなど、Joomlaの他の場所でも同じことが言えます。