ideasdigger

ideasdigger

hoho)
+328
Репутация
1002
Рейтинг
#1 Как создавать типы полей? 7 июля 2020 в 15:06


Добрый день!
Мне необходимо для каждой записи определенного типа контента в начале контента вставить статичный HTML.
Для того, чтобы вставлять в конец есть настройка в типе контента, но мне нужно именно в начало.
Я думаю, что лучше создать новый тип поля. В нём будет прописан необходимый HTML. Далее просто создать поле в этом типе контента и поставить его в самое начало перечня полей.
Вопрос: как правильно и грамотно это сделать?
Возможно, есть какая-то готовая инструкция, но я её не нашёл

De.Ground
html код статический? единый для всех? или для каждой записи уникальный?
#2 Есть ли возможность запретить редактирование отдельной записи после публикации ? 21 июня 2020 в 16:03


ideasdigger, спасибо, получилось то что хотелось сделать…
Посмотрел там рядом думал при удалении можно так же ограничить… а там нет подобного хука

вот тогда такой вопрос… если запретить удаление то как быть с черновиками??? получается что его тоже нельзя удалить? или есть какой-то хитрый ход что черновики можно удалять при этом удаление отправленых записей невозможно ??

Рачей
да, но есть хук в модели при удалении github.com/instantsoft/icms2/blob/master/system/controllers/content/model.php#L2389, добавить проверку
на заполненность $item['is_draft'] поля записи для понимания черновик или нет, и уже в зависимости пропускать далее или редиректить обратно)
#3 Убрать редиректы в ссылках 20 июня 2020 в 22:28


Можно добавить домены исключения) при которых редирект будет допустим на главную портала + трафик)

ideasdigger
Я так понимаю если оставлять редирект на главную, то нагрузка будет на сервер если очень много запросов.

Александр Сергеевич

возможно но с другой стороны это трафик)
#4 Есть ли возможность запретить редактирование отдельной записи после публикации ? 20 июня 2020 в 19:24


Надо как-то извернуться и не дать пользователю редактировать его отдельные записи. ТО есть он создал все хорошо… а потом раз, он ее видит а редактировать не может. Типа как в ВК. ???

Рачей
github.com/instantsoft/icms2/blob/master/system/controllers/content/actions/item_edit.php#L102 есть хук content_edit, сюда можно добавить событие блокирующее возможность редактировать
#5 Ник пользователя вместо id 20 июня 2020 в 12:37


ideasdigger,
Увы, не нашёл в каком событии подменять url.

Ris
есть хук, тут можно проверить заполненность поля и выполнить редирект
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
#6 Убрать редиректы в ссылках 19 июня 2020 в 23:09
Можно добавить домены исключения) при которых редирект будет допустим на главную портала + трафик)
#7 Ник пользователя вместо id 19 июня 2020 в 23:01
Зачем все 117?) если с учётом шаблона возможно)
но можно же проще, представим ситуации что ники уже уникальные, и при заполненности мы реализуем лишь редирект с /users/1 на /users/admin а на /users/admin отдаём профиль /users/1
#8 [ЕСТЬ РЕШЕНИЕ] Помогите настроить виджет в в файле стилей 19 июня 2020 в 22:55

Интересуюсь как изменить или удалить кнопку… Они мне о лыжах.

@Aliaksandr
в файле /template/default/widgets/alertcookie/alertcookie.tpl.php
удалить следующий участок если надо удалить кнопку
  1.  
  2. <div class="button_alertcookie">
  3. <?php echo html_input('button', LANG_CLOSE, LANG_CLOSE, array('class' => 'button',
  4. 'onclick' => 'icms.alertcookie.click('.$day.')')); ?>
  5. </div>
  6.  
если надо заменить текст кнопки
  1.  
  2. <div class="button_alertcookie">
  3. <?php echo html_input('button', 'Согласен', 'Согласен', array('class' => 'button',
  4. 'onclick' => 'icms.alertcookie.click('.$day.')')); ?>
  5. </div>
  6.  
#9 [ЕСТЬ РЕШЕНИЕ] Помогите настроить виджет в в файле стилей 19 июня 2020 в 01:05
скорее всего это изменить
  1.  
  2. .button_alertcookie{
  3. display: none;
  4. }
  5.  
