Как правильно прикрутить наследование опции из админки?

InstantCMS 2.X
#1 15 марта 2021 в 22:37
Всем привет.
В шаблоне виджета есть код.
  1.  
  2. <div class="field slide_<?php echo $field['type']; ?> f_<?php echo $field['mame']; ?> <?php echo $field['options']['wrap_type']; ?>_field" <?php if($field['options']['wrap_width']){ ?> style="width: <?php echo $field['options']['wrap_width']; ?>;"<?php } ?>>
  3.  
  4. <?php if ($field['label_pos'] != 'none'){ ?>
  5. <div class="title_<?php echo $field['label_pos']; ?>">
  6. <?php echo $field['title'] . ($field['label_pos']=='left' ? ': ' : ''); ?>
  7. </div>
  8. <?php } ?>
  9.  
  10. <?php if ($field['name'] == 'title' && $ctype['options']['item_on']){ ?>
  11. <h3 class="value">
  12. <?php if ($item['parent_id']){ ?>
  13. <a class="parent_title" href="<?php echo rel_to_href($item['parent_url']); ?>"><?php html($item['parent_title']); ?></a>
  14. &rarr;
  15. <?php } ?>
  16.  
  17. <?php if (!empty($item['is_private_item'])) { ?>
  18. <?php html($item[$field['name']]); ?>
  19. <span class="is_private text-secondary" title="<?php html($item['private_item_hint']); ?>">
  20. <?php html_svg_icon('solid', 'lock'); ?>
  21. </span>
  22. <?php } else { ?>
  23. <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>">
  24. <?php html($item[$field['name']]); ?>
  25. </a>
  26. <?php if ($item['is_private']) { ?>
  27. <span class="is_private text-secondary" title="<?php echo LANG_PRIVACY_HINT; ?>">
  28. <?php html_svg_icon('solid', 'lock'); ?>
  29. </span>
  30. <?php } ?>
  31. <?php } ?>
  32. </h3>
  33. <?php } else { ?>
  34. <div class="value">
  35. <?php echo $field['html']; ?>
  36. </div>
  37. <?php } ?>
  38. </div>
  39.  
  40.  
Я вывел отдельно нужные мне поля
  1.  
  2. <div class="field slide_caption f_title auto_field"><?php echo $field['caption']; ?></div>
  3. <div class="field slide_html f_peedv auto_field"><?php echo $field['html']; ?></div>
  4. <div class="field slide_image f_photo left_field"> <?php echo $field['image']; ?></div>
  5.  
Но не могу понять что прописать чтобы унаследовать настройки из админки. К примеру не работает обтекание для поля <?php echo $field['image']; ?>. Хотя в админке опция указана.
Надеюсь вопрос верно написал.
#2 15 марта 2021 в 23:50

Но не могу понять что прописать чтобы унаследовать настройки из админки.

KoRn
  1. <?php echo $field['options']['wrap_type']; ?>_field
то есть вот здесь
  1. $field['options']
Содержатся наши настройки для поля
#3 16 марта 2021 в 00:04

К примеру не работает обтекание для поля

KoRn
Судя по приведённому коду, вам, для начала, не помешало б разобраться это "обтекание" работает (без привязки к CMS)
#4 16 марта 2021 в 17:43


Но не могу понять что прописать чтобы унаследовать настройки из админки.

KoRn
  1. _field
то есть вот здесь
  1. $field['options']
Содержатся наши настройки для поля

Tolya

Привет, спасибо за ответ, как мне обьединить <?php echo $field['image']; ?> с $field['options']? Я с php пока не не ты)). Я пробовал так, но не то <?php echo $field['image'] ['options']; ?> И так тоже попробовал <?php echo $fields[$field['caption']]['options']; ?>
#5 16 марта 2021 в 18:47

Привет, спасибо за ответ, как мне обьединить <?php echo $field['image']; ?> с $field['options']? Я с php пока не не ты)). Я пробовал так, но не то <?php echo $field['image'] ['options']; ?> И так тоже попробовал <?php echo $fields[$field['caption']]['options']; ?>

