it-swarm.dev

Joomlaですべての親カテゴリを取得するにはどうすればよいですか?

Joomlaですべての親カテゴリを取得するにはどうすればよいですか?

私は以下を試しました:

//get the Category Content Object 
jimport( 'joomla.application.categories' );
$categories = JCategories::getInstance('Content');

  $cid = urldecode(JRequest::getString('cid'));

  $i=0;
  $catid[$i] = $cid;

  while ($catid[$i] != "root") {

    $cat = $categories->get($catid[$i]);
    $i++;

    $catid[$i]= $cat->parent_id;

  }

  var_dump($catid);

しかし、それは機能しません。

Notice: Trying to get property of non-object in E:\xamppppp\htdocs\**\**.php on line 56
array(2) { [0]=> string(2) "20" [1]=> NULL }
2
Sh4msi

ほとんどの場合、データベースに格納されているデータを取得する必要がある場合は、状況に応じて、データベースクエリがより柔軟であるため、データベースクエリを使用する傾向があります。

以下を使用できます。

$db = JFactory::getDbo();
$query = $db->getQuery(true);

$query->select($db->quoteName(array('title')))
      ->from($db->quoteName('#__categories'))
      ->where($db->quoteName('parent_id') . ' != 0')
      ->where($db->quoteName('extension') . ' = ' . $db->quote('com_content'));

$db->setQuery($query);
$rows = $db->loadObjectList();

foreach ($rows as $row) 
{
    echo '<p>' . $row->title . '</p>';
}

これにより、ルートのカテゴリ以外のcom_contentのすべてのカテゴリが取得されます。

小さなforeachループに追加して、各結果のカテゴリのタイトルを表示します。

お役に立てれば

1
Lodder