#10 [ЕСТЬ РЕШЕНИЕ] Кто поможет оптимизировать запросы к БД чтобы снизить нагрузку на сервер? 24 января 2020 в 14:19

Где мне посмотреть тип таблицы?
Как мне это проанализировать и выяснить что к чему и как снизить нагрузку?

@AlexProfit
phpmyadmin будет удобно для откладки и для просмотра типа таблиц колонка тип, для понимания логики выборки по трудным запросам используйте ANALYZE, для понимания общей ситуации и поиска запросов которые тормозят выдачу в режиме реал тайм в sql SHOW PROCESSLIST, можно ещё конфиг my.cnf поправить что бы запросы на которые требуется более n-секунд записывались в файл, ну а решив проблемы с не оптимизированными запросами, для поднастройки конфига отлично подойдёт github.com/major/MySQLTuner-perl
#11 [ЕСТЬ РЕШЕНИЕ] Кто поможет оптимизировать запросы к БД чтобы снизить нагрузку на сервер? 24 января 2020 в 13:49

В данный момент на вашем сервере больше всего нагрузки создаётся процессом mysql. В нём висит два очень долгих процесса. В текущей ситуации вам необходимо обратиться к разработчику сайта, так как оптимизация настроек базы данных сильного результата не даёт. Нужно оптимизировать запросы к БД, чтобы они не выполнялись на протяжении такого количества времени.

@AlexProfit

Комменты часто добавляются? тип таблицы MyISAM или InnoDB?, у вас идёт копирование в tmp таблицу при выборке проанализируйте запрос с добавлением ANALYZE до SELECT
#12 Кэширование только для главной страницы сайта 21 января 2020 в 22:56

А всё таки. Может кто подскажет как кешировать только главную но все прочие не кешировать?

GoodMade
если поможет, был таск кэшировать определённые участки не зависимо от текущей системы кэширования, ситуация была решена с подтяжкой либы www.phpfastcache.com/ через composer и написание прослойки для удобной работы)
#13 Отправка формы без перезагрузки страницы 21 января 2020 в 22:52

Чтобы получить значения полей формы так:

@IamB
так я выше в ответе всё рассказал))
1 из вариантов модернизировать ваш
  1. templates/default/controllers/division/index.tpl.php
а именно участок
  1.  
  2. <?php
  3. $this->renderForm($form, $numbers, [
  4. //"action" => "",
  5. //"method" => "post",
  6. "submit" => ["title" => "Рассчитать", "id" => "calc"]
  7. ], $errors);
  8.  
  9. ?>
  10.  
изменить на
  1.  
  2. <?php
  3. $this->renderForm($form, $numbers, [
  4. 'form_id' => "id_form",
  5. //"action" => "",
  6. //"method" => "post",
  7. "submit" => ["title" => "Рассчитать", "id" => "calc"]
  8. ], $errors);
  9.  
  10. ?>
  11.  
и у вашей формы будет id не md5 строка а id_form )
#14 Вывести фильтр только на главной странице типа контента. Возможно? 21 января 2020 в 22:42

Возможно ли как-то запретить вывод фильтра в категориях типа контента?

Def
а так через хук для данного типа контента) из кеша получить активную категорию если она не рут и переопределить $ctype['options']['list_show_filter'])
#15 Отправка формы без перезагрузки страницы 21 января 2020 в 22:32

1. Как в шаблоне получить id формы? Чтобы не ковырять зачения так: var source = $('#source').val();

@IamB
а причём id формы если в примере
  1. $('#source').val();
получения значения поля по id ?
в icms2 id формы динамический
  1. md5(microtime(true))
если не передан атрибут
  1. $attributes['form_id']
а так как вариант получить объект формы при действии для вложенного через
  1. var form = $(this).closest("form");

2. Почему в JS адрес обработчика формы задаётся фактически экшеном url: 'calc' ?

@IamB
наверное потому что action у формы такой? а в ajax url в js перехватчике не определён? или я не понял ситуацию))

3. В моём варианте не работает атрибут required в input, что досадно.

@IamB
возможно ваша js функция вызывается через click а не submit и если же так, то в коде не присутствует цикла проверки полей с учётом required)
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.