irbis

irbis

+141
Репутация
1276
Рейтинг
0
irbis irbis Хак: Умное Кеширование и Версионность в Javascript/CSS (1.x) 6 лет назад
этим должен заниматься вебсервер, а не php
а можно ссылочку на настройку этого чуда или текстом написать
0
irbis irbis Автоповорот изображений 1.10+ 6 лет назад
Отличное решение! А то держатели яблок и старых версий Android надоели жаловаться на то, что их фото грузится перевернутым.
Лично у меня на Android 5.1.1 проблем не было. Фотографировал и вертикально и горизонтально - всегда прямо вставала.
От меня +1!
0
irbis irbis Хак: Умное Кеширование и Версионность в Javascript/CSS (1.x) 6 лет назад
Плюсы идут - это радует! Надеюсь, кому-нибудь пригодится. Хотелось бы еще критику услышать или это решение идеально? joke
+1
irbis irbis Бесплатный плагин NeoMessenger 2.1.1 6 лет назад
Я всегда только ЗА! Стараюсь своими правками вносить вклад в поддержку данного плагина!
+1
irbis irbis Бесплатный плагин NeoMessenger 2.1.1 6 лет назад
Также, кому интересно, я переписал функцию получения списка контактов. Точнее немного ее оптимизировал.
На моем хостинге до оптимизации запрос получения контактов занимал 0.0766 сек., после оптимизации 0.0048 сек. и хостинг не ругается на перерасход ресурсов!
На не оптимизированном сервере у меня до оптимизации запрос занимал около 26 сек., после оптимизации 1.2 сек.
Что сделано:
файл: /plugins/p_neomessenger/nmcore.php
изменил функцию:
Код PHP:
  1. // Получает список контактов
  2. public static function getContacts($user_id)
  3. {
  4. $inDB = cmsDatabase::getInstance();
  5. $res = $inDB->query("
  6. SELECT c.*, u.id as id, u.nickname as nickname, u.login as login, p.imageurl as avatar, IFNULL(COUNT(m.id), 0) as new_messages, IF(o.user_id, 1, 0) as online
  7. FROM cms_user_contacts c
  8. JOIN cms_users as u ON u.id = c.contact_id
  9. LEFT JOIN cms_user_profiles as p ON p.user_id = c.contact_id
  10. LEFT JOIN cms_user_msg as m ON m.from_id = c.contact_id AND m.to_id = c.user_id AND m.is_new = 1
  11. LEFT JOIN cms_online as o ON o.user_id = c.contact_id
  12. WHERE c.user_id = '$user_id' AND c.contact_id > 0
  13. GROUP BY c.contact_id
  14. ORDER BY c.date_last_msg desc
  15. LIMIT 1000
  16. ");
  17. $contacts = array();
  18. if ($inDB->num_rows($res))
  19. {
  20. while ($contact = $inDB->fetch_assoc($res))
  21. {
  22. array_push($contacts, array(
  23. 'id' => (int) $contact['id'],
  24. 'url' => cmsUser::getProfileURL($contact['login']),
  25. 'avatar' => cmsUser::getUserAvatarUrl($contact['id'], 'small', $contact['avatar']),
  26. 'online' => $contact['online'],
  27. 'nickname' => $contact['nickname'],
  28. 'new_messages' => $contact['new_messages']
  29. ));
  30. }
  31. }
  32. if (self::isNoticesExists($user_id))
  33. {
  34. array_unshift($contacts, array(
  35. 'id' => '-1',
  36. 'nickname' => 'Уведомления',
  37. 'avatar' => '/plugins/p_neomessenger/img/information.png',
  38. 'new_messages' => self::getNewNoticesCount($user_id)
  39. ));
  40. }
  41. return $contacts;
  42. }
на:
Код PHP:
  1. // Получает список контактов
  2. public static function getContacts($user_id)
  3. {
  4. $inDB = cmsDatabase::getInstance();
  5. $res = $inDB->query("
  6. SELECT c.*, u.id as id, u.nickname as nickname, u.login as login, p.imageurl as avatar
  7. FROM cms_user_contacts c
  8. JOIN cms_users as u ON u.id = c.contact_id
  9. LEFT JOIN cms_user_profiles as p ON p.user_id = c.contact_id
  10. WHERE c.user_id = '$user_id' AND c.contact_id > 0
  11. ORDER BY c.date_last_msg desc
  12. LIMIT 1000
  13. ");
  14. $contacts = array();
  15. if ($inDB->num_rows($res))
  16. {
  17. while ($contact = $inDB->fetch_assoc($res))
  18. {
  19. array_push($contacts, array(
  20. 'id' => (int) $contact['id'],
  21. 'url' => cmsUser::getProfileURL($contact['login']),
  22. 'avatar' => cmsUser::getUserAvatarUrl($contact['id'], 'small', $contact['avatar']),
  23. 'online' => $inDB->rows_count('cms_online', 'user_id = '.$contact['contact_id']),
  24. 'nickname' => $contact['nickname'],
  25. 'new_messages' => $inDB->get_field('cms_user_msg', 'to_id = '.$user_id.' AND is_new = 1 AND from_id = '.$contact['contact_id'], 'count(*)')
  26. ));
  27. }
  28. }
  29. if (self::isNoticesExists($user_id))
  30. {
  31. array_unshift($contacts, array(
  32. 'id' => '-1',
  33. 'nickname' => 'Уведомления',
  34. 'avatar' => '/plugins/p_neomessenger/img/information.png',
  35. 'new_messages' => self::getNewNoticesCount($user_id)
  36. ));
  37. }
  38. return $contacts;
  39. }
0
irbis irbis Бесплатный плагин NeoMessenger 2.1.1 6 лет назад
Столкнулся недавно с подобной проблемой вылета авторизации в другом компоненте.
Напомню, что у меня при массовой отправке сообщений происходит смена сессии, т.е. отправляю от админа, а после отправки я авторизован, как другой пользователь.
Решение в следующем:
файл /plugins/p_neomessenger/nmajax.php
заменить:
Код PHP:
  1. // отправляем всем по списку
  2. foreach ($userlist as $user)
  3. {
  4. $count[] = cmsUser::sendMessage(USER_MASSMAIL, $user['id'], $message);
  5. }
на:
Код PHP:
  1. // отправляем всем по списку
  2. foreach ($userlist as $user_mass)
  3. {
  4. $count[] = cmsUser::sendMessage(USER_MASSMAIL, $user_mass['id'], $message);
  5. }
т.е. меняем название массива $user на $user_mass или любое другое на свое усмотрение.
0
irbis irbis Хак: Оценка записей на стене пользователя (1.х) 6 лет назад
Напишите ссылку, пожалуйста, я не нашел на сайте подобное. Конечно, я и не особо время на поиск тратил. ))
+1
irbis irbis Бесплатный плагин NeoMessenger 2.1.1 6 лет назад
/core/classes/user.class.php
Код PHP:
  1. private function checkSpoofingSession() {
  2. // первый раз зашли
  3. /*if(!isset($_SESSION['user_net'])) {
  4. $octets = explode('.', $_SERVER['REMOTE_ADDR']);
  5. $_SESSION['user_net'] = rtrim($_SERVER['REMOTE_ADDR'], end($octets));
  6. return true;
  7. }
  8. return mb_strstr($_SERVER['REMOTE_ADDR'], $_SESSION['user_net']);*/
  9. return true;
  10. }
