Каким методом модели воспользоваться, чтобы получить список предустановленный значений поля с типом "Список" (fieldList)?

 
Посетитель
small user social cms
Почетный донор проекта
Сообщений: 90
Добрый день!

Документация в вики для разработчиков еще не заполнена полностью, поэтому прошу помощи у знающих людей.
Каким методом модели
Код PHP:
  1. $model = cmsCore::getModel('content');
воспользоваться, чтобы получить список предустановленный значений поля с типом "Список" (fieldList)?
Каким методом модели воспользоваться, чтобы получить список предустановленный значений поля с типом \"Список\" (fieldList)?

Каким методом модели воспользоваться, чтобы получить список предустановленный значений поля с типом \"Список\" (fieldList)?


Собираю форму и не могу найти метод, который подтянул бы значения.
Код PHP:
  1.  
  2. new fieldList('name_field', array(
  3. 'generator' => function($item) {
  4.  
  5. $model = cmsCore::getModel('content');
  6. ...
  7.  
  8. return $items;
  9.  
  10. }
  11.  
Заранее спасибо.
www.LysyeGory.ru - мой сайт на instantcms
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проекта
Сообщений: 1377
В другой теме разбирали это напомню:

Код PHP:
  1.  
  2. new fieldList('id_tariff', array(
  3. 'title' => LANG_ABONENT_DOGOVOR_SELECTTARIFF,
  4. 'generator' => function () {
  5. $model = cmsCore::getModel('abonent');
  6. $list = $model->getTdogovorAll(); // Модель выборки из базы данных значений
  7. $items = array();
  8. foreach ($list as $item) {
  9. $items[$item['id']] = $item['name_tarif']; // формируем id это value, а имя тарифа это Название
  10. }
  11.  
  12. return $items;
  13.  
Редактировалось: 1 раз (Последний: 4 марта 2016 в 05:44)
Фриланс по Intantcms 1 и 2 версий.Писать в ЛС. Отзывы заказчиков
Реклама
cms
Посетитель
small user social cms
Почетный донор проекта
Сообщений: 90
kirkr,
эту тему даже видел, когда искал ответ на свой вопрос. Но

Код PHP:
  1. $model = cmsCore::getModel('abonent');
это самописная модель не входит в стандартную поставку. Мне не хочется плодить и писать свою модель. А хочу переиспользовать стандартный функционал

Код PHP:
  1. $model = cmsCore::getModel('content');
ведь как-то сейчас это выводится?
www.LysyeGory.ru - мой сайт на instantcms
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проекта
Сообщений: 1377
LuckyRain, Вы не внимательно читаете, getModel указывает от какого компонента вызывать модель! т.е. из какого компонента брать модель, в документации кстати разжевано.
Фриланс по Intantcms 1 и 2 версий.Писать в ЛС. Отзывы заказчиков
Посетитель
small user social cms
Почетный донор проекта
Сообщений: 90
kirkr:
LuckyRain, Вы не внимательно читаете, getModel указывает от какого компонента вызывать модель! т.е. из какого компонента брать модель, в документации кстати разжевано.

Про это в документации читал и понял. Вопрос в том, что когда я взял модель от стандартного компонента 'content', то хочу воспользоваться его методом, который возвращает список предустановленных значений поля. А вот наименование это метода мне его неизвестно, о чем и спрашиваю! Знаю что такой метод должен быть. Вот вы в примере используете метод getTdogovorAll, а я хочу использовать аналогичный, только из поставки, типа
$model = cmsCore::getModel('content');
$list = $model->возращаем_список_предустановленных_значений();

Нужно наименование метода.
www.LysyeGory.ru - мой сайт на instantcms
Посетитель
no avatar
Сообщений: 62
филды возьми и всё встанет на свои места, правда......Но это поправимо
меня немножко бесит, что всё типа ПДО, а пдо там и моль не ела, Сраный sql?, а если не секъюл? Таже самая Мария. хОЧУ pdo
Редактировалось: 1 раз (Последний: 5 марта 2016 в 03:51)
Посетитель
no avatar
Сообщений: 62
prepare наше всё и не надо гонять неизвестно что, внедрить PDO и всё - ипи... как хотитесь.
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проекта
Сообщений: 1377
LuckyRain, А залезть в файлик \system\controllers\content\model.php уже лень?

Там даже разделы подписаны, функции на аглицком названы, но гугл транслейт вам поможет суть понять. Если Вы сами не будите изучать, то проще заказать готовое.

А в папке \system\controllers\content\forms

Вы увидите пример форм и функций вызова.
Редактировалось: 1 раз (Последний: 5 марта 2016 в 05:16)
Фриланс по Intantcms 1 и 2 версий.Писать в ЛС. Отзывы заказчиков
Посетитель
small user social cms
Почетный донор проекта
Сообщений: 90
kirkr, спасибо за диалог.

kirkr:
LuckyRain, А залезть в файлик \system\controllers\content\model.php уже лень?
Нет не лень. Первым делом туда и залез. Но ничего подобного не нашел, поэтому и задал вопрос сюда. Так как есть понимание, что он должен быть и размещаться на мой взгляд должен был в модели. Но разработчики cms пошли другим путем smile

Вчера ночью все же разобрался: В чистом виде как я себе это представлял, такого метода нет!

Стандартный компонент работает следующим образом:
1. метод действия контроллера actionContentItemAdd через
$model->getContentFields($ctype_name, $item_id = false)
получает список полей контента со всеми возможными атрибутами, включая и интересующее меня поле "values"
2.Дальше через $form = $this->getItemForm начинает собирать форму без использования шаблона.

В итоге переиспользовать (как я хотел) не получится. Напишу в своей модели свой метод, у которого
на входе: будет тип контента, наименование поля
на выходе: список предустановленных значений
www.LysyeGory.ru - мой сайт на instantcms
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проекта
Сообщений: 1377
LuckyRain, покажите ввиде html что получить хотите? помогу
Фриланс по Intantcms 1 и 2 версий.Писать в ЛС. Отзывы заказчиков
Посетитель
small user social cms
Почетный донор проекта
Сообщений: 90
kirkr:
LuckyRain, покажите ввиде html что получить хотите? помогу
Спасибо за предложение, но справился сам (отдельное спасибо разработчикам ICMS 2 за понятный красивый код)!
Код в форме :

Код PHP:
  1. new fieldList('count_guest', array(
  2. 'title' => 'Кол-во гостей',
  3. 'generator' => function(){
  4. $model = cmsCore::getModel('boock');
  5. return $model->getPresetValuesField('count_guest');
  6. }
  7. ))
  8.  
Код в моделе
Код PHP:
  1. // Получение предустановленных значений заданного поля
  2. public function getPresetValuesField($field_name){
  3.  
  4. $table_name = $this->table_prefix_ctype. '_fields';
  5. $item = $this->getItemByField($table_name, 'name', $field_name);
  6.  
  7. return explode("\r", $item['values']);
  8. }
И вот что получилось на страничке:
Каким методом модели воспользоваться, чтобы получить список предустановленный значений поля с типом \"Список\" (fieldList)?
www.LysyeGory.ru - мой сайт на instantcms
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: