здравствуйте. возможно ли к генерируемому списку полей в настройках виджета добавить свои список, значения?
В результат (в конец или начало) этой функции добавить свои значения, понимаю что там массив, но как в него добавить не знаю
new fieldList('options:field', array(
'title' => 'Поле',
'parent' => array(
'list' => 'options:ctype_id',
'url' => href_to('content', 'widget_fields_ajax')
),
'generator' => $field_generator
)),
kolecha,
Не очень понятно, что Вы хотите сделать, но посмотрите, как это сделано в других местах InstantCMS.
Пример:
'title' => LANG_PARSER_IMAGE_SIZE_TEASER, 'default' => 'small', 'generator' => function (){ $presets = cmsCore::getModel('images')->getPresetsList(true); $presets['original'] = LANG_PARSER_IMAGE_SIZE_ORIGINAL; return $presets; }, 'extended_option' => true )),
То есть генератор — это функция, которая возвращает некий массив. Если у вас уже есть этот массив, просто укажите его и всё.
'generator' => $myarray
kolecha,
Не очень понятно, что Вы хотите сделать, но посмотрите, как это сделано в других местах InstantCMS.
Пример:
'title' => LANG_PARSER_IMAGE_SIZE_TEASER, 'default' => 'small', 'generator' => function (){ $presets = cmsCore::getModel('images')->getPresetsList(true); $presets['original'] = LANG_PARSER_IMAGE_SIZE_ORIGINAL; return $presets; }, 'extended_option' => true )),То есть генератор — это функция, которая возвращает некий массив. Если у вас уже есть этот массив, просто укажите его и всё.
'generator' => $myarray
То что массив это понятно, в самом файле настроек функция написана, но в ней не получилось к результату добавить свой массив. Мне не заменить нужно, а к сформированному массиву списка полей добавить свои позиции.
Мне не заменить нужно, а к сформированному массиву списка полей добавить свои позиции
Так это ещё проще. Другое дело, что вы либо считаете, что у вас очень крутая уникальная идея, о которой никому нельзя говорить, либо хотите, чтобы вам всё принесли на блюдечке, а самому тупо влом скопировать и вставить кусок кода этой функции. Вы на самом деле считаете, что сейчас какой-нибудь экстрасенс возьмёт и сам догадается, чего вы там придумали? Да всем плевать на вашу мега-идею, завтра эта тема потеряется и больше никто ее не увидит никогда. Нужна помощь? Дайте исходники.
Что скрывать, это стандартные функции, погрузка полей в зависимости от типа контента и категории. Просто думал в списо полей добавить ещё позиции: Просмотры, Дата публикации и т.д.
$list = ['' => ''];
$ctype_id = is_array($item)? array_value_recursive('options:ctype_id', $item): false;
if (!$ctype_id && $request) {
$ctype_id = $request->get('options:ctype_id', 0);
}
if (!$ctype_id) {
return $list;
}
$ctype = $content_model->getContentType($ctype_id);
if (!$ctype) {
return $list;
}
$fields = $content_model->getContentFields($ctype['name']);
if ($fields) {
$list = $list + array_collection_to_list($fields, 'name', 'title');
}
return $list;
};
'title' => 'Поле',
'parent' => array(
'list' => 'options:ctype_id',
'url' => href_to('content', 'widget_fields_ajax')
),
'generator' => $field_generator
)),
Можно не заморачиваться конечно, просто отдельно его вывести...
Внизу перед return $list; добавьте массив со своими значениями, а потом соедините два массива.
'field_1' => 'Первое свое значение', 'field_2' => 'Второе свое значение', 'field_3' => 'Третье свое значение' );
Только это ничего не даст в итоге, потому что список полей генерируется вообще в другом месте. А эта функция, судя по всему, для указания изображения и тизера во вкладке «Устаревшие опции».
Просмотры, Дата публикации и т.д.
Если бы мне надо было это, я бы в шаблоне вывел эти поля и закрыл вопрос. В том же list_basic.tpl.php дата уже выведена, вставить только просмотры. Да и шаблон можно свой добавить, и тогда изменения никакие не слетят при обновлении.