0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 2104 Просмотров
*

dimat84

  • Давно я тут
  • 517
  • 20 / 0
Количество записей
« : 27.11.2014, 17:04:27 »
Привет
Кто нибудь подскажите, как сделать чтоб рядом с названием подкатегории выводилось количество записей которые на данный момент там находятся?
*

dimat84

  • Давно я тут
  • 517
  • 20 / 0
Re: Количество записей
« Ответ #1 : 04.01.2015, 18:36:23 »

Кто нибудь делал?
*

IzrA

  • Захожу иногда
  • 322
  • 27 / 0
Re: Количество записей
« Ответ #2 : 05.01.2015, 12:09:53 »
Могу предложить вариант отображения кол-ва записей в разделе. Не гарантирую, что будет работать, но попробую помочь. Возможно по аналогии допилите под свои нужды.
Открываем ../components/com_sobipro/lib/views/section.php
находим
Код
protected function category( $category ) 
и в ней перед
Код
$cat[ 'id' ] = $category->get( 'id' );
$cat[ 'nid' ] = $category->get( 'nid' );

добавляем
Код
$cat['cat_entries_total'] = SPFactory::db()->select( 'COUNT(id)', 'spdb_relations', array( 'pid' => $category->get( 'id' ), 'oType' => 'entry' ) )->loadResult();
Сохраняем.

Далее открываем ../components/com_sobipro/usr/templates/ваш_шаблон/common/category.xsl
Находим
Код
<p class="thumbcat">
   <a href="{url}">
<xsl:value-of select="name" />
   </a>
</p>
после <xsl:value-of select="name" /> добавляем
Код
<span>(<xsl:value-of select="cat_entries_total" />)</span>
« Последнее редактирование: 21.01.2015, 13:31:03 от IzrA »
Спасибо для меня слишком много. Стакан вина Плюс в репутацию - в самый раз.

Велосипедист — бедствие для экономики. Он не покупает автомобиля и не берет под него кредит. Не покупает бензин. Не пользуется услугами ремонтных мастерских. Не страхует «гражданскую ответственность». Не пользуется платными стоянками. Не страдает от ожирения. Да он еще и здоров, черт возьми! Здоровые люди не нужны для экономики. Они не покупают лекарства. Они не ходят к частным врачам. Они не увеличивают ВВП.
*

dimat84

  • Давно я тут
  • 517
  • 20 / 0
Re: Количество записей
« Ответ #3 : 05.01.2015, 13:19:30 »
Спасибо, сегодня попробую и отпишусь
*

dimat84

  • Давно я тут
  • 517
  • 20 / 0
Re: Количество записей
« Ответ #4 : 05.01.2015, 14:53:23 »
Цитировать
Открываем ../components/com_sobipro/lib/views/section.php
находим
Код:
protected function category( $category )
и в ней перед
Код:
$cat[ 'id' ] = $category->get( 'id' );
$cat[ 'nid' ] = $category->get( 'nid' );

добавляем
Код:
$cat['cat_entries_total'] = SPFactory::db()->select( 'COUNT(id)', 'spdb_relations', array( 'pid' => $category->get( 'id' ), 'oType' => 'entry' ) )->loadResult();
Сохраняем.
Добавил, вот кусок как сделал:
Код
protected function category( $category )
{
$cat = array();
if ( is_numeric( $category ) ) {
$cat = $this->cachedCategory( $category );
}
if ( !( is_array( $cat ) ) || !( count( $cat ) ) ) {
if ( is_numeric( $category ) ) {
$category = SPFactory::Category( $category );
}
$cat['cat_entries_total'] = SPFactory::db()->select( 'COUNT(id)', 'spdb_relations', array( 'pid' => $category->get( 'id' ), 'oType' => 'entry' ) )->loadResult();
$cat[ 'id' ] = $category->get( 'id' );
$cat[ 'nid' ] = $category->get( 'nid' );
$cat[ 'name' ] = array(
'_complex' => 1,
'_data' => $category->get( 'name' ),
'_attributes' => array( 'lang' => Sobi::Lang( false ) )
);

В category.xsl тоже всё сделал, выводит к сожалению только пустые скобки ()
С отображением количества записей конечно было бы удобнее, интересно почему в компоненте такого не предусмотрено.
*

IzrA

  • Захожу иногда
  • 322
  • 27 / 0
Re: Количество записей
« Ответ #5 : 05.01.2015, 14:59:37 »
Могу прикрепить два этих файла, если хотите.
Спасибо для меня слишком много. Стакан вина Плюс в репутацию - в самый раз.

Велосипедист — бедствие для экономики. Он не покупает автомобиля и не берет под него кредит. Не покупает бензин. Не пользуется услугами ремонтных мастерских. Не страхует «гражданскую ответственность». Не пользуется платными стоянками. Не страдает от ожирения. Да он еще и здоров, черт возьми! Здоровые люди не нужны для экономики. Они не покупают лекарства. Они не ходят к частным врачам. Они не увеличивают ВВП.
*

dimat84

  • Давно я тут
  • 517
  • 20 / 0
Re: Количество записей
« Ответ #6 : 05.01.2015, 15:01:58 »
Хочу  ^-^
А у вас в компоненте работает этот метод?
*

IzrA

  • Захожу иногда
  • 322
  • 27 / 0
Re: Количество записей
« Ответ #7 : 05.01.2015, 15:23:06 »
Да. Только что сделал запрос в базе вида:
Код
SELECT COUNT(`id`) FROM `#_sobipro_relations` WHERE `oType`='entry' AND `pid`=номер_любой_категории
где # - префикс
номер_любой_категории - id любой существующей категории и сравнил с данными на сайте: всё верно.

P.S.
Joomla - 3.1.5
Sobi - 1.1.1
Спасибо для меня слишком много. Стакан вина Плюс в репутацию - в самый раз.

Велосипедист — бедствие для экономики. Он не покупает автомобиля и не берет под него кредит. Не покупает бензин. Не пользуется услугами ремонтных мастерских. Не страхует «гражданскую ответственность». Не пользуется платными стоянками. Не страдает от ожирения. Да он еще и здоров, черт возьми! Здоровые люди не нужны для экономики. Они не покупают лекарства. Они не ходят к частным врачам. Они не увеличивают ВВП.
*

dimat84

  • Давно я тут
  • 517
  • 20 / 0
Re: Количество записей
« Ответ #8 : 05.01.2015, 15:32:52 »
Ещё раз спасибо за помощь, буду пробовать
+
*

dimat84

  • Давно я тут
  • 517
  • 20 / 0
Re: Количество записей
« Ответ #9 : 05.01.2015, 17:49:00 »
Это только для категорий можно сделать? Рядом с категориями выводятся нули  ^-^ , наверно потому что у меня все записи в подкатегориях?
А как это сделать для подкатегорий?  пробовал в category.xsl прописать для подкатегории это так
Код
<xsl:if test="position() &lt; ( $subcatsNumber + 1 )">
<a href="{@url}">
<small><xsl:value-of select="." /></small>
                                                        <xsl:value-of select="name" /><span>(<xsl:value-of select="cat_entries_total" />)</span>
</a>
Не получилось так. Не подскажите как?
*

IzrA

  • Захожу иногда
  • 322
  • 27 / 0
Re: Количество записей
« Ответ #10 : 06.01.2015, 09:58:51 »
Это только для категорий можно сделать?
Я думаю, что можно и в подкатегоряих, но я не знаю как))) Дело в том, что данное усовершенствование делал человек, работавший до меня и я просто анализируя файлы предложил вам это решение.

