Перейти к контенту

Denis Chursinov

Клиенты
  • Число публикаций

    679
  • Регистрация

  • Последнее посещение

  • Дней в топе

    85

Ответы

  1. автора Denis Chursinov сообщение в теме на вопрос Проблемы с отправкой сообщений, ошибка 504 отмечен, как решение вопроса   
    Если вы не метите по 100 человек в минуту, то нагрузить или затормозить форум этот запрос не сможет
     
    Показ ботов не влияет, а таблица spider_logs, в которую пишется журнал ботов растет очень быстро. Лучше отключить.
     
    Наверняка настройки остались те же, проблема может быть в другой форме записи адреса сервера. Может  это поможет
  2. автора Denis Chursinov сообщение в теме на вопрос Криво отображаются смайлики в сообщениях отмечен, как решение вопроса   
    нет, никак со значением 2 работать не будет. Нужно настраивать для отдельных папок или поддоменов. Если php стоит как модуль апача, то в апачевском конфиге можно выставить для конкретной папки значение. Если php-fpm, то через .user.ini в папке форума или в conf_global или initdata добавлять что-то вроде ini_set('mbstring_func_overload',0); . Эта настройка в разных версиях php может быть выставлена в разных местах.  
  3. автора Denis Chursinov сообщение в теме на вопрос Обвновление CKeditor отмечен, как решение вопроса   
    Обновить CKEditor нельзя, тому есть как минимум 2 причины.
    1. В IPB 3 используется версия CKEditor работающая через prototype, а последние версии работают через jQuery.  Prototype является основой всего JS форума.
    2. CKeditor ничего не знает о бб-кодах, он отправляет готовый html.
    В ИПБ используется дописанная инвижином версия редактора. Там добавлены костыли для конвертирования ббкодов в хтмл и обратно и куча еще всякой специфики. Хотите новый редактор - вперед на четвертую версию.
  4. автора Denis Chursinov сообщение в теме на вопрос проблемы с чатом, HELP отмечен, как решение вопроса   
    1 - кнопочкой бб-коды
    2 - жмем правой кнопкой и копируем урл картинки, потом кладем картинку на сайт, чтоб она была по этому урл.
  5. автора Denis Chursinov сообщение в теме на вопрос Не могу удалить пользователя отмечен, как решение вопроса   
    Исправить в админке - поддержка - проверка базы данных
    Причины неизвестны. Кто-то зачем-то дропнул таблицы. В эти таблицы часто идет запись, и они первыми бьются при неожиданном отключении MySQL.
  6. автора Denis Chursinov сообщение в теме на вопрос Как убрать из редактора возможность смены шрифта? отмечен, как решение вопроса   
    Попробуйте запретить соответствующий ббкод в админке
  7. автора Denis Chursinov сообщение в теме на вопрос Плавающая кнопка "наверх"? отмечен, как решение вопроса   
    скопировать ее css-класс к себе в стиль

    #backtotop { width: 24px; height: 24px; line-height: 20px; left: 50%; position: fixed; display: block; background: #BDBDBD; text-align: center; -moz-border-radius: 16px; -webkit-border-radius: 16px; border-radius: 16px; opacity: 0.4; outline: 0; bottom: 16px; } #backtotop:hover {     background: #af286d;     color: #fff;     opacity: 1 }
  8. автора Denis Chursinov сообщение в теме на вопрос Транслитерация для ТЕГОВ в адресной строке браузера отмечен, как решение вопроса   
    Думаю, что никак. Это тянет за собой целую историю.

    В FURL топиков, форумов и т.д. название ни на что не влияет. При обработке FURL движок отсекает все, кроме цифры в начале site.com/index.php?/topic/1-dobro-pozhalovat/ ничем не отличается от site.com/index.php?/topic/1-ЛЮБАЯ СТРОКА/ подсистема обработки FURL все равно превратит ее в site.com/index.php?showtopic=1 .

    В случае тегов работает совсем другой механизм. FURLом является только часть site.com/index.php?/tags/blog , остальное - параметры запроса. Ссылка преобразуется во что-то вроде site.com/index.php?app=core&module=search&section=tags&search_term="вот тут само название тега". Таким образом все, что после /tags/blog/, является строкой поискового запроса и коверкать ее нельзя. 

    Теоретически можно было бы написать однозначно обратимый алгоритм транслитерации, чтобы b=б и б=b . Добавить в запрос еще один параметр типа, translit=1 и переводить из транслита обратно в русский при обработке. 
  9. автора Denis Chursinov сообщение в теме на вопрос Редактирование Тегов IPB 3.4.7 отмечен, как решение вопроса   
    Жмем на первом сообщении темы "изменить" из аяксового редактирования переходим в расширенную форму. 
  10. автора Denis Chursinov сообщение в теме на вопрос description и keywords? отмечен, как решение вопроса   
    Без изменений в коде логику автоматической генерации не изменить. В админке есть редактор мета-тегов, в нем создавайте свой keyword и description для каждой конкретной страницы, они имеют приоритет над автоматическими. Если вы двигаете конкретные страницы под конкретные запросы, то такого способа изменения будет достаточно. 
  11. автора Denis Chursinov сообщение в теме на вопрос Поставить ограничение по времени перед написанием сообщения отмечен, как решение вопроса   
    Ну давайте для всех напишем, что в IP.Board 3 есть 3 ограничения флуда:
     
    1. Ограничение на количество сообщений в сутки.
    2. Склейка нескольких сообщений подряд в одной теме в течении нескольких минут в одно.
    3. Задержка в секундах между отправкой сообщений. АЦ-настройки-настройки безопасности-Флуд-контроль — интервал задержки(в секундах) .
  12. автора Denis Chursinov сообщение в теме на вопрос Подпись не показывается гостям отмечен, как решение вопроса   
    Ну в вашем случае чуть по другому Системные настройки - пользователи - профили 
  13. автора Denis Chursinov сообщение в теме на вопрос Сравнение внутри стиля отмечен, как решение вопроса   
    if test=
    Правильно будет:
    <if test="$this->memberData['pp_thumb_photo'] == $this->settings['defava']"> код </if>  
  14. автора Denis Chursinov сообщение в теме на вопрос Установка IPB на сайт отмечен, как решение вопроса   
    Ну тогда не знаю, у вас вообще php на сервере установлен? check_requirements.php из папки tools дистрибутива что говорит?
  15. автора Denis Chursinov сообщение в теме на вопрос ID форума отмечен, как решение вопроса   
    Все верно $this->request['f'] - сквозное решение. ipsRegistry выставляет этот параметр для совместимости.
  16. автора Denis Chursinov сообщение в теме на вопрос Ломаются аватарки только Facebook регистраций отмечен, как решение вопроса   
    Это решение проблемы хвоста из параметров. А я имел в виду когда книгорожье возвращает "REST API is deprecated for versions v2.1 and higher".
     
    Решение проблемы с хвостом запроса можно описать как, найдите в admin/sources/classes/member/photo.php такой код:
     
    if ( $userData['pic_big'] || $userData['pic'] ) { $large = $userData['pic_big']; $ext = IPSText::getFileExtension( $userData['pic_big']); $file = 'photo-' . $member['member_id'] . '.' . $ext; $mokay = false; и замените вот таким
    if ( $userData['pic_big'] || $userData['pic'] ) { $large = $userData['pic_big']; $ext = IPSText::getFileExtension( $userData['pic_big'] ); /* Facebook sometimes applies a query string to the end of an image - we need to exclude that as they do not work well on Windows */ if ( strpos( $ext, '?' ) !== FALSE ) { $ext = explode( '?', $ext ); $ext = array_shift( $ext ); } $file = 'photo-' . $member['member_id'] . '.' . $ext; $mokay = false;
    Решение же проблемы с апи упирается в обновление всего механизма связи с фб
  17. автора Denis Chursinov сообщение в теме на вопрос Предпросмотр темы для всех отмечен, как решение вопроса   
    Можно намного лучше. Старайтесь пользовать встроенные классы, когда это возможно. Идея прямого запроса нехороша сама по себе, но раз уж так, то:

    $my_list = ipsRegistry::DB()->buildAndFetch(array( 'select' => 'post', 'from' => 'posts', 'where' => 'topic_id = '.$data['_tid'], 'limit' => array(0,1))); там и префикс подберется и переменная отфильтруется. Вообще $data['_tid'] - числовой параметр и его можно integer($data['_tid'])
  18. автора Denis Chursinov сообщение в теме на вопрос Использование кода в темах отмечен, как решение вопроса   
    Это надо ликбез по полной начинать
    Для начала надо перевести форум в режим разработчика через define('IN_DEV', 1); (форум работать перестанет, будет доступна только админка) . Потом пойти в управление приложениями в админке и в выпадающем меню какого-нибудь приложения выбрать "пользовательские модули". Там добавить новый модуль . Он будет исполняться по ?app=Приложение&module=КЛЮЧ МОДУЛЯ&section=ИМЯ СЕКЦИИ , девелопер мод можно выключать.
    Сами файлы будут лежать в папке приложения в подпапке modules_public, например, admin/applications/core/modules_public/help . Собственно этот модуль и стоит взять за основу. Там есть defaultSection.php, в котором указана секция по умолчанию, если нет &section= в урле. А дальше имясекции.php и в нем обязателен метод doExecute который и вызывается при обращении. В принципе можно и вообще со своим модулем не запариваться а сунуть свою секцию в существующий модуль.
    А в методе 
    $this->registry->output->addContent( 'Вот тут я вывожу всякий html' ); $this->registry->output->sendOutput(); Соответственно, ваш код должен что-то понаделать, результатом должен стать некий html-код, который будет выведен в globalTemplate вместо {$content} (между шапкой и подвалом). Можно создать свой шаблон в стиле и вызывать его через $this->registry->output->getTemplate('группа шаблонов')->имя шаблона(переменные шаблона). Эта функция возвращает шаблон с подставленными переменными.
  19. автора Denis Chursinov сообщение в теме на вопрос минимальный размер шаблона отмечен, как решение вопроса   
    У вас и так .ipbwrapper имеет min-width: 1000px;
    Еще стоит выставить #user_content_area img {max-width: 100%;} чтоб картинка с инструкцией не лезла за края. А самой галереи не видно, api на той стороне не отвечает в таймаут, который стоило бы выставить покороче и кешировать результат, а то ждать по полторы минуты открытия вкладки надоедает.
  20. автора Denis Chursinov сообщение в теме на вопрос Профиль пользователя, вкладки отмечен, как решение вопроса   
    1. Они лежат в папках extensions/profileTabs каждого приложения. Например admin\applications\members\extensions\profileTabs .
    Состоит вкладка из конфига вкладка.conf.php и самого скрипта вкладка.php.  В скрипте должен быть класс profile_вкладка, расширяющий profile_plugin_parent .
    В этом классе обязательно должна быть функция return_html_block(), получающая в качестве аргумента массив данных о пользователе (результат IPSMember::load()) и возвращающая html-код вкладки. Функция исполняется в момент перехода на вкладку, и результат передается по аяксу. Название вкладки берется из языкового пакета по ключу указанному в конфиге $CONFIG['plugin_lang_bit'] . 
    $CONFIG['plugin_key']  должен содержать ключ вкладки - латиница в одно слово в нижнем регистре. Это то, на что надо заменить слово "вкладка" в приведенном выше имени файла и класса. $CONFIG['plugin_name'] выводится в заголовке вкладки, если не удалось найти слово в языковом пакете.
    2. Загружается при переходе на вкладку.
  21. автора Denis Chursinov сообщение в теме на вопрос "Написано...." (Не знаю как объяснить) отмечен, как решение вопроса   
    Ну еще туда выводятся объявления. Они в панели модератора создаются
  22. автора Denis Chursinov сообщение в теме на вопрос Сообщение "не удается определить Ваш ip адрес" отмечен, как решение вопроса   
    Все, я вас раскусил.
    У вас сервер слушает по ipv6
    forum.wolcha.ru Addresses: 2a03:6f00:1::5c35:7be7 92.53.123.231 А функция проверки в IPB 3.1 такая:
     
    if ( ipsRegistry::$settings['xforward_matching'] ) //Этот блок работает только при включенной опции Включить получение IP-адресов из X_FORWARDED_FOR { foreach( array_reverse( explode( ',', my_getenv('HTTP_X_FORWARDED_FOR') ) ) as $x_f ) //В строке через запятую идут все прокси каскадом. перебирает начиная с последнего, все похожее на IP добавляется в массив { $x_f = trim($x_f); if ( preg_match( '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $x_f ) ) { $addrs[] = $x_f; } } //Добавление в массив всех остальных возможных адресов прокси $addrs[] = my_getenv('HTTP_CLIENT_IP'); $addrs[] = my_getenv('HTTP_X_CLUSTER_CLIENT_IP'); $addrs[] = my_getenv('HTTP_PROXY_USER'); } //добавление в массив обычной переменно адреса клиента $addrs[] = my_getenv('REMOTE_ADDR'); //----------------------------------------- // Do we have one yet? //----------------------------------------- foreach ( $addrs as $ip )//перебираем полученный на предыдущем шаге массив в поисках первого нормального адреса. { if ( $ip ) { preg_match( '/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/', $ip, $match ); self::instance()->ip_address = $match[1].'.'.$match[2].'.'.$match[3].'.'.$match[4];//присваиваем адрес переменной if ( self::instance()->ip_address AND self::instance()->ip_address != '...' )//если получилось, то хватит { break; } } } //----------------------------------------- // Make sure we take a valid IP address //----------------------------------------- if ( ( ! self::instance()->ip_address OR self::instance()->ip_address == '...' ) AND ! isset( $_SERVER['SHELL'] ) AND $_SERVER['SESSIONNAME'] != 'Console' ) //если адреса так и нету и мы не в локальной консоли, то ошибка { if ( ! defined('IPS_IS_SHELL') OR ! IPS_IS_SHELL ) { print "Не удалось определить ваш IP адрес";//Ваше сообщение об ошибке exit(); } } На всех этапах код хочет найти DDD.DDD.DDD.DDD , а у нас ::ffff:HEX:HEX в лучшем случае, а то и полноценный IPv6.

    Надо или отцепить IPv6 от апача или дописывать функцию, чтобы она как-то конвертировала адрес. Хотя, если там нативный ipv6, то адрес никак не сконвертировать.
  23. автора Denis Chursinov сообщение в теме на вопрос Неправильно отображается тема отмечен, как решение вопроса   
    Лобзиком выпилить из шаблона post группы topic(темы) кусок про UserInfoPane. Вот такой обычно:
     
    <div class='author_info'> {parse template="userInfoPane" group="global" params="$post['author'], $post['post']['pid'], array( 'isTopicView' => true, 'wl_id' => $post['post']['wl_id'] )"} </div>
  24. автора Denis Chursinov сообщение в теме на вопрос Стандартный стиль IP.Board Mobile (Мобильный скин) для 3.3.x отмечен, как решение вопроса   
    Проверил - должно работать. 
    Идем в таблицу skin_collection
    http://c2n.me/ilSTGH.png
    Там нужному скину прописываем set_key = mobile, ненужному set_key = mobile_old
    Можно обойтись запросом в инструментах sql в АЦ:
     
    UPDATE ПРЕФИКСskin_collection SET set_key = 'mobile_old' WHERE set_key = 'mobile'; UPDATE ПРЕФИКСskin_collection SET set_key = 'mobile' WHERE set_id = 'НОМЕР НУЖНОГО СКИНА';ПРЕФИКС заменить на ваш префикс таблиц, который вы указали во время установки форума.
    НОМЕР НУЖНОГО СКИНА можно посмотреть в ссылке, когда редактируете или выбираете нужный скин.
    http://c2n.me/ilTpF3.png
    В админке переходим система-инструменты-управление кешем и перестраиваем кеш skinsets:
    http://c2n.me/ilT8cX.png
  25. автора Denis Chursinov сообщение в теме на вопрос Директория фотографий для профиля не имеет прав на запись отмечен, как решение вопроса   
    Путь к директории upload в глобальных настройках форума не существует. Ошибка чаще все проявляется при изменении пути к папке форума в ОС, при переносе на другой сервер или к другому хостеру. Нужно очистить эту настройку, и форум определит путь автоматически.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.