A

Absolute134

+9
Репутация
17
Рейтинг
#1 [ЗАКРЫТО] Счетчик количества просмотров дает нагрузку на БД 24 сентября 2021 в 16:24

Если отключить Memcached, сайт загружается ещё быстрее, что очень удивительно!

Вадим Нарочный

Попробуйте выполнить настройку Memcached  по инструкции Битрикса: 

  1. https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=32&LESSON_ID=9421

Так же не используйте Memcached  с двух или более сайтов одновременно без добавления уникальных идентификаторов ключей.

Но лучше перейдите на Redis или и вовсе откажитесь от подобных кэширующих сервисов, если нагрузка на БД невелика.   

#2 [ЗАКРЫТО] Счетчик количества просмотров дает нагрузку на БД 23 сентября 2021 в 18:55

Да. Memcached

Вадим Нарочный

Попробуйте отключить Memcached. Очень похоже, что причина в нем.

#3 Все ли используют WAMP? 2 июля 2021 в 21:24


правильно — еще бы довольно дорогой PhpStorm этого не умел

@Absolute134
Вы удивитесь, но бесплатный notepad++ тоже это умеет))

Нифигаccе о-го-гошеньки
Не пробовал настраивать sftp в notepad++)) Здесь наверное больше вопрос привычки. Массовый поиск по файлам, например, тоже можно через grep на сервере — удобно ли это? Как по мне — так не очень. Хотя кому как, мне привычнее масштабные работы делать на локалке, а уже потом деплоить на сервер.
#4 Все ли используют WAMP? 2 июля 2021 в 18:51

1. Папка www видна, сразу.
2. Адрес localhost по умолчанию в браузере

@Evg
localhost ведет на папку www, а так можно еще создавать виртуальные хосты простым созданием папки и через адресную строку будет доступен например mysite.test ведущий на папку mysite. Здесь подробнее: laragon.org/docs/pretty-urls.html
Еще SSL сертификаты из меню nginx или apache генерируются и сразу подключаются автоматически — тоже удобно. Интересно, что portable-версия создана, вроде как чтобы была возможность скинуть папку Laragon, например на флэшку и продолжить работу на др компе, только не понятно, что будет с innoDB-таблицами. Помнится файлы MySIAM можно было просто так таскать.

Абсолютно без разницы. Например, вот так у меня сейчас — это файлы, открытые вообще на разных серверах. И чтобы прямо на сервере сохранить изменения, надо всего лишь нажать на кнопку (в рамке), без необходимости заливать файлы.

Нифигаccе о-го-гошеньки
Ну, правильно — еще бы довольно дорогой PhpStorm этого не умел))
#5 Все ли используют WAMP? 2 июля 2021 в 16:59
Раньше юзал XAMPP, недавно открыл для себя Laragon — удобная компактная штука с полностью изолированной от ОС средой. Даже русский язык есть. Скачал Portable-версию (34 мб), без проблем развернул нужный мне конфиг на локалке с php7.3, mysql 5.7. Позволяет быстро менять версии PHP, Apache на nginx и наоборот и еще куча разных дополнений от node.js до Питона с mongodb. По уму докер рулит, конечно. Но слишком громоздкая среда получается.
На сервере — тоже тема работать, но когда небольшие изменения. А когда у тебя в редакторе кода несколько вкладок с разными участками кода разных файлов, которые зависят друг друга, то на локалке оно конечно удобнее))
#6 Поле - справочник (классификатор, реестр) 19 мая 2021 в 17:07


@Absolute134, возможно такие вопросы лучше задавать на специальных форумах. Php+Mysql.

Lora
Дык вроде здесь люди разработкой занимаются, исходя из названия раздела. Собственно, по SQL у меня знаний и не хватает, поэтому и спрашиваю. Остальное (js, php) — не большая проблема. Возможно, есть какие-то механизмы самой CMS о которых я не знаю и которые позволят решить данную задачу.
Интереса ради:
Попробовал LIKE с кириллицей в запросе на таблице 14 тыс. записей — вроде быстро (тысячные доли секунды).
Попробовал на таблице 37 тыс записей при чем с латиницей — уже 0.07 секунды. Хз кароч.
#1 Поле - справочник (классификатор, реестр) 19 мая 2021 в 16:23
Допустим, есть какая-то база с +100500 строками, значения из которой надо присваивать единице контента, допустим, организации в каталоге организаций. Пусть (для примера) это будет ОКТМО.
Или например, у нас есть каталог ВУЗов и нужно присвоить несколько значений каждому ВУЗу из ОКСО. Это просто грубые примеры, чтобы было ясно в чем суть.
Понятно, что в поле "Список — мультивыбор" такой справочник не засунешь. Да и записи из справочника нужно удалять/добавлять периодически.
+ оставить возможность для фильтрации по такому полю для юзера.

Наверное, это еще не бигдата. Тем не менее. Как это реализовать максимально производительно на базе MySQL? "Расширяемый список" с аддонса — что-то похожее, но там все строки выводятся сразу.

Возьмем пример строчки ОКТМО:
  1.  
  2. id code name
  3. 8 14605408 Афанасьевское
  4.  
Юзер начинает вводить в фильтр "Афан" — делаем аякс-запрос на сервер, и возвращаем из таблицы все записи начинающиеся на "афан". Собственно, какой запрос MySQL здесь лучше использовать? И как правильно построить индексы для такой таблицы?

  1. SELECT * FROM `oktmo` WHERE name LIKE 'афан%'
Плохой вариант?
#7 CyberPanel + OpenLiteSpeed Server??? 13 мая 2021 в 16:12

Одной киберпанелью разнообразие выбора не ограничивается.
Существует масса бесплатных панелей управления вебсервером.

Ris
А что скажете о Virtualmin и ISPConfig ?? Этим панелям много лет и, как понимаю, они продолжают развиваться.
#8 CyberPanel + OpenLiteSpeed Server??? 10 мая 2021 в 17:17
Тема актуальна. Как я понял Ispmanager Lite 5 — прекращается поддержка и скоро ее нельзя будет использовать?? То есть ISP навязывают принудительный переход на 6 версию?? Если так, то это звездец… У меня около 40 сайтов на самых разных CMS на ISP 5 Lite.
Помнится, когда вышла 5-ка — 4-ые версии продолжали работать и даже были вечные лицензии.
#9 адаптивность таблицы 10 мая 2021 в 15:13

Извиняюсь, а в instant 2.13.1?

fincheck
Ну, вы спросили про демку на оф.сайте icms. Вроде в более ранних версиях тоже указывалось, где лежат файлы шаблона отображения списка, когда вы его устанавливаете.
#10 адаптивность таблицы 9 мая 2021 в 19:13
В \templates\modern\content\default_list_table.tpl.php
Выпилите классы d-none .
Они срабатывают на брекпоинте <= 991
#11 Рейтинг: 10 звезд вместо 5; голосовать за свою запись; второй рейтинг 23 марта 2021 в 17:54
Народ, нет ли компонента "Рейтинг" отдельно от CMS??
Просто возникла мысль клонировать его… Или там куча зависимостей и оно намертво вшито в CMS??
Просто со вторым рейтингом — засада… С наскока, как предыдущие проблемки — никак не решается))


Нечто похожее instantcms.ru/addons/goodmade-field-stars.html .

@noname
Это затестил. По факту — просто поле, где автор может выставить себе звёздочки)) В общем, близко не рейтинг.
#12 Рейтинг: 10 звезд вместо 5; голосовать за свою запись; второй рейтинг 19 марта 2021 в 16:31
Отрицательные значения тоже проскакивают)
В общем, валидация от накрутки (скрутки):
В system\controllers\rating\actions\vote.php
Вместо:
  1. $is_valid = ($this->validate_sysname($target_controller)===true) &&
  2. ($this->validate_sysname($target_subject)===true) &&
  3. is_numeric($target_id) &&
  4. (
  5. ($direction && in_array($direction, array('up', 'down'))) ||
  6. ($score && is_numeric($score))
  7. );
Написать:
  1. $is_valid = ($this->validate_sysname($target_controller)===true) &&
  2. ($this->validate_sysname($target_subject)===true) &&
  3. is_numeric($target_id) &&
  4. (
  5. ($direction && in_array($direction, array('up', 'down'))) ||
  6. ($score && is_numeric($score) && ($score > 0 && $score < 11))
  7. );
#13 Рейтинг: 10 звезд вместо 5; голосовать за свою запись; второй рейтинг 19 марта 2021 в 15:35


По первому пункту можете нарисовать сколько угодно звезд тут github.com/instantsoft/icms2/blob/master/templates/modern/controllers/rating/widget_stars.tpl.php#L23

Loadырь
Ха, действительно… Значение никак не фильтруется)) Это возможность для накрутки.
Написал в цикле.
  1. <?php
  2. $r_count = 0;
  3. while($r_count < 10){
  4. ++$r_count;
  5. ?>
  6. <div class="star rating pr-1" data-rating="<?php echo $r_count; ?>">
  7. <?php html_svg_icon('solid', 'star'); ?>
  8. </div>
  9. <?php } ?>
Работает 10 звезд. Из интереса поставил в data-rating="100" и проголосовал — 100 и записало в бд)) Это конечно надо будет фильтровать.
#14 Рейтинг: 10 звезд вместо 5; голосовать за свою запись; второй рейтинг 19 марта 2021 в 13:33
п. 2 — решил. Теперь можно голосовать за свою запись.
В system\controllers\rating\hooks\content_before_item.php
Вместо:
  1. $is_rating_allowed = cmsUser::isAllowed($ctype['name'], 'rate', true, true) && ($item['user_id'] != $this->cms_user->id);
Написать:
  1. $is_rating_allowed = cmsUser::isAllowed($ctype['name'], 'rate', true, true);
В system\controllers\rating\actions\vote.php
Вместо:
  1. if ($target['user_id'] == $this->cms_user->id || !cmsUser::isAllowed($target_subject, 'rate')){
  2. return $this->cms_template->renderJSON(array(
  3. 'success' => false,
  4. 'message' => LANG_RATING_DISABLED
  5. ));
  6. }
Написать:
  1. if (!cmsUser::isAllowed($target_subject, 'rate')){
  2. return $this->cms_template->renderJSON(array(
  3. 'success' => false,
  4. 'message' => LANG_RATING_DISABLED
  5. ));
  6. }
п.1, и п.3 — актуально, ищу решение.


Нечто похожее instantcms.ru/addons/goodmade-field-stars.html .

@noname
Спасибо. Буду тестить.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.