Текущее время: 29 мар 2024, 13:02

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 04 окт 2008, 20:27 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2006, 18:14
Сообщения: 443
Всем желающим прикрутить себе ItemStats с подсказками от WoWData посвящается.

Вложение:
itemstats.zip


Катастрофически не хватает времени, поэтому сейчас выкладываю, что есть. По ходу поправлю, вылезшие глюки, отписывайтесь.

Итак, прежде всего, что это такое? ItemStats – это система, позволяющая встроить подсказки из WoW на сайт. В ней предусмотрено довольно много, основное для меня – кэширование данных с сайтов, предоставляющих данных с целью ускорения загрузки страниц.

Для работы был взят ItemStats 1.5.5 (не забудьте справа выбрать English): Информация, Установка под различные системы, Различные варианты для загрузки
Далее еще одна основа для работы – Модификация ItemStats для Wowhead, она же используется в EQDKP Plus, но более ранней версии.
Ну и сама реализация ItemStats от EQDKP Plus версий 0.6+

Приведённые выше ссылки для тех, кому по тем или иным причинам не понравится моя реализация и появится желание сделать все самим.

Дальше собственно выполнялась интеграция по информации топика: Получение данных с сайта WoWData в XML.

Я прокомментировал все места в исходном коде, которые редактировал, так что при желании вы сможете сами подредактировать все, что нужно. Код более-менее причесан, так что не думаю, что возникнут какие-то проблемы с пониманием

Пара нюансов:

Особенности работы с русскими кодировками при занесении данных в базу MySQL

При занесении текстовых данных содержащих символы кирилицы в базу данных MySQL с помощью PHP-скрипта желательно указать в скрипте в какой кодировке данные должны сохраняться в базу данных. Такое указание осуществляется с помощью SQL-запроса:
Цитата:
SET NAMES кодировка


Кодировку необходимо указывать ту же, что используется в самой базе данных для хранения текста. Для того чтобы быть уверенным в том какая именно кодировка используется в БД для хранения текста, желательно явно указывать эту кодировку при создании таблиц, в противном случае будет использована кодировка по умолчанию установленная в настройках базы данных MySQL. Явное указание кодировки в которой хранятся данные в таблице осуществляется в момент создания таблицы с помощью SQL-запроса:
Цитата:
CREATE TABLE имяТаблицы (список полей) CHARACTER SET кодировка


Обычно для хранения символов кирилицы (символов русского языка) используют кодировку UTF-8 (обозначается в MySQL как utf8) или windows-1251 (обозначаемое как cp1251). Таким образом для создания таблицы хранящей текст в кодировке UTF-8 надо использовать SQL-запрос:
Цитата:
CREATE TABLE имяТаблицы (список полей) CHARACTER SET utf8


Для того чтобы при соединении с БД MySQL из PHP-скрипта использовалась необходимая кодировка сразу после установления соединения с базой необходимо отправить запрос с указанием какая именно кодировка будет использоваться при занесении/извлечении данных.

Пример подобных действий для соединения с БД в которой данные хранятся в кодировке UTF-8 приведен ниже:
Цитата:
mysql_connect('localhost', 'логин', 'пароль');
mysql_select_db('имяБД');
mysql_query('SET NAMES utf8');


Что нужно сделать перед интеграцией?

Неплохо бы (на самом деле необходимо) просто установить себе обычный ItemStats 1.5.5 и заставить его работать. Я выкладываю лишь измененные файлы для поддержки WoWData

Полный дистрибутив ядра ItemStats можно скачать тут
Установка по шагам тут
Для PHPBB3: тут

Вообще информации по установке ItemStats под те или иные движки очень много (даже если по каким-то причинам не хотите смотреть на оригинальном сайте), так что просто поищите – это совершенно не проблема.

Если все и так работает, с английскими подсказками, то необходимо выполнить только шаги по переходу на WoWData.

Как настраивать поддержку WoWData?


1. Настройка config.php

Установите ICON_STORE_LOCATION в значение, где у вас будут сохраняться (кэшироваться локально) иконки для предметов, загруженные в WoWData (нужен полный URL)

Настройте остальные параметры, чтобы можно было выполнить подключение к БД.


2. Настройка config_itemstats.php

При необходимости поправьте настройки в config_itemstats.php. Они все задокументированы в исходнике.


3. Настройка config_wowdata.php

Параметры непосредственно связанные с получением данных от WoWData. Рекомендую не отключать получение данных на обоих языках и оставить включенным автоперевод названий, так как в противном случае можно просто не заморачиваться и использовать подсказки Wowhead. Двуязычные подсказки – это то, чем мне очень нравится WoWData.

