html код статический? единый для всех? или для каждой записи уникальный?
Добрый день!
Мне необходимо для каждой записи определенного типа контента в начале контента вставить статичный HTML.
Для того, чтобы вставлять в конец есть настройка в типе контента, но мне нужно именно в начало.
Я думаю, что лучше создать новый тип поля. В нём будет прописан необходимый HTML. Далее просто создать поле в этом типе контента и поставить его в самое начало перечня полей.
Вопрос: как правильно и грамотно это сделать?
Возможно, есть какая-то готовая инструкция, но я её не нашёл
ideasdigger
да, но есть хук в модели при удалении github.com/instantsoft/icms2/blob/master/system/controllers/content/model.php#L2389, добавить проверку
ideasdigger, спасибо, получилось то что хотелось сделать…
Посмотрел там рядом думал при удалении можно так же ограничить… а там нет подобного хука
вот тогда такой вопрос… если запретить удаление то как быть с черновиками??? получается что его тоже нельзя удалить? или есть какой-то хитрый ход что черновики можно удалять при этом удаление отправленых записей невозможно ??
на заполненность $item['is_draft'] поля записи для понимания черновик или нет, и уже в зависимости пропускать далее или редиректить обратно)
Я так понимаю если оставлять редирект на главную, то нагрузка будет на сервер если очень много запросов.Можно добавить домены исключения) при которых редирект будет допустим на главную портала + трафик)
возможно но с другой стороны это трафик)
github.com/instantsoft/icms2/blob/master/system/controllers/content/actions/item_edit.php#L102 есть хук content_edit, сюда можно добавить событие блокирующее возможность редактировать
Надо как-то извернуться и не дать пользователю редактировать его отдельные записи. ТО есть он создал все хорошо… а потом раз, он ее видит а редактировать не может. Типа как в ВК. ???
есть хук, тут можно проверить заполненность поля и выполнить редирект
ideasdigger,
Увы, не нашёл в каком событии подменять url.
github.com/instantsoft/icms2/blob/597aea4b76bd549e7d685d4df169484b8c01d89b/system/controllers/users/actions/profile.php#L11
а получение юзера по nickname добавить тут github.com/instantsoft/icms2/blob/597aea4b76bd549e7d685d4df169484b8c01d89b/system/controllers/users/frontend.php#L43
но можно же проще, представим ситуации что ники уже уникальные, и при заполненности мы реализуем лишь редирект с /users/1 на /users/admin а на /users/admin отдаём профиль /users/1
в файле /template/default/widgets/alertcookie/alertcookie.tpl.phpИнтересуюсь как изменить или удалить кнопку… Они мне о лыжах.
удалить следующий участок если надо удалить кнопку
<div class="button_alertcookie"> 'onclick' => 'icms.alertcookie.click('.$day.')')); ?> </div>
<div class="button_alertcookie"> 'onclick' => 'icms.alertcookie.click('.$day.')')); ?> </div>
.button_alertcookie{ display: none; }
phpmyadmin будет удобно для откладки и для просмотра типа таблиц колонка тип, для понимания логики выборки по трудным запросам используйте ANALYZE, для понимания общей ситуации и поиска запросов которые тормозят выдачу в режиме реал тайм в sql SHOW PROCESSLIST, можно ещё конфиг my.cnf поправить что бы запросы на которые требуется более n-секунд записывались в файл, ну а решив проблемы с не оптимизированными запросами, для поднастройки конфига отлично подойдёт github.com/major/MySQLTuner-perlГде мне посмотреть тип таблицы?
Как мне это проанализировать и выяснить что к чему и как снизить нагрузку?
В данный момент на вашем сервере больше всего нагрузки создаётся процессом mysql. В нём висит два очень долгих процесса. В текущей ситуации вам необходимо обратиться к разработчику сайта, так как оптимизация настроек базы данных сильного результата не даёт. Нужно оптимизировать запросы к БД, чтобы они не выполнялись на протяжении такого количества времени.
Комменты часто добавляются? тип таблицы MyISAM или InnoDB?, у вас идёт копирование в tmp таблицу при выборке проанализируйте запрос с добавлением ANALYZE до SELECT
если поможет, был таск кэшировать определённые участки не зависимо от текущей системы кэширования, ситуация была решена с подтяжкой либы www.phpfastcache.com/ через composer и написание прослойки для удобной работы)А всё таки. Может кто подскажет как кешировать только главную но все прочие не кешировать?
так я выше в ответе всё рассказал))Чтобы получить значения полей формы так:
1 из вариантов модернизировать ваш
templates/default/controllers/division/index.tpl.php
<?php $this->renderForm($form, $numbers, [ //"action" => "", //"method" => "post", "submit" => ["title" => "Рассчитать", "id" => "calc"] ], $errors); ?>
<?php $this->renderForm($form, $numbers, [ 'form_id' => "id_form", //"action" => "", //"method" => "post", "submit" => ["title" => "Рассчитать", "id" => "calc"] ], $errors); ?>
а так через хук для данного типа контента) из кеша получить активную категорию если она не рут и переопределить $ctype['options']['list_show_filter'])Возможно ли как-то запретить вывод фильтра в категориях типа контента?
а причём id формы если в примере1. Как в шаблоне получить id формы? Чтобы не ковырять зачения так: var source = $('#source').val();
$('#source').val();
в icms2 id формы динамический
если не передан атрибут
$attributes['form_id']
var form = $(this).closest("form");
наверное потому что action у формы такой? а в ajax url в js перехватчике не определён? или я не понял ситуацию))2. Почему в JS адрес обработчика формы задаётся фактически экшеном url: 'calc' ?
возможно ваша js функция вызывается через click а не submit и если же так, то в коде не присутствует цикла проверки полей с учётом required)3. В моём варианте не работает атрибут required в input, что досадно.