Возникла потребность в создании нового типа полей для контента в 2-ке чекбоксы. Думаю для многих это будет очень полезным решением.
У меня есть уже некоторые наработки.
Создал два дополнительных файла в папку system/fields/checkboxe.php
В папку templates/тема/assets/fields/checkbox.tpl.php
В файл system/libs/html.helper.php добавил новую функцию.
В админке новое поле появилось, содержимое появляется и отображается чекбоксами на сайте. Но вот никак не могу найти где ошибся в коде — не добаляет отмеченные записи в базу данных.
Ну а теперь по порядку
Содержимое файла system/fields/checkboxe.php
<?php class fieldCheckboxe extends cmsFormField { public $title = LANG_PARSER_Checkboxe; public $sql = 'int NULL DEFAULT NULL'; public $filter_type = 'int'; public $filter_hint = LANG_PARSER_Checkboxe_FILTER_HINT; public function getOptions(){ 'title' => LANG_PARSER_LIST_FILTER_MULTI, 'default' => false )), ); } public function getFilterInput($value) { $items = $this->getCheckboxeItems(); if (!$this->getOption('filter_multiple')){ return html_checkboxe($this->name, $items, $value); } else { return html_checkboxe($this->name, $items, $value); } } public function getRules() { if($this->item){ } return $this->rules; } public function parse($value){ $items = $this->getCheckboxeItems(); $item = ''; } public function getCheckboxeItems(){ $items = $this->items; $generator = $this->generator; $items = $generator($this->item); } else if ($this->hasDefaultValue()) { $items = $this->parseCheckboxeItems($this->getDefaultValue()); } return $items; } public function parseCheckboxeItems($string){ return string_explode_list($string); } public function applyFilter($model, $value) { if (!$this->getOption('filter_multiple')){ $model->filterEqual($this->name, $value); } else { $model->filterIn($this->name, $value); } return $model; } public function getInput($value){ $this->data['items'] = $this->getCheckboxeItems(); $this->data['is_multiple'] = $this->getProperty('is_multiple'); $this->data['is_tree'] = $this->getProperty('is_tree'); $this->data['parent'] = $this->getProperty('parent'); return parent::getInput($value); } }
<?php if ($field->title) { ?><label for="<?php echo $field->id; ?>"><?php echo $field->title; ?></label><?php } ?> <?php if($field->data['is_multiple']){ echo html_select_multiple($field->element_name, $field->data['items'], $value, $field->data['dom_attr'], $field->data['is_tree']); }else{ echo html_checkboxe($field->element_name, $field->data['items'], $value, $field->data['dom_attr']); } ?>
// Здесь много кратный чекбокс // if ($checked) { $attributes['checked'] = 'checked'; } $attr_str = html_attr_str($attributes); $class = 'input-checkbox'; // $html = '<select name="'.$name.'" '.$attr_str.$class.'>'."\n"; $optgroup = false; foreach($items as $value => $title){ if($optgroup !== false){ $html .= "\t".'</optgroup>'."/n"; $optgroup = false; } $optgroup = true; $html .= "\t".'<optgroup label="'.$title[0].'">'."\n"; continue; } $sel = ((string) $selected === (string) $value) ? 'checked' : ''; //$html .= "\t".'<option value="'.htmlspecialchars($value).'" '.$sel.'>'.htmlspecialchars($title).'</option>'."\n"; $html .= "\t".'<input type="checkbox" class="'.$class.'" name="'
Добавить к имеющимся типам полей контента чекбоксы. Чтобы можно было выбрать многократно. И радио кнопки для одиночного выбора.
Очень нужно. СПАСИБО!
Очень нужно. СПАСИБО!
Хотелось бы дополнительно к имеющимся типам полей в контенте иметь чекбоксы.
Дайте ссылку где можно глянуть я скажу где и что добавить
Указать высоту и ширину фото
height: высота:
widht: ширина:
Но при этом изображение будет искажено. Или дайте глянуть ссылку на сайта, тогда покажу куда добавить css
height: высота:
widht: ширина:
Но при этом изображение будет искажено. Или дайте глянуть ссылку на сайта, тогда покажу куда добавить css
Форматирование убирается в админке.
К примеру статьи
Заходим в типы контента статьи
Выбираем вкладку поля
Выбираем поле где стоит редактор
И снимаем галочку "Обрабатывать типографом "
К примеру статьи
Заходим в типы контента статьи
Выбираем вкладку поля
Выбираем поле где стоит редактор
И снимаем галочку "Обрабатывать типографом "
Скрин можно что там не так отображается.
Я убрал у себя форматирование, переделал редактор под ВВ коды. В общем переделано много файлов и в ядре самой инстант!
В личных сообщениях я так понял?
Необходимо добавить target="_blank"
Заходим в папку редакторов markitup/sets/default_ru/set.js в строке примерно 14 у меня есть код
Делаем так
Необходимо добавить target="_blank"
Заходим в папку редакторов markitup/sets/default_ru/set.js в строке примерно 14 у меня есть код
{name:'Ссылка', key:'L', openWith:'<a href="[![Адрес ссылки:!:http://]!]">', closeWith:'</a>', placeHolder:'Заголовок ссылки...', className: 'btnLink'},
{name:'Ссылка', key:'L', openWith:'<a target="_blank" href="[![Адрес ссылки:!:http://]!]">', closeWith:'</a>', placeHolder:'Заголовок ссылки...', className: 'btnLink'},
Покажите код где формируется ссылка из icms подскажу, а так у меня нет этой версии, нужно видеть код.
И чтобы было видно какая переменная отвечает за id категории.
А вообще без кода могу сказать так
К ссылке где формируется она добавить в концеИ таким же образом добавить идентификатор к блоку с категрией
И чтобы было видно какая переменная отвечает за id категории.
А вообще без кода могу сказать так
К ссылке где формируется она добавить в конце
.'#myid'.$id
<span id="myid<?= $id; ?> "></span>
Включите в настройках отладку и псомтрите где ошибка, это стандартная 404 а так будет видно где ошибка
Покажите какой код вставляли для вывода комментариев. Тогда можно будет решать где, что не так!
А вы создали файл
Ошибка говорит что функции у вас не существует.
Создаем файл php с названием smiley.php
<?php // Путь к папке со смайлами // Функция для преобразования символов в изображения самайлов function Smiley($str) { // Добавляем обозначения смайлов для обработки, я покажу один вариант можно добавить сколько угодно своих ); ); return $str; } ?>
<div class="content"> <div class="text"> <?php cmsCore::loadLib('smiley'); echo Smiley($entry['content_html']); ?> </div> <?php if ($is_controls){ ?>
в папке /templates/default/images/smile/
То все будет работать