полный до сервера
полный до сервера
и что должно быть в $presets
там же в коде все есть
$presets = $model_images->filterIn('name', $sizes)->getPresets();
где $sizes — массив имен пресетов. Их надо найти в настройках поля avatart.
полный до сервера
полный до сервера
и что должно быть в $presets
там же в коде все есть
$presets = $model_images->filterIn('name', $sizes)->getPresets();
где $sizes — массив имен пресетов. Их надо найти в настройках поля avatart.
No Name, открываем историю ваших сообщений. Видим, что вы уже спрашивали подобное в феврале. И там уже был ответ instantcms.ru/forum/zagruzka-avatara-polzovatelja-cherez-kod.html#post-369843
private function copyPreviews($image_file, $presets) { try { $image = new cmsImages($image_file); } catch (Exception $exc) { files_delete_file($image_file, 2); return false; } $result = []; foreach ($presets as $p) { $resized_path = $image->resizeByPreset($p, ''); if (!$resized_path) { continue; } $result[$p['name']] = $resized_path; } files_delete_file($image_file, 2); return $result; }
dimi55, почему то в админке вашего сайта у компонента Профили пользователей снята пометка о том, что у компонента есть админка.
Таблица: cms_controllers в базе данных. Должна быть 1 в поле is_backend. У вас, видимо, там NULL

Radu, возможно, вам подойдет решение из приложения к письму. Компонент Только свое позволяет ограничить для пользователя просмотр записей типа контента только своими записями. Администратор сайта видит все записи.
В настройках компонента можно выбрать, в каких типах контента нужна такая возможность.
Архив zonlyowns20240323_1.0.0 в приложении к сообщению. Пожалуйста, не ставьте сразу на живой сайт. Протестируйте где-то. Писалось 2 года назад.
Radu, так если вы отредактируете старую запись, то таким образом потрете все данные о пробеге.
Посмотрите статистику по ip адресам. Покажите статистику популярных страниц. По вашему скриншоту можно только гадать...
Pawell, реализуйте в вашем поле метод parse. Включите показ поля в списке/записи. Тогда html поля будет доступен примерно так
<?php echo $item['fields']['framework']['html'] ?>
где framework — системное имя вашего поля.
Как я понимаю, вы отключили показ поля, чтобы он не «двоился». Выведите поле кодом выше, как я советую. а в месте обычного вывода полей, там где код примерно такой
foreach ($item['fields'] as $field) {
добавьте что-то типа
continue; }
И получите то, что хотите. Ваше поле будет выведено в нужном вам месте шаблона списка/записи типа контента, а в месте коробочного вывода полей будет пропущено при помощи конструкции, описанной выше
sferoid, столбцы, для которых не выводится название поля в списке, скрываются.
Вот код скрытия github.com/instantsoft/icms2/blob/298557aad05f89f74ce0d63b2fe8844991a48e42/templates/modern/content/default_list_table.tpl.php#L37
Чтобы показывались как тут demo.instantcms.ru/board в настройках поля заголовок должно быть вот так

Так задумано автором. Вы можете изменить этот файл шаблона, задав свою логику.
Radu, можете удалить весь этот блок
<?php if ($show_h1){ ?> <h1> <?php $this->pageH1(); ?> <sup> <a class="inline_rss_icon d-none d-lg-inline-block" title="RSS" href="<?php echo $ctype['rss_link']; ?>"> <?php html_svg_icon('solid', 'rss'); ?> </a> </sup> <?php } ?> </h1> <?php } ?>
в файле шаблона просмотра категории github.com/instantsoft/icms2/blob/master/templates/modern/controllers/content/category_view.tpl.php
Но это также удалит и название категории при просмотре категории новостей.
Ну и править лучше в своем дочернем шаблоне, чтобы при обновлении движка правки в шаблоне не «затерлись». Про дочерние шаблоны instantcms.ru/blogs/horoshie-mysli/kak-ne-poterjat-pravki-v-shablone-delaem-dochernii-shablon-4549.html
понятия не имею что оно делает
это поможет частично. Это подключит в итоговый файл стилей вот такой scss github.com/instantsoft/icms2/blob/master/templates/modern/scss/bootstrap/vendor/_rfs.scss
и к стилям типа
h4, .h4 { font-size: 1.5rem; }
будут добавлены еще стили через media
@media (max-width: 1200px) { h4, .h4 { font-size: calc(1.275rem + 0.3vw); } }
что сделает размеры текста зависимыми от ширины экрана.
Наверно автору поможет уменьшить «Базовый размер шрифта» до 0.9rem + включить опцию «Включить адаптивные размеры шрифтов».
Это уменьшит шрифт в целом и сделает его повышение в зависимости от ширины экрана более плавным.
ReY, в приложении к сообщению форума компонент Авторизация и регистрация по никнейму
После установки не забудьте настроить компонент, а также добавить ссылки enter/login enter/register и enter/logout?csrf_token={csrf_token} в меню