0
irbis irbis Бесплатный плагин NeoMessenger 2.1.1 6 лет назад
"Про" - просто, не дописал.
0
irbis irbis Бесплатный плагин NeoMessenger 2.1.1 6 лет назад
За вывод смайлов отвечает функция getSmiles() в файле /plugins/p_neomessenger/nmcore.php
Про перепишите код согласно той инструкции.
По поводу разлогирования - у себя такой глюк не наблюдаю, пользуюсь еще с первых версий, вносил частенько свои правки.
От себя рекомендую еще отключить привязку к IP-адресу пользователя, чтобы при работа с мобильных устройств авторизация не слетала.
0
irbis irbis Модуль "Меню Универсального каталога" 6 лет назад
Рад, что пригодился мой модуль, можете просто выложить в своем блоге с ссылкой на мой, типа сделано на основе Модуль "Меню Универсального каталога"
0
irbis irbis Модуль "Меню Универсального каталога" 6 лет назад
Вверху обновил и выложил версию с вложенностью до 4-х уровней
Делал давно, сейчас можно было бы сделать проще, но, извините, не охота...
0
irbis irbis Бесплатный плагин NeoMessenger 2.1.1 6 лет назад
Проблема была в шаблоне, он адаптивный и там 2 раза в коде встречался вызов пользовательского меню.
0
irbis irbis Компонент "Ротатор баннеров" InstantCMS 2+ 6 лет назад
Да, проблема. Даже если добавить SWF в исключения, то нужно еще в одном файле JS шаблона вносить изменения и будет работать, но криво.
Вот не хотел я SWF вообще внедрять в этот компонент... facepalm
Подумаю, что можно сделать.
+2
irbis irbis Обновление InstantCMS 2.2.0 6 лет назад
Добрый день,

Дошел до компонента Теги и обнаружил ошибку. При редактировании тега в панели управления, при сохранении пишет:
Тег «новости» объединен с тегом «новости»
И тег удаляется! Неправильно работает функция сравнения, помогите исправить. Проверил на чистой системе.
0
irbis irbis Доработка InstantShop 6 лет назад
и курс 1 руб = 1 USD
был бы такой курс реальным... ))
0
irbis irbis Компонент "Ротатор баннеров" InstantCMS 2+ 6 лет назад
ТЗ не поступало, заниматься самому пока не когда, да и для своих целей нет необходимости.
+1
irbis irbis Компонент "Ротатор баннеров" InstantCMS 2+ 6 лет назад
А почему в этом случае нельзя просто создать страницу с ценами всех баннерных позиций или страницу с ценой определенной позиции. И ваш пустой баннер (рекламный) вести на эту страницу.
Мне кажется, все логично! joke
+1
irbis irbis Компонент "Ротатор баннеров" InstantCMS 2+ 6 лет назад
Ага, есть такое. Сделайте пару действий:
Файл /system/controllers/rotatorbanners/widgets/banner/widget.php
удалить строку 9:
Код PHP:
  1. $this->css_class = 'wg_banner';
после строки 16:
Код PHP:
  1. $banner = $model->getBannerShow($position_id);
добавить строку:
Код PHP:
  1. $this->css_class = 'wg_banner id'.$banner['id'];
Файл /templates/default/controllers/rotatorbanners/widgets/banner/banner.tpl.php
строку 6:
Код PHP:
  1. .wg_banner img {
заменить на:
Код PHP:
  1. .wg_banner.<?php echo 'id'.$banner['id']; ?> img {
0
irbis irbis Компонент "Ротатор баннеров" InstantCMS 2+ 6 лет назад
При выпуске обновления, если понадобится, добавлю в настройки компонента в админке.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.