Перейти к содержанию
Сайт в скором времени будет закрыт, спасибо что были с нами! ×

Поиск сообщества

Показаны результаты для тегов 'trader'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Invision Community
    • Дизайн и стилизация
    • Приложения и плагины
    • Помощь и поддержка
    • Миграция на Invision Community
    • IP.Board 3.x
    • Разработка
  • invisionbyte.ru
    • Обратная связь
    • Тестовые посты
    • Обо всём

Категории

  • Начало работы
  • Администрирование
    • Интернет-магазин (Commerce)
    • Страницы (Pages)
    • Форумы (Forums)
    • Галерея (Gallery)
    • Загрузки (Files)
    • Блоги (Blogs)
    • Пользователи
  • Модерирование
  • Кастомизация
    • Дизайн и стилизация
    • Локализация
  • Антиспам и безопасность
  • Приложения сторониих разработчиков
  • Разработчику
  • База знаний
  • Общее
    • Хостинг
    • Домены
    • Поисковая оптимизация

Категории

  • Новое сообщество
    • Лицензия
    • Системные требования
    • Установка
    • Обновление
    • Перенос с других платформ
  • Приложения
    • Форумы
    • Страницы
    • Галерея
    • Загрузки
    • Блоги
    • Календарь
    • Коммерция
  • Продвижение
    • Продвижение в социальных сетях
  • Общее использование
    • Знакомство
    • Общие настройки
    • Контент
    • Пользователи
    • Модерация
    • Авторизация через сайты
    • СЕО оптимизация
    • Управление файлами
  • Индивидуализация
    • Темы и дизайн
    • Языки и переводы
    • Редактор сообщений
    • Синтаксис шаблонов
    • CSS фреймворк
    • Javascript
    • Советы и трюки
  • Расширение возможностей
    • Конфигурация
    • Управление сервером
    • IPS Connect
  • Разработка
    • Приложения
    • Плагины
  • Сторонние приложения
    • Automation Rules

Категории

  • Темы и дизайн
  • Дополнительные возможности
  • Обновление Invision Community
  • Безопасность
  • Миграция на Invision Community
  • Ошибки

Категории

  • Русский язык для Invision Community
  • Плагины
  • Темы
  • Модули оплаты

Категории

  • Общее
  • Разработка
    • Приложения
    • Плагины
    • Расширения
  • Фреймворк
    • Ноды
    • Элементы контента
    • Комментарии
    • Отзывы
  • Пользователи и аутентификации
  • Другие возможности
    • Уведомления и E-mail
    • Формы
    • Коммерция
  • Документация разработчика
  • REST API
    • Система
    • Загрузки
    • Страницы
    • Форумы
    • Галерея
    • Календарь
    • Блоги
    • Магазин

Категории

  • Успешные истории и интервью с владельцами сообществ на Invision Community

Категории

  • Локализция Invision Community
  • Коммерция
  • Антиспам и безопасность
  • Темы и дизайн
  • Интерфейс
  • Модерирование
  • Дополнительно
  • Локализация

Блоги

  • Мой тестовый блог
  • IPS 4 и контентные проекты
  • Блог начинающего сисадмина или идеальный сервер для IPS4
  • Подробнее о IPS4
  • Продвижение городского форума на Invision Community

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


Адрес сайта

