web-dev-qa-db-ja.com

Joomla! -ブログカテゴリクラスを与える

まず、私は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など)を使用して注目記事のスタイルを設定することです。このように、私のクライアントは、カテゴリを選択することで、ブログのスタイルを希望する方法を選択できます。明確にするために、私は特集ブログの記事に、カテゴリーに応じて異なるスタイルを持たせたいと思っています。

2
CSS Apprentice

特集記事のメニュー項目の記事に特別な「カテゴリ」クラスを追加するには、テンプレートのオーバーライドを作成する必要があります。

単に: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">
3
FFrewin

いくつかのオプションがあり、現在のテンプレートを複製して名前を変更できます。次に、CSSを変更し、必要に応じてクラスを追加してから、このテンプレートを目的のカテゴリページに割り当てます。 これを行う方法のヘルプ が見つかります。

(私の意見では)最も簡単なオプションは、カテゴリセクションに別のテンプレートを使用することです。適切なテンプレートを見つけることができれば、時間を大幅に節約できます。

Joomlaのバージョンに応じて、手順は次のようになります。

  1. テンプレートマネージャーに移動します。

  2. テンプレート名をクリックしてテンプレート管理画面に入るか、テンプレート名の横にあるチェックボックスをオンにして、ページ上部のツールで[編集]をクリックします。

  3. 設定画面の「メニュー割り当て」タブをクリックします

  4. 次に、Webサイトで定義されているすべてのメニューのリストと、各メニューのすべてのメニュー項目のリストを取得します。テンプレートのこのコピーを割り当てるメニュー項目を選択します。

  5. 「保存して閉じる」ボタンをクリックして変更を保存します。

テンプレートを特定のメニューアイテムに割り当てる2つ目の方法は、メニューアイテムの設定自体です。このテンプレートの割り当て方法は、前述のように、必要なテンプレートのコピーをすでに準備している場合に役立ちます。

  1. メニューマネージャで新しいメニュー項目を作成します。

  2. メニュー項目設定で「テンプレートスタイル」設定パラメータを探します。

  3. そのパラメータータイトルの横にある選択ボックスをクリックすると、使用可能なテンプレートとテンプレートコピーの選択が表示されます。

  4. 適切なテンプレートを選択し、「保存」ボタンをクリックします。

  5. その後、そのメニュー項目は選択したテンプレートに割り当てられます。

今、あなたはただあなたが好きなテンプレートを見つける必要があります!

お役に立てれば。

2
jonboy

とても簡単な方法があります。メニューマネージャーでは、メニュー項目にカスタムcssクラスを割り当てることができます。 Protostarでは、このページクラスはコンポーネントコンテナに直接適用されます。この場合は<div class="blog">を使用すると、ブログの出力全体をカスタムCSSでスタイル設定できます。

enter image description here

これで、ページクラスを使用してスタイルを追加し、スコープを提供できます。次に例を示します。

.my-css-scope .page-header {opacity: .1;}

注意喚起!ページクラスの前にスペースを入力しない場合、デフォルトのページクラスに追加されます。 .blogmy-css-scopeこれは、IMOはそれほど有用ではありません。メニューオプションでページクラスを入力する前に、常に先行スペースを入力することをお勧めします。カスタムモジュールクラスなど、Joomlaの他の場所でも同じことが言えます。

2
Seth Warburton