Название поля + название страницы

#1 4 декабря 2016 в 19:30
InstantCMS 2.6.0
Может кто подскажет как так сделать:

В созданном компоненте на страницах записи у меня есть поле "Скриншоты"

Иллюстрация

но к нему еще надо добавить название поля "Заголовок" чтобы они выводились на странице

Иллюстрация

но на каждой странице свой "Заголовок"!

На странице с заголовком Anvide Seal Folder будет написано "Скриншоты Anvide Seal Folder"
На странице с заголовком WinSCP будет написано "Скриншоты WinSCP"
и т.д.

Мне так надо сделать для нескольких полей.
#2 11 января 2017 в 17:48
Апну тему, может кто поможет )
#3 11 января 2017 в 18:25

В созданном компоненте

iton
В компоненте или типе контента?

Предположим, что это тип контента, все-таки. У него есть системное имя, например, screen.

В папке templates/вашшаблон/content сделайте копию файла default_item.tpl.php и переименуйте его в screen_item.tpl.php.

Откройте этот файл в редакторе (например, notepad++). Найдите код заголовка страницы:
  1. <?php html($item['title']); ?>
Перед ним напишите "Скриншоты ":

  1. Скриншоты <?php html($item['title']); ?>
#4 11 января 2017 в 19:43

В компоненте или типе контента?

DK

Это "тип контент", спасибо за помощь, это мне тоже пригодится, но мне нужно немножко другое:

В типе контента "test" есть поле "Скриншоты" системное имя "screenshots" надо чтобы рядом с ним выводилось название "страницы".

Пример: страница demo.instantcms.ru/board/8-prodam-avtomobil.html
Есть поле "Цена:" и заголовок "Продам автомобиль", надо где то прописать чтобы получилось в поле "Цена:" вот так "Цена Продам автомобиль"

получается поле + название страницы
#5 11 января 2017 в 19:50
Вам все равно лучше сделать копию файла default_item.tpl.php, переименовать его в ситемноеимятипаконтента_item.tpl.php и правки все делать в нем.

Можно сделать. Давайте код этого файла. И скажите системное имя поля "Скриншоты".

Уточню на всякий случай. Есть поле Скриншоты. И есть заголовок страницы. Вам нужно, чтобы заголовок поля "Скриншоты" выглядел как "Скриншоты + Заголовок страницы", правильно? А само поле скриншоты — это поле "Набор изображений"?
#6 11 января 2017 в 20:29

Вам все равно лучше сделать копию файла default_item.tpl.php, переименовать его в ситемноеимятипаконтента_item.tpl.php и правки все делать в нем.

DK

Да я копию файла сделал.


Можно сделать. Давайте код этого файла. И скажите системное имя поля "Скриншоты".

Уточню на всякий случай. Есть поле Скриншоты. И есть заголовок страницы. Вам нужно, чтобы заголовок поля "Скриншоты" выглядел как "Скриншоты + Заголовок страницы", правильно? А само поле скриншоты — это поле "Набор изображений"?

DK
[/quote]

Да Вы все правильно написали как надо чтобы получилось,

Поле — "Набор изображений" с названием — "Скриншоты", системное имя — "screenshots".

файл cloud.mail.ru/public/CVgn/sFu6m1NcD
#7 11 января 2017 в 20:43
Хорошо, вот так это можно сделать в дефолтном шаблоне (версия 2.6.0, но принцип одинаковый):

Строки 34-39, код такой
  1. <div class="field ft_<?php echo $field['type']; ?> f_<?php echo $field['name']; ?>">
  2. <?php if ($label_pos != 'none'){ ?>
  3. <div class="title_<?php echo $label_pos; ?>"><?php html($field['title']); ?>: </div>
  4. <?php } ?>
  5. <div class="value"><?php echo $field['html']; ?></div>
  6. </div>
Замените на такой:
  1. <div class="field ft_<?php echo $field['type']; ?> f_<?php echo $field['name']; ?>">
  2. <?php if ($label_pos != 'none'){ ?>
  3. <?php if ($field['name'] == 'screenshots') {?>
  4. <div class="title_<?php echo $label_pos; ?>"><?php html($field['title']); ?> <?php html($item['title']); ?>: </div>
  5. <?php } else { ?>
  6. <div class="title_<?php echo $label_pos; ?>"><?php html($field['title']); ?>: </div>
  7. <?php } ?>
  8. <?php } ?>
  9. <div class="value"><?php echo $field['html']; ?></div>
  10. </div>
#8 11 января 2017 в 21:34
Такого кода не нашел, но нашел похожий

  1. <div class="field ft_<?php echo $field['type']; ?> f_<?php echo $field['name']; ?> <?php echo $field['options']['wrap_type']; ?>_field" <?php if($field['options']['wrap_width']){ ?> style="width: <?php echo $field['options']['wrap_width']; ?>;"<?php } ?>>
  2. <?php if ($field['options']['label_in_item'] != 'none'){ ?>
  3. <div class="title_<?php echo $field['options']['label_in_item']; ?>"><?php html($field['title']); ?>: </div>
  4. <?php } ?>
  5. <div class="value"><?php echo $field['html']; ?></div>
  6. </div>
могу выложить код всего файла.
#9 11 января 2017 в 22:13
из этого кода это
  1. <div class="title_<?php echo $field['options']['label_in_item']; ?>"><?php html($field['title']); ?>: </div>
замените на это:
  1. <?php if ($field['name'] == 'screenshots') {?>
  2. <div class="title_<?php echo $field['options']['label_in_item']; ?>"><?php html($field['title']); ?> <?php html($item['title']); ?>: </div>
  3. <?php } else { ?>
  4. <div class="title_<?php echo $field['options']['label_in_item']; ?>"><?php html($field['title']); ?>: </div>
  5. <?php } ?>
#10 11 января 2017 в 22:21
Спасибо!!! все получилось!
#11 12 января 2017 в 00:12
Ну можно создать текстовое поле и прописать для него CSSки
#12 29 октября 2017 в 21:40
DолбаK, Может подскажете как сделать это для несколько полей? для 2-4 полей

Для "Скриншоты Anvide Seal Folder" все получилось, но есть еще поля для которых надо сделать тоже самое.

Поле "Строковое поле" системное имя "site"
Поле "Текст HTML" системное имя "text"
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.