#1
4 сентября 2017 в 18:12
Привет всем.
Подскажите, пожалуйста, как вывести иконку возле названия статья в зависимости от набора. InstantCMS 2.8
То есть, take.ms/jVVAi.
Спасибо. )
Подскажите, пожалуйста, как вывести иконку возле названия статья в зависимости от набора. InstantCMS 2.8
То есть, take.ms/jVVAi.
Спасибо. )
#2
4 сентября 2017 в 19:09
Dorimen, хороший вопрос! Некоторые материалы могут быть в нескольких наборах и реализация этого решения очень даже было бы интересной!
#3
4 сентября 2017 в 22:48
При отображении контента не известно в каких наборах лежит та или иная запись. Строго говоря это же величина не постоянная — сегодня лежит, а завтра может и не лежать(если условия фильтрации не выполнятся) тут без серии дополнительных запросов никак — нужно сделать N запросов(по количеству наборов), чтобы проверить какая запись куда попадает. Простого способа не вижу… потому что набор — это не список записей, это только правила фильтрации и сортировки. А что именно в них попадает считается при применении набора.
Сегодня в 00:36
#4
4 сентября 2017 в 23:00
@SmartControl, а если просто добавить новое отдельное поле для записей типа "Контент" и в зависимости от значений этого поля выводить иконку ту или иную (заданную в настройках поля для каждого значения) возле заголовка?
#5
4 сентября 2017 в 23:22
Dorimen, это нааамного проще в плане реализации. Решается правкой шаблона.
#6
4 сентября 2017 в 23:26
Dorimen, это нааамного проще в плане реализации. Решается правкой шаблона.
Подскажите, пожалуйста, как:
1. Сделать такое поле и что там нужно сделать
2. Как поправить шаблон, чтобы он реагировал на это поле исходя из хочушки )
#7
5 сентября 2017 в 00:15
Подскажите, пожалуйста, как:
1. Сделать такое поле и что там нужно сделать
2. Как поправить шаблон, чтобы он реагировал на это поле исходя из хочушки )
Видео про поле
<?php if( $ctype['options']['list_show_filter'] ) { 'css_prefix' => $ctype['name'], 'page_url' => $page_url, 'fields' => $fields, 'props_fields' => $props_fields, 'props' => $props, 'filters' => $filters, 'ext_hidden_params' => $ext_hidden_params, 'is_expanded' => $ctype['options']['list_expand_filter'] )); } ?> <?php if ($items){ ?> <div class="content_list featured <?php echo $ctype['name']; ?>_list"> <?php foreach($items as $item){ ?> <?php $stop = 0; ?> <div class="content_list_item <?php echo $ctype['name']; ?>_list_item<?php if (!empty($item['is_vip'])){ ?> is_vip<?php } ?>"> <div class="photo"> <?php echo html_image(default_images('private', $fields['photo']['options']['size_teaser']), $fields['photo']['options']['size_teaser'], $item['title']); ?> <?php } else { ?> <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>"> <?php echo html_image($item['photo'], $fields['photo']['options']['size_teaser'], $item['title']); ?> </a> <?php } ?> </div> <?php } ?> <div class="photo"> <img src="/templates/default/controllers/sc_smartslider/icons/icon<?php echo $item['icon']; ?>.png"> </div> <?php } ?> <div class="fields"> <?php foreach($fields as $field){ ?> <?php if ($stop === 2) { break; } ?> <?php if ($field['is_system'] || !$field['is_in_list'] || !isset($item[$field['name']])) { continue; } ?> <?php if ($field['groups_read'] && !$user->isInGroups($field['groups_read'])) { continue; } ?> <?php if (!$item[$field['name']] && $item[$field['name']] !== '0') { continue; } ?> <?php $label_pos = 'none'; } else { $label_pos = $field['options']['label_in_list']; } ?> <div class="field ft_<?php echo $field['type']; ?> f_<?php echo $field['name']; ?>"> <?php if ($label_pos != 'none'){ ?> <div class="title_<?php echo $label_pos; ?>"><?php echo $field['title'] . ($label_pos=='left' ? ': ' : ''); ?></div> <?php } ?> <?php if ($field['name'] == 'title' && $ctype['options']['item_on']){ ?> <h2 class="value"> <?php if ($item['parent_id']){ ?> <a class="parent_title" href="<?php echo rel_to_href($item['parent_url']); ?>"><?php html($item['parent_title']); ?></a> → <?php } ?> <?php html($item[$field['name']]); ?> <span class="is_private" title="<?php html($item['private_item_hint']); ?>"></span> <?php } else { ?> <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>"><?php html($item[$field['name']]); ?></a> <?php if ($item['is_private']) { ?> <span class="is_private" title="<?php echo LANG_PRIVACY_HINT; ?>"></span> <?php } ?> <?php } ?> </h2> <?php } else { ?> <div class="value"> <div class="private_field_hint"><?php echo $item['private_item_hint']; ?></div> <?php } else { ?> <?php echo $field['handler']->setItem($item)->parseTeaser($item[$field['name']]); ?> <?php } ?> </div> <?php } ?> </div> <?php } ?> </div> <div class="tags_bar"> <?php echo html_tags_bar($item['tags']); ?> </div> <?php } ?> <?php $fields['date_pub']['is_in_list'] || $fields['user']['is_in_list'] || ($ctype['is_comments'] && $item['is_comments_on']) || !$item['is_pub'] || !$item['is_approved']; ?> <?php if($show_bar){ ?> <div class="info_bar"> <div class="bar_item bi_rating"> <?php echo $item['rating_widget']; ?> </div> <?php } ?> <?php if
#8
5 сентября 2017 в 09:25
Это то что придумалось за пару минут, но может устроит.
Здорово. Это то. что нужно было. Большое спасибо. Еще тогда такой вопрос… А можно ли не только вывести иконку, но и поменять цвет текста заголовка в новости (и текст ссылки в каталоге новостей) в зависимости от типа?
#9
5 сентября 2017 в 20:20
Dorimen, да без проблем. Прямо в файле шаблона прописать массив цветов и в стили заголовка подставлять цвет номер N — значение из того же поля icon. Или CSS классы прописать class1, class2… и подставлять нужный класс. Доберусь до компьютера, скину пример. При желании то все можно)
#10
5 сентября 2017 в 22:55
без примера не разберусь. вроде бы все ясно, но с реализацией плохо ( не программист(((
#11
6 сентября 2017 в 00:21
без примера не разберусь. вроде бы все ясно, но с реализацией плохо ( не программист(((
<?php if( $ctype['options']['list_show_filter'] ) { 'css_prefix' => $ctype['name'], 'page_url' => $page_url, 'fields' => $fields, 'props_fields' => $props_fields, 'props' => $props, 'filters' => $filters, 'ext_hidden_params' => $ext_hidden_params, 'is_expanded' => $ctype['options']['list_expand_filter'] )); } ?> <?php if ($items){ ?> <div class="content_list featured <?php echo $ctype['name']; ?>_list"> <?php foreach($items as $item){ ?> <?php $stop = 0; ?> <div class="content_list_item <?php echo $ctype['name']; ?>_list_item<?php if (!empty($item['is_vip'])){ ?> is_vip<?php } ?>"> <div class="photo"> <?php echo html_image(default_images('private', $fields['photo']['options']['size_teaser']), $fields['photo']['options']['size_teaser'], $item['title']); ?> <?php } else { ?> <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>"> <?php echo html_image($item['photo'], $fields['photo']['options']['size_teaser'], $item['title']); ?> </a> <?php } ?> </div> <?php } ?> <div class="photo"> <img src="/templates/default/controllers/sc_smartslider/icons/icon<?php echo $item['icon']; ?>.png"> </div> <?php } ?> <div class="fields"> <?php foreach($fields as $field){ ?> <?php if ($stop === 2) { break; } ?> <?php if ($field['is_system'] || !$field['is_in_list'] || !isset($item[$field['name']])) { continue; } ?> <?php if ($field['groups_read'] && !$user->isInGroups($field['groups_read'])) { continue; } ?> <?php if (!$item[$field['name']] && $item[$field['name']] !== '0') { continue; } ?> <?php $label_pos = 'none'; } else { $label_pos = $field['options']['label_in_list']; } ?> <div class="field ft_<?php echo $field['type']; ?> f_<?php echo $field['name']; ?>"> <?php if ($label_pos != 'none'){ ?> <div class="title_<?php echo $label_pos; ?> myslyle<?php echo $item['icon']; ?>"><?php echo $field['title'] . ($label_pos=='left' ? ': ' : ''); ?></div> <?php } ?> <?php if ($field['name'] == 'title' && $ctype['options']['item_on']){ ?> <h2 class="value"> <?php if ($item['parent_id']){ ?> <a class="parent_title" href="<?php echo rel_to_href($item['parent_url']); ?>"><?php html($item['parent_title']); ?></a> → <?php } ?> <?php html($item[$field['name']]); ?> <span class="is_private" title="<?php html($item['private_item_hint']); ?>"></span> <?php } else { ?> <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>"><?php html($item[$field['name']]); ?></a> <?php if ($item['is_private']) { ?> <span class="is_private" title="<?php echo LANG_PRIVACY_HINT; ?>"></span> <?php } ?> <?php } ?> </h2> <?php } else { ?> <div class="value"> <div class="private_field_hint"><?php echo $item['private_item_hint']; ?></div> <?php } else { ?> <?php echo $field['handler']->setItem($item)->parseTeaser($item[$field['name']]); ?> <?php } ?> </div> <?php } ?> </div> <?php } ?> </div> <div class="tags_bar"> <?php echo html_tags_bar($item['tags']); ?> </div> <?php } ?> <?php $fields['date_pub']['is_in_list'] || $fields['user']['is_in_list'] || ($ctype['is_comments'] && $item['is_comments_on']) || !$item['is_pub'] || !$item['is_approved']; ?> <?php if($show_bar){ ?> <div class="info_bar"> <div class="bar_item bi_rating"> <?php echo $item['rating_widget']; ?> </div> <?php } ?> <?php if <
#12
7 сентября 2017 в 09:55
Спасибо.
Что-то работает, что-то нет. Не могу разобраться.
Вот код:
Добавлял в файле default_list_tiles.tpl.php
А вот вывод:
То есть для иконки нормально подставляет цифру в в конце, а для стиля не хочет. Хотя вроде все сделано аналогично )))
Что-то работает, что-то нет. Не могу разобраться.
Вот код:
Добавлял в файле default_list_tiles.tpl.php
А вот вывод:
То есть для иконки нормально подставляет цифру в в конце, а для стиля не хочет. Хотя вроде все сделано аналогично )))
#13
7 сентября 2017 в 10:04
Вы под картинкой сразу удаляете переменную со значением цифры, поэтому до стилей она не доходитХотя вроде все сделано аналогично )))
Перенесите
И по уму в классе ещё надо проверять на существование данного поля. Всё таки в default_list_tiles.tpl.php правки вносите.
#14
7 сентября 2017 в 10:05
И по уму в классе ещё надо проверять на существование данного поля
а как это сделать?