it-swarm.dev

公開された記事の数を表示する方法は?

Joomlaメニューモジュールに公開された記事の数を表示したい
下の画像のようですが、私はできません。

私を助けてください。ありがとう
menu

3
hhgh4269

これは、メニューモジュールをオーバーライドすることで実現できます。

現在のテンプレートがprotostarだとしたら、ファイルを作成します

<JOOMLA FOLDER>/templates/protostar/html/mod_menu/default_component.php

以下のようなコードを追加します(最適化されていませんが、機能しています)。

<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_menu
 *
 * @copyright   Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;
if($item->query['option']=='com_content' && $item->query['view']=='category')
{
    $catId=$item->query['id'];
    $model = JModelLegacy::getInstance('Articles', 'ContentModel');
    $model->setState('filter.category_id', $catId); 
    $articles = $model->getItems();
    $num_articles = count($articles);
    $item->title='<span class="article-count">'.$num_articles.'</span> '.$item->title;
}
// Note. It is important to remove spaces between elements.
$class = $item->anchor_css ? 'class="' . $item->anchor_css . '" ' : '';
$title = $item->anchor_title ? 'title="' . $item->anchor_title . '" ' : '';

if ($item->menu_image)
{
    $item->params->get('menu_text', 1) ?
    $linktype = '<img src="' . $item->menu_image . '" alt="' . $item->title . '" /><span class="image-title">' . $item->title . '</span> ' :
    $linktype = '<img src="' . $item->menu_image . '" alt="' . $item->title . '" />';
}
else
{
    $linktype = $item->title;
}

switch ($item->browserNav)
{
    default:
    case 0:
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
        break;
    case 1:
        // _blank
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" target="_blank" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
        break;
    case 2:
    // Use JavaScript "window.open"
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $title; ?>><?php echo $linktype; ?></a>
<?php
        break;
}
8

Googleで「get number of articles joomla」をすばやく検索すると、StackOverflowから 同様の質問 が返され、次のコードが返されます。

$model = JModelLegacy::getInstance('Articles', 'ContentModel');
$model->setState('filter.category_id', 2); // Set category ID here
$articles = $model->getItems();

$num_articles = count($articles); // Returns the number of articles in category

複数のカテゴリの記事を数える必要がある場合は、PHPループを作成できるはずです。

お役に立てば幸いです。

3
johanpw