Из особенностей настройки упомяну следующее: WoWData работает с Utf-8, чтобы реализовать совместимость с Win1251 я добавил в конфигурацию два параметра: один управляет исходной кодировкой БД, второй – языком на котором выводятся подсказки. К сожалению, полного тестирования провести так и не удалось, если возникнут проблемы с различными сочетаниями – пишите, разберусь.


4. Создание таблицы для хранения информации по предметам

Название таблицы по умолчании item_cache с желаемой кодировкой
Я тестировал на Utf8, если возникнут проблемы с Win1251 дайте знать - разберусь


В принципе, скрипт сам пытается ее создать, если не находит, но от того, что вы ее создадите вручную хуже не будет.

Код такой:
Код:
CREATE TABLE IF NOT EXISTS `item_cache` (
`item_name` varchar(100) NOT NULL default '',
 `item_id` varchar(100) default '0',
 `item_lang` varchar(2) default '',
 `item_link` varchar(100) default NULL,
 `item_color` varchar(20) NOT NULL default '',
 `item_icon` varchar(50) NOT NULL default '',
 `item_html` text NOT NULL,
 UNIQUE KEY `item_name` (`item_name`)) CHARACTER SET utf8;


Для win1251 замените utf8 на cp1251. (См. itemcache.php)


5. Настройка на сервере

После всех подготовительных действий, выложите настроенные исходники к себе на сервер, заменяя уже существующие там (если есть).

Для корректной работы у вас должны быть две папки с разрешениями на чтение / создание / изменение / запись из скриптов:

xml_cache – хранит кэш предметов, для разгрузки сервера БД при повторных обращениях
wowdata_icons – хранит кэш иконок предметов, загруженных с сайта WoWData.


6. Интеграция

Суть подключения Itemstats на любой сайт / форум простая, необходимо выполнить две вещи:
  • Пропустить сгенерированный движком сайта/форума контент через ItemStats, он выполнит замены в нужных местах
    Код:
    [item]предмет[/item]
  • Дать пользователям возможность тем или иным способом вставлять такие теги в контент :)

Не забудьте, что помимо установки скриптов, надо будет подключить CSS (wowdata.css) и скрипт вывода подсказок (overlib.js). Для PHPBB, например, это делается в шаблонах.


Еще раз повторюсь: я выкладываю здесь файлы с изменениями ItemStats под WoWData, для корректной работы сначала необходимо установить ядро ItemStats

Ну и чтобы не быть голословным, что все работает: [item]17182[/item] или лучше загляните, например, сюда

P.S. Спелы, EQDKP и т.п. все в процессе, не хватает времени…
P.P.S. Большое спасибо разработчикам WoWData и отдельное Святославу за поддержку в работе.


У вас нет необходимых прав для просмотра вложений в этом сообщении.

_________________
Знание некоторых принципов легко возмещает незнание некоторых фактов.
Сегодня - везение, завтра - везение, но когда-нибудь требуется и умение (с) Суворов
Молчание - это самый достойный ответ на провокационный вопрос.

<Читса>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 20 окт 2008, 09:46 
Приветствую, спасибо за проделанную работу!
Но к превеликому сожалению заставить работать свой EQDKP+ сайт с itemstats настроенный на WOWDATA так и не удалось (
Иконки кэширует, в базу вроде все правильно вносит, а подсказки показывает только если название предмета на английском записаны и то в не понятной кодировке (нечитабельно)
Если прочитаешь этот пост и появиться желание помочь напиши куда стучать, или можем развить дискуссию тут.


Вернуться к началу
  
 
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 20 окт 2008, 16:53 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2006, 18:14
Сообщения: 443
Приветствую!

Стукнись ко мне в ICQ (есть в профиле), скорее всего проблема локальная, так как успешные установки с разными кодировками уже есть. Обсудим, возможно смогу что-то подсказать.

_________________
Знание некоторых принципов легко возмещает незнание некоторых фактов.
Сегодня - везение, завтра - везение, но когда-нибудь требуется и умение (с) Суворов
Молчание - это самый достойный ответ на провокационный вопрос.

<Читса>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 22 окт 2008, 14:53 
У кого не получается выполнить запрос на создание таблицы БД вручную, советую пробовать следующий вариант:

Код:
CREATE TABLE IF NOT EXISTS `item_cache` (
`item_name` varchar(100) NOT NULL default '',
`item_id` varchar(100) default '0',
`item_lang` varchar(2) default '',
`item_link` varchar(100) default NULL,
`item_color` varchar(20) NOT NULL default '',
`item_icon` varchar(50) NOT NULL default '',
`item_html` text NOT NULL,
UNIQUE KEY (`item_name`)) CHARACTER SET utf8;


Вернуться к началу
  
 
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 22 окт 2008, 18:42 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2006, 18:14
Сообщения: 443
Хаккинен, спасибо.

Вижу, что опечатка вкралась (запятая в конце), подправил.

_________________
Знание некоторых принципов легко возмещает незнание некоторых фактов.
Сегодня - везение, завтра - везение, но когда-нибудь требуется и умение (с) Суворов
Молчание - это самый достойный ответ на провокационный вопрос.

<Читса>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 22 окт 2008, 19:09 
Большое спасибо за выложенную информацию и за исправленную опечатку =))) Благодарю!


