Подскажите пжл как вывести количество материалов для статей, постов и т.д. в меню "Категории" InstantCMS 2?
Как в первой ветке:
тоже интересует данная тема
instantcms.ru/forum/thread28671-1.html#277480
В файле \templates\default\controllers\content\category_view.tpl.php найдите строку
echo href_to($base_url . (($dataset && $is_ds_view && !$is_ds_hide) ? '-'.$dataset : ''), $c['slug']); ?>"><?php echo $c['title']; ?></a>
<a href="<?php $cat_count = cmsCore::getModel('content')->join('con_articles_cats', 'ac', 'i.category_id = ac.id')->filterEqual('category_id', $c['id'])->filterOr('ac.parent_id = i.category_id')->getCount('con_articles', 'id'); echo href_to($base_url . (($dataset && $is_ds_view && !$is_ds_hide) ? '-'.$dataset : ''), $c['slug']); ?>"><?php echo $c['title'].' ('.$cat_count.')'; ?></a>
Однозначно что-то не так.Что-то не так.
<div class="widget_content_tree"> <ul> <?php $model = cmsCore::getModel('content'); $item_count = $model->getContentItemsCount($ctype_name); ?> <a class="item" href="/<?php echo $ctype_name ?>">Все <span class="item_count"><?php echo $item_count; ?></span></a> </li> <?php $last_level = 0; $is_visible = false; $show_full_tree = $widget->getOption('show_full_tree'); ?> <?php foreach($cats as $id=>$item){?> <?php $item_count = $model->filterCategory($ctype_name, $item, true)->getContentItemsCount($ctype_name); $model->resetFilters(); ?> <?php $item['childs_count'] = ($item['ns_right'] - $item['ns_left']) > 1; $url = href_to($ctype_name, $item['slug']); ?> <?php for ($i=0; $i<($last_level - $item['ns_level']); $i++) { ?> </li></ul> <?php } ?> <?php if ($item['ns_level'] <= $last_level) { ?> </li> <?php } ?> <?php if ($is_active) { $css_classes[] = 'active'; } if ($item['childs_count']) { $css_classes[] = 'folder'; } if (!$is_visible && !$show_full_tree) { $css_classes[] = 'folder_hidden'; } ?> <a class="item" href="<?php echo $url; ?>"> <?php html($item['title']); ?> <span class="item_count"><?php echo $item_count; ?></span> </a> <?php if ($item['childs_count']) { ?><ul><?php } ?> <?php $last_level = $item['ns_level']; ?> <?php } ?> <?php for ($i=0; $i<$last_level; $i++) { ?> </li></ul> <?php } ?> </div>
Да, выводит, но считает неправильноЧто-то не так
я так понимаю этот код заточен под статьи, и будет правильно считать только в "статьях". Как сделать автоматом под любой тип контентаИ замените на это:
Спойлер
Код PHP:
<a href="<?php $cat_count = cmsCore::getModel('content')->join('con_articles_cats', 'ac', 'i.category_id = ac.id')->filterEqual('category_id', $c['id'])->filterOr('ac.parent_id = i.category_id')->getCount('con_articles', 'id'); echo href_to($base_url. (($dataset && $is_ds_view && !$is_ds_hide)? '-'.$dataset: ''), $c['slug']); ?>"><?php echo $c['title'].' ('.$cat_count.')'; ?></a>
Я же Вам написал код выше, для виджета категории контента
я так понимаю этот код заточен под статьи, и будет правильно считать только в "статьях". Как сделать автоматом под любой тип контента
Как-то так:Как сделать автоматом под любой тип контента
<a href="<?php $cat_count = cmsCore::getModel('content')->join('con_'.$ctype['name'].'_cats', 'ac', 'i.category_id = ac.id')->filterEqual('category_id', $c['id'])->filterOr('ac.parent_id = i.category_id')->getCount('con_'.$ctype['name'].'', 'id'); echo href_to($base_url . (($dataset && $is_ds_view && !$is_ds_hide) ? '-'.$dataset : ''), $c['slug']); ?>"><?php echo $c['title'].' ('.$cat_count.')'; ?></a>
Все, можно закрывать тему)
Пример для табличного вывода объявлений:А как можно вывести количество фотографий из поля "Набор изображений" поверх основного поля "Изображение"?
В файле \templates\default\content\default_list_table.tpl.php после
<?php } ?>
.photos_count { font-size: 20px; font-weight: bold; text-align: center; margin-top: -25px; margin-left: 20px; background-color: #fff; opacity: 0.5; }
И как итог предложеный вариант отображается в каждой ячейке, да и к томуже почему-то колво фотос умножается на 2 :)
Вот мой пример тела таблицы
<tbody> <?php foreach($items as $item){ ?> <?php $item['ctype'] = $ctype; ?> <td class="rating"> <?php echo $item['rating_widget']; ?> </td> <?php } ?> <td class=""> <?php echo $item['id']; ?> </td> <td class="td_fav"> <?php echo $item['favorite_widget']; ?> </td> <?php } ?> <?php foreach($fields as $field){ ?> <?php if (!isset($item[$field['name']]) || (!$item[$field['name']] && $item[$field['name']] !== '0')) { echo '<td> </td>'; continue; } ?> <td class="field ft_<?php echo $field['type']; ?> f_<?php echo $field['name']; ?>"> <?php if ($field['name'] == 'title' && $ctype['options']['item_on']){ ?> <?php if ($item['parent_id']){ ?> <a class="parent_title" href="<?php echo rel_to_href($item['parent_url']); ?>"><?php echo htmlspecialchars($item['parent_title']); ?></a> → <?php } ?> <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>"><?php echo htmlspecialchars($item[$field['name']]); ?></a> <?php } else { ?> <?php echo $field['handler']->setItem($item)->parseTeaser($item[$field['name']]); ?> <?php } ?> </td> <?php } ?> </tr> <?php } ?> </tbody>