Найдено: 1 результат

  1. При миграции с vBulletin на Invision Community администраторы часто встречаются вопросом миграции данных некогда популярного для vBulletin приложения - iTrader, позволяющего производить оценку сделок, в похожее приложение для Invision Community - Trader Feedback System. В данной статье мы разберёмся как всё же перенести эти данные. 1 этап - перенос общего рейтинга Сперва перенесём общее число рейтинга пользователей, который содержится в таблице user (vBulletin) в колонке itrader_total. Создадим php файл с произвольным именем и положим его в корень нашего установленного Invision Community и добавим в него следующий код: <?php require_once 'init.php'; $userRatings = iterator_to_array( \IPS\Db::i()->select( 'username, itrader_total', 'user' ) ); foreach ( $userRatings as $k => $v ) { if ( $v['itrader_total'] != 0 ) { if ( $v['itrader_total'] > 0 ) { \IPS\Db::i()->update('core_members', array('feedb_pos' => $v['itrader_total']), array('name=?', $v['username'])); } if ( $v['itrader_total'] < 0 ) { \IPS\Db::i()->update('core_members', array('feedb_neg' => $v['itrader_total']), array('name=?', $v['username'])); } } } Всё просто. Здесь мы подключаемся к базе Invision Community, добавляем в массив поля имени и рейтинг из таблицы user (ПРИМЕЧАНИЕ: таблица user должна быть в той же базе, в которую установлен Invision Community). Путём конструкции foreach проходим весь массив и добавляем рейтинг в поле feedb_pos таблицы core_members, если рейтинг положительный и в поле feedb_neg той же таблицы, если рейтинг ниже нуля. 2 этап - перенос комментариев к сделке Теперь задача чуть посложнее. Нам нужно добавить сущности сделок в таблицу feedback_feedback для Trader Feedback System. Для этого замените код в нашем произвольном php файле (или создайте новый файл) на следующий код: <?php require_once 'init.php'; foreach ( \IPS\Db::i()->select( '*', 'itrader_comments' ) as $row ) { try { /* Находим отправителя */ $sender_name = \IPS\Db::i()->select('username', 'user', array('userid=?', $row['userid']))->first(); $sender_id = \IPS\Db::i()->select('member_id', 'core_members', array('name=?', $sender_name))->first(); /* Находим получателя */ $itrader = \IPS\Db::i()->select('*', 'itrader', array('rateid=?', $row['rateid']))->first(); $receiver_name = \IPS\Db::i()->select('username', 'user', array('userid=?', $itrader['rateduserid']))->first(); $receiver_id = \IPS\Db::i()->select('member_id', 'core_members', array('name=?', $receiver_name))->first(); } catch( \Exception $e ){} /* Рейтинг */ if ( $itrader['rating'] == 0 ) { $rating = 1; } elseif ( $itrader['rating'] == -1 ) { $rating = 0; } else { $rating = 2; } \IPS\Db::i()->insert( 'feedback_feedback', array( 'fb_id' => NULL, 'fb_date' => $row['dateline'], 'fb_sender_id' => $sender_id, 'fb_receiver_id' => $receiver_id, 'fb_ip' => $row['ipaddress'], 'fb_comment' => $row['comment'], 'fb_rating' => $rating, 'fb_content_id' => 117471, 'fb_type' => 0, 'fb_class' => 'IPS\forums\Topic' ) ); } Поскольку после конвертирования пользователи получили другие ID, придётся выполнить некоторые манипуляции по соответствую ID старого пользователя новому. Здесь мы: Находим имя получателя из по его id в vBulletin; Находим id по имени в Invision Community. Тоже самое с получателем. Определяем рейтинг, т.к. у этих приложений разная система подсчёта. Делаем инсерты в таблицу feedback. siv1987 предложил (за что ему огромное спасибо) упростить данный код и сделать всё одним запросом: \IPS\Db::i()->select( 'c.*, m.member_id as sender_id, m2.member_id as receiver_id, u.username as sender_name, u2.username as receiver_name, i.rating', array( 'itrader_comments', 'c' ) ) ->join( array( 'user', 'u' ), 'u.userid=c.userid' ) ->join( array( 'core_members', 'm' ), 'm.name=u.username' ) ->join( array( 'itrader', 'i' ), 'i.rateid=c.rateid' ) ->join( array( 'user', 'u2' ), 'u2.userid=i.rateduserid' ) ->join( array( 'core_members', 'm2' ), 'm2.name=u2.username' ) Если данных в таблице itrader_comments много, можно воспользоваться одним запросом, что значительно уменьшит нагрузку на сервер mysql. 3 этап - пересчёт данных Для этого запустим задачу пересчёта данных, которая есть в приложении. Опять же создадим php файл и запустим его из браузера: <?php require_once 'init.php'; \IPS\Task::queue( 'feedback', 'RecountFeedback' ); На этом перенос завершён!
×
×
  • Создать...

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

Используя наш сайт вы соглашаетесь с нашей Политикой конфиденциальности