Вернуться к началу
  
 
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 23 окт 2008, 14:54 
Помогите плиз... неправильно отображается название предметов во всплывающей подсказке (остальное всё супер)

http://invincible.wownews.ru/t6dkp/listitems.php?s=

где править? :)


Вернуться к началу
  
 
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 23 окт 2008, 15:55 
вроде поправил, но теперь другая проблема - в некоторых названиях появляются знаки вопроса :\


Вернуться к началу
  
 
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 23 окт 2008, 16:44 
Проблема решена!

Закомментировал в wowdata.php:
if (DB_ENCODING_WIN1251) $item['html'] = utf2win($item['html']);


Вернуться к началу
  
 
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 23 окт 2008, 23:54 
Незачто, комрады!
У меня тут еще такой вопрос возниг, уже всю голову сломал над ним.
Берем к примеру [item]Наплеч охотника на гроннов[/item]. И во всплывающей подсказке, там где написаны бонусы от сета, текст имеет такой зеленый темный цвет, что прочитать его можно только с очень большим трудом. Облазил все возможные CSSки, но такого цвета нигде не нашел...


Вернуться к началу
  
 
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 23 окт 2008, 23:57 
Поправка, в варианте ваших подсказок все норм, а вот у меня просто беда какая-то с отображением...


Вернуться к началу
  
 
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 25 окт 2008, 22:36 
Не в сети

Зарегистрирован: 22 окт 2008, 20:35
Сообщения: 1
SenatoZ писал(а):
неправильно отображается название предметов во всплывающей подсказке (остальное всё супер)


Как это исправить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 15 ноя 2008, 17:30 
:cry:

помогите с win1251
проблема такая, что поставил все работает в eng
стал делать под ru

в config_wowdata.php написано

define('WIN1251', false);
define('DB_ENCODING_WIN1251', false);

ввожу предметы все корявые в Utf8 (проверял ручным перещелкиванием)

ставлю переменные

define('WIN1251', true);
define('DB_ENCODING_WIN1251', true);

все что было корявым становится нормой, любой введенный новый предмет становится корявым, причем первые русские далее корявка utf8

где бы покопать?

умом понимаю что мне надо наверное или жестко прописать что при записи в таблицу сменить кодировку, или при выводе на экран четко менять....
но найти не удается..


Вернуться к началу
  
 
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 18 ноя 2008, 21:57 
В EQDKP Plus itemstats 1.5.1 уже интегрирован. Можно ли просто залить сверху файлы от 1.5.5, потом вами измененные?
Будет работать?


Вернуться к началу
  
 
 Заголовок сообщения: Подключение ItemStats с подсказками от WoWData
СообщениеДобавлено: 19 ноя 2008, 10:53 
Всё поставила, но при попытке обновить данные по предмету вот что даёт:

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\wow1251\www\eqdkp\itemstats\config.php:22) in Z:\home\wow1251\www\eqdkp\itemstats\updateitem.php on line 9

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\wow1251\www\eqdkp\itemstats\config.php:22) in Z:\home\wow1251\www\eqdkp\itemstats\updateitem.php on line 12

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\wow1251\www\eqdkp\itemstats\config.php:22) in Z:\home\wow1251\www\eqdkp\itemstats\updateitem.php on line 15

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\wow1251\www\eqdkp\itemstats\config.php:22) in Z:\home\wow1251\www\eqdkp\itemstats\updateitem.php on line 16

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\wow1251\www\eqdkp\itemstats\config.php:22) in Z:\home\wow1251\www\eqdkp\itemstats\updateitem.php on line 19

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\wow1251\www\eqdkp\itemstats\config.php:22) in Z:\home\wow1251\www\eqdkp\itemstats\updateitem.php on line 32
Failed to update item: Сальфарас, Рука Рагнароса (Duplicate entry '?????????, ???? ????????' for key 1)
Failed to update item: Сальфарас, Рука Рагнароса (Duplicate entry '?????????, ???? ????????' for key 1)

Куда копать? Все БД вин-1251


Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
mergenine: WoW Horde BB3
World of Warcraft ® ©2004-2007 Blizzard Entertainment, Inc. All rights reserved.
Русская поддержка phpBB