Цитировать
Рядом с категориями выводятся нули  ^-^ , наверно потому что у меня все записи в подкатегориях?
Видимо, да. У меня, к примеру, есть категория Авто, а вней подкатегория АЗС. Когда я добавляю новую запрвку я указываю этой записи две категории: Авто и АЗС. Таким образам посетители могут как просмотреть отдельно АЗС, так и все записи в категории Авто, что, имхо, удобно. Также вместо нулей в родительских категориях отображается кол-во всех записей внутри этой и всех вложенных категориях.
Цитировать
А как это сделать для подкатегорий?  пробовал в category.xsl прописать для подкатегории это так
Код
<xsl:if test="position() &lt; ( $subcatsNumber + 1 )">
<a href="{@url}">
<small><xsl:value-of select="." /></small>
                                                        <xsl:value-of select="name" /><span>(<xsl:value-of select="cat_entries_total" />)</span>
</a>
Не получилось так. Не подскажите как?
Надо подумать. :)
Спасибо для меня слишком много. Стакан вина Плюс в репутацию - в самый раз.

Велосипедист — бедствие для экономики. Он не покупает автомобиля и не берет под него кредит. Не покупает бензин. Не пользуется услугами ремонтных мастерских. Не страхует «гражданскую ответственность». Не пользуется платными стоянками. Не страдает от ожирения. Да он еще и здоров, черт возьми! Здоровые люди не нужны для экономики. Они не покупают лекарства. Они не ходят к частным врачам. Они не увеличивают ВВП.
*

dimat84

  • Давно я тут
  • 517
  • 20 / 0
Re: Количество записей
« Ответ #11 : 06.01.2015, 18:18:12 »
Наверно в section.php, в этом месте надо что-то изменить
Код
if ( Sobi::Cfg( 'list.subcats', true ) ) {
/* @todo we have to change this method in this way that it can be sorted and limited */
$subcats = $category->getChilds( 'category', false, 1, true, Sobi::Cfg( 'list.subcats_ordering', 'name' ) );
$sc = array();
if ( count( $subcats ) ) {
foreach ( $subcats as $id => $name ) {
$sc[ ] = array(
'_complex' => 1,
'_data' => SPLang::clean( $name[ 'name' ] ),
'_attributes' => array( 'lang' => Sobi::Lang( false ), 'id' => $id, 'url' => Sobi::Url( array( 'title' => Sobi::Cfg( 'sef.alias', true )? $name[ 'alias' ] : $name[ 'name' ], 'sid' => $id, ) ) )
);
}
}
$cat[ 'subcategories' ] = $sc;
}
SPFactory::cache()->addObj( $cat, 'category_struct', $category->get( 'id' ) );
unset( $category );
Я думаю это отвечает за подкатегории
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Какое поле SobiPro необходимо для отправки по e-mail уведомлений о добавлении записей?

Автор Dekameron

Ответов: 9
Просмотров: 3826
Последний ответ 27.05.2016, 22:40:20
от Hima
Количество просмотров

Автор MadChild

Ответов: 3
Просмотров: 3529
Последний ответ 05.02.2016, 14:30:19
от ShutTap
Количество записей на странице каталога

Автор Shkodlivaya

Ответов: 5
Просмотров: 2347
Последний ответ 16.04.2014, 11:41:55
от Dekameron
Модуль новых записей SOBI2

Автор TSI

Ответов: 0
Просмотров: 1213
Последний ответ 30.07.2012, 14:54:29
от TSI
Статистика количества записей в SOBI2

Автор Vaniys

Ответов: 1
Просмотров: 1795
Последний ответ 30.05.2012, 12:43:08
от vitash