KoRn
Вы что то делаете для меня не понятное laugh
У вас в шаблоне есть два цыкла
первый: перебирает массив записей контента
  1. <?php foreach($items as $item) { ?>
второй: перебирает поля у этих записей
  1. <?php foreach($item['fields'] as $field){ ?>

Теперь к вам вопрос

<div class="field slide_caption f_title auto_field"><?php echo $field['caption']; ?></div>
<div class="field slide_html f_peedv auto_field"><?php echo $field['html']; ?></div>
<div class="field slide_image f_photo left_field"> <?php echo $field['image']; ?></div>

KoRn
Вот это вы в каком цикле пытаетесь показать? laugh
потому что из этих 3х переменных у вас должна работать только одна это
  1. <?php echo $field['html']; ?>
следующие должны показывать нотисы
#6 16 марта 2021 в 19:20
Не знаю поможет это вам понять или нет, и вообще я могу быть не прав но вот например:

  1. // Наш виджит содержит следующий код
  2.  
  3. // перебираем записи контента
  4. <?php foreach($items as $item) { ?>
  5. // перебираем поля записи контента
  6. <?php foreach($item['fields'] as $field){ ?>
  7. // Показываем значения полей
  8. <div class="<?php echo $field['options']['wrap_type']; ?>_field"> <?php echo $field['html']; ?></div>
  9. <?php } ?>
  10. <?php } ?>
$field['html'] — это то что содержит наше поле, картинка или текст или ещё что-то.
$field['options'] — это массив который содержит в себе параметры опций.
Array (
[is_required] => параметр опции
[is_digits] => параметр опции
[is_number] => параметр опции
[is_alphanumeric] => параметр опции
[is_email] => параметр опции
[is_unique] => параметр опции
[is_url] => параметр опции
[disable_drafts] => параметр опции
[is_date_range_process] => параметр опции
[label_in_list] => параметр опции
[label_in_item] => параметр опции
[wrap_type] => параметр опции
[wrap_width] => параметр опции
[profile_value] => параметр опции
[size_teaser] => параметр опции
[size_full] => параметр опции
[size_small] => параметр опции
[sizes] => Array ( [0] => параметр опции [1] => параметр опции )
[allow_import_link] => параметр опции
[first_image_emphasize] => параметр опции
[max_photos] => параметр опции
[context_list] => Array ( [0] => параметр опции )
[relation_id] => параметр опции
[author_access] => ) параметр опции
)

например:
  1. <?php echo $field['options']['wrap_type']; ?>
Выведет, параметр опции обтекания.
#7 16 марта 2021 в 20:07


Не знаю поможет это вам понять или нет, и вообще я могу быть не прав но вот например:

  1. // Наш виджит содержит следующий код
  2.  
  3. // перебираем записи контента
  4.  
  5. // перебираем поля записи контента
  6.  
  7. // Показываем значения полей
  8.  
  9.  
  10.  
$field['html'] — это то что содержит наше поле, картинка или текст или ещё что-то.
$field['options'] — это массив который содержит в себе параметры опций.
Array (
[is_required] => параметр опции
[is_digits] => параметр опции
[is_number] => параметр опции
[is_alphanumeric] => параметр опции
[is_email] => параметр опции
[is_unique] => параметр опции
[is_url] => параметр опции
[disable_drafts] => параметр опции
[is_date_range_process] => параметр опции
[label_in_list] => параметр опции
[label_in_item] => параметр опции
[wrap_type] => параметр опции
[wrap_width] => параметр опции
[profile_value] => параметр опции
[size_teaser] => параметр опции
[size_full] => параметр опции
[size_small] => параметр опции
[sizes] => Array ( [0] => параметр опции [1] => параметр опции )
[allow_import_link] => параметр опции
[first_image_emphasize] => параметр опции
[max_photos] => параметр опции
[context_list] => Array ( [0] => параметр опции )
[relation_id] => параметр опции
[author_access] => ) параметр опции
)

например: Выведет, параметр опции обтекания.

Tolya

Ура, то что нужно! Спасибо что разжевали)).
#8 16 марта 2021 в 20:19

Вы что то делаете для меня не понятное

Tolya
Если честно сам не знаю))). Поскольку учу только джава скрипт еще. До php еще далеко, но вот срочно пришлось сделать кое что, а тут без php не обойтись. Да и саму систему еще изучать надо чтобы знать откуда подлезть. Но Вы разжевали достаточно, спасибо.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.