Делалось перед сном. Могут быть опечатки, ошибки.
Ну и вы должны понимать:
1. куки сайт все равно создает, а значит о них надо предупреждать
2. нужны какие-то решения по восстановлению доступа для пользователей. Например, просить указать в профиле какое-то секретное слово.
3. Нужны какие-то средства борьбы со спамом. Например, после регистрации помещать пользователя в группу с минимальными правами и переводить в общую только после проявления человечности
Если пожеланий в ходе тестов не возникнет, размещу решение в блогах.
Может есть какое-то дополнение для регистрации с помощью логина и пароля или как-то и где-то можно настроить поле мейла
судя по коду экшнов входа и регистрации, пытаться вмешаться хуками и что-то исправить в самом компоненте авторизации не стоит.
На мой взгляд, для вашей затеи, если не пугает обилие спама, лучше написать простой компонент, в котором также реализовать два экшна: вход и регистрация. По очень простой форме никнейм и пароль.
И уже в своем компонент реализовать логику нужных проверок. При регистрации генерировать фейковое мыло. Отключать рассылку писем, если у пользователя фейковое мыло. Дать возможность указать нормальное мыло.
А далее, например при логине взять от пользователя никнейм, пароль, найти его в базе, получить оттуда фейковое мыло, и уже его использовать в коробочном методе логина cmsUser::login github.com/instantsoft/icms2/blob/d2275e1e3fbb4c3d68f7db9851bab619aa870d42/system/core/user.php#L284
И т.п.
Подобное делал во входе через телеграм в теме instantcms.ru/forum/samye-prostye-registracija-i-vhod-na-sait.html Но то решение вам точно не подойдет, просто, как пример реализованной логики входа и регистрации через сторонний компонент.
No Name, код можете посмотреть в моем бесплатном дополнении
Примерно так
public function getPresetSizes() { return $this->getOption('sizes'); } public function getPreviews($value) { $codes = $this->getYoutubeIds($value); if (!$codes) { return NULL; } $result = []; $sizes = $this->getPresetSizes(); $model_images = cmsCore::getModel('images'); $presets = $model_images->filterIn('name', $sizes)->getPresets(); foreach ($codes as $code_item) { $code = $code_item['code']; $image = $this->copyPreview($code); $images = $this->copyPreviews($image, $presets); if ($images) { $result[$code] = $images; } } } public function savePreviews($model, $ctype_name, $previews_name, $id, $result) { $table_name = $model->table_prefix . $ctype_name; $model->update($table_name, $id, [ $previews_name => cmsModel::arrayToString($result) ],false,true); } private function copyPreview($code) { 'https://img.youtube.com/vi/' . $code . '/oardefault.jpg',//short 'https://img.youtube.com/vi/' . $code . '/maxresdefault.jpg', 'https://img.youtube.com/vi/' . $code . '/sddefault.jpg', 'https://img.youtube.com/vi/' . $code . '/hqdefault.jpg' ); $link = false; foreach ($images as $ytimg) { if ((int) $code < 400) { $link = $ytimg; break; } } $dest = $this->getDestination($link); file_save_from_url($link, $dest); return $dest; } private function copyPreviews($image_file, $presets) { try { $image = new cmsImages($image_file); } catch (Exception $exc) { files_delete_file($image_file, 2); return false; } $result = []; foreach ($presets as $p) { $resized_path = $image->resizeByPreset($p, ''); if (!$resized_path) { continue; } $result[$p['name']] = $resized_path; } files_delete_file($image_file, 2); return $result; } private function getDestination($link) { $uploader = new cmsUploader; $directory = $uploader->getUploadDestinationDirectory(); $dest_name = files_sanitize_name($link); return $directory . $dest_name; }
abodya, вот тут выводится иконка папки github.com/instantsoft/icms2/blob/92b6d68da99909b3607561abf867ea6af8a8827e/templates/modern/controllers/content/category_view.tpl.php#L134
Можете сменить ее на любую из иконок, которые найдете в настройках сайта

Def, некорректно обновились с 2.16.3 до 2.17.0. И нет столбца, чтобы данные этого поля сохранить.
в install.php пакета обновления был такой код
if(!$core->db->isFieldExists('widgets_bind', 'url_mask_not', false)){ $core->db->query("ALTER TABLE `cms_widgets_bind` ADD `url_mask_not` TEXT NULL DEFAULT NULL COMMENT 'Отрицательные маски виджета' AFTER `groups_hide`;"); }
Видимо, нужно выполнить вручную в phpmyadmin, заменив cms_ на префикс вашего сайта
ALTER TABLE `cms_widgets_bind` ADD `url_mask_not` TEXT NULL DEFAULT NULL COMMENT 'Отрицательные маски виджета' AFTER `groups_hide`;
и там в установочкнике еще добавлялось поле описание для тегов. Его, скорее всего, тоже нет
ALTER TABLE `cms_tags` ADD `description` TEXT NULL DEFAULT NULL AFTER `tag`;
Вспомнилось, так как у одного из клиентов была 1 в 1 проблема. При этом движок ни на что не ругался, обновление прошло штатно, просто столбцы не создались.