Narochnyi

Narochnyi

+71
Репутация
416
Рейтинг
#1 .chosen не работает в модальных окнах 17 мая 2016 в 09:14
JS работает, как будто проблема CSS
#2 .chosen не работает в модальных окнах 17 мая 2016 в 09:12


А как chosen подключен в шаблоне? Через addJS или addJSFromContext?

Loadырь

И так и так пробовал(

Выглядит это так:



Поле с единицей, это другое поле
#1 .chosen не работает в модальных окнах 17 мая 2016 в 08:11
Привет.

Собственно из темы все понятно, открываю в окне форму? в которой обычный select заменяется плагином chosen, но он не работает.\

Открываю так:

  1.  
  2. <a href="/ajax" class="ajax-modal">Ссылка</a>
  3.  
и так:

  1.  
  2. this.getFunc = function (elem) {
  3. var url = elem.attr('href');
  4. icms.modal.openAjax(url);
  5. return false;
  6. }
  7.  
Как исправить?
#3 [ЕСТЬ РЕШЕНИЕ] optgroup в html_select 16 мая 2016 в 18:43


Массив должен быть по такому принципу:

  1. array (
  2. [opt0] => Array
  3. (
  4. [0] => Название optgroup0
  5. )
  6.  
  7. [20] => Запись в optgroup0
  8. [opt1] => Array
  9. (
  10. [0] => Название optgroup1
  11. )
  12.  
  13. [19] => Запись в optgroup1
  14. [18] => Еще запись в optgroup1
  15. [16] => И еще запись в optgroup1
  16. [opt2] => Array
  17. (
  18. [0] => Название optgroup2
  19. )
  20.  
  21. [17] => Запись в optgroup2
  22. )

Fuze

Благодарю!
#1 [ЕСТЬ РЕШЕНИЕ] optgroup в html_select 16 мая 2016 в 15:06
Привет.

В функции:

  1.  
  2. function html_select($name, $items, $selected = '', $attributes = array()){
  3.  
  4. $attr_str = html_attr_str($attributes);
  5. $class = isset($attributes['class']) ? ' class="'.$attributes['class'].'"' : '';
  6. $html = '<select name="'.$name.'" '.$attr_str.$class.'>'."\n";
  7.  
  8. $optgroup = false;
  9.  
  10. if($items && is_array($items)){
  11. foreach($items as $value => $title){
  12.  
  13. if(is_array($title)){
  14. if($optgroup !== false){
  15. $html .= "\t".'</optgroup>'."\n";
  16. $optgroup = false;
  17. }
  18. $optgroup = true;
  19. $html .= "\t".'<optgroup label="'.htmlspecialchars($title[0]).'">'."\n";
  20. continue;
  21. }
  22.  
  23. $sel = ((string) $selected === (string) $value) ? 'selected' : '';
  24. $html .= "\t".'<option value="'.htmlspecialchars($value).'" '.$sel.'>'.htmlspecialchars($title).'</option>'."\n";
  25. }
  26. }
  27.  
  28. if($optgroup !== false){
  29. $html .= "\t".'</optgroup>'."\n";
  30. }
  31.  
  32. $html .= '</select>'."\n";
  33. return $html;
  34.  
  35. }
  36.  
Есть пункты для создания групп optgroup.

По коду я понял, что если $title является массивом, то формируется optgroup, но как это реализовать не могу понять.

Прошу посвятить)
#4 [ЕСТЬ РЕШЕНИЕ] Параметр в форме не работает 15 мая 2016 в 21:32


А вот что в таком случае подставляется в параметр функции $item

WebMan
Разобрался. Может кому-то будет полезно. В $item анонимной функции-генератора автоматически передаётся массив со значениями всех полей формы.

WebMan

Спасибо!
#1 [ЕСТЬ РЕШЕНИЕ] Параметр в форме не работает 13 мая 2016 в 12:51
Привет!

В форму передаю параметр:
  1. $form = $this->getForm('name', array($title));
В форме:
  1. ublic function init($title)
Но в коде ниже, параметр не работает:
  1.  
  2. 'generator' => function($item) {
  3.  
  4. $model = cmsCore::getModel('test');
  5.  
  6. $test = $model->
  7. filterEqual('test', $title)->
  8. gettest();
  9.  
  10. }
  11.  
Почему?
#5 Поле select в форме 12 мая 2016 в 15:40


А fieldListMultiple() не подходит?

Val

Нет, он с чекбоксами(
#1 Поле select в форме 12 мая 2016 в 13:35
Привет!

В форме добавляю поле fieldList
  1.  
  2. new fieldList('name', array(
  3. 'title' => LANG_TITLE,
  4. 'items' => array(
  5. '1' => 1,
  6. '2' => 2,
  7. '3' => 3,
  8. ),
  9. )),
  10.  
Но мне нужно сделать поле, как у выбора дополнительных категорий в контенте.

Я подключил chosen(), но чтобы у select был мультивыбор нужно задать параметр multiple, а параметр name задать как массив name[]


Как все это сделать в форме?
#6 [ЕСТЬ РЕШЕНИЕ] Проверка поля на уникальность 11 мая 2016 в 10:09


Без результатно. Что не так я понял?

Вадим Нарочный
а что в логах пишет?
'my_table' — это без префикса?

Loadырь

И вам спасибо!
#7 [ЕСТЬ РЕШЕНИЕ] Проверка поля на уникальность 11 мая 2016 в 10:08


При добавлении поля в форму нужно задать правило проверки на уникальность примерно так:

  1. new fieldString('имя_поля_в_форме', array(
  2. 'title' => 'Title',
  3. 'rules' => array(
  4. array('unique', '{имя_таблицы_без_префикса}', 'имя_поля_в_таблице')
  5. )
  6. )),

WebMan

Спасибо, всё работает!
#8 [ЕСТЬ РЕШЕНИЕ] Проверка поля на уникальность 11 мая 2016 в 09:49


github.com/instantsoft/icms2/blob/master/system/controllers/users/backend/forms/form_field.php#L17

Loadырь

Добавил к своему полю

  1. $do == 'add' ? array('unique_field') : false
Передал в форму параметр do

При добавлении ошибка
  1. Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'service' does not have a method 'validate_unique_field' in Z:\home\localhost\www\system\core\action.php on line 29
Добавил во фронтенд код:

  1.  
  2. public function validate_unique_field($value){
  3. $core = cmsCore::getInstance();
  4. $table_name = 'my_table';
  5. return !$core->db->isFieldExists($table_name, $value);
  6. }
  7.  
Без результатно. Что не так я понял?
#1 [ЕСТЬ РЕШЕНИЕ] Проверка поля на уникальность 11 мая 2016 в 09:19
Привет.

Пишу компонент, и мне нужно чтобы при добавлении данных через форму проводилась проверка на уникальность, как в компоненты Контент

Подскажите, как это сделать?

Перерыл интернет и форум ничего не нашел!
#9 [ЕСТЬ РЕШЕНИЕ] Сортировка JSON массива 9 мая 2016 в 13:33
Спасибо
#10 [ЕСТЬ РЕШЕНИЕ] Сортировка JSON массива 9 мая 2016 в 12:51


Ключи в этом случае будут преобразовываться в числа и объект потому будет сортироваться только так.
Вы можете или поменять названия ключей, или преобразовать объект в массив и работать дальше с массивом.

Джехутимери

Что-то не совсем понял как это организовать в моей случае?
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.