UPS Easy Shop и Ultimate Points phpbb3
Добавлено: 12 май 2012, 11:43
Введение
Как показала практика, многие админы ищут для своего форума модификации денежной системы (оплата за сообщения) и магазина (к примеру, магазин подарков или товаров). И я решил проанонсировать данные модификации в одном анонсе, так сказать двойной анонс.
Нам потребуется установить 2 модификации
- Ultimate Points - модификация денежной системы (оплата за сообщение) для phpbb3
- UPS Easy Shop - модификация магазина для phpbb3
A | Внимание !!! Примите к сведенью то, что UPS Easy Shop не работает без установленного Ultimate Points (который кстати нужно в первую очередь устанавливать) |
Хотелось бы отметить еще то, что модификация Ultimate Points, помимо денежной системы, содержит в себе Лотерею, Банк, модуль Грабежей, а так же предоставляет возможность перевоить средства другим пользователям. Так же данный мод может быть встроен в некоторые сторонние модификации, такие как Блоги или Галерея (Более подробный список таких модов глядите в папке мода
Впринципе описываемые модификации установлены на нашем форуме и вы можете их потестировать. Так сказать, пощупать моды.
Установка
Сами по себе моды тяжелы в установке, будьте готовы к долгой инсталляции и наберитесь терпения. Скачиваем архив и устанавливаем мод денежной системы по инструкции.
После установки, руссифицируем денежную систему (Файлы из архива распаковать в папку
В дебагере может появляться такая ошибка
[code][phpBB Debug] PHP Notice: in file /includes/functions_content.php on line : Undefined index: points_extension[/code]
Решение = открытьroot/includes/functions_content.php и найти
[code] // Start Ultimate Points
else if ($forum_id > 0)[/code]
Заменить найденное на
[code] // Start Ultimate Points
// else if ($forum_id > 0)
else if ($forum_id > 0 && (isset($attachment['points_extension']) && isset($attachment['points_extension_costs'])))[/code]
[code][phpBB Debug] PHP Notice: in file /includes/functions_content.php on line : Undefined index: points_extension[/code]
Решение = открыть
[code] // Start Ultimate Points
else if ($forum_id > 0)[/code]
Заменить найденное на
[code] // Start Ultimate Points
// else if ($forum_id > 0)
else if ($forum_id > 0 && (isset($attachment['points_extension']) && isset($attachment['points_extension_costs'])))[/code]
В дебагере может появляться такая ошибка
[code][PhpBB Debug] PHP Notice: in file / includes / functions_content.php on line : Undefined index: POINTS_ATTACHMENT_COSTS [/code]
Решение = открытьroot/language/ru/points.php и найти
[code]'POINTS' => 'Points',[/code]
Вставить после найденного
[code]'POINTS_ATTACHMENT_COSTS' => 'Вложение <strong>%1$s</strong> стоимость которого (%2$s %3$s), вам не хватает %3$s!',[/code]
После руссификации устанавливаем модификацию магазина[code][PhpBB Debug] PHP Notice: in file / includes / functions_content.php on line : Undefined index: POINTS_ATTACHMENT_COSTS [/code]
Решение = открыть
[code]'POINTS' => 'Points',[/code]
Вставить после найденного
[code]'POINTS_ATTACHMENT_COSTS' => 'Вложение <strong>%1$s</strong> стоимость которого (%2$s %3$s), вам не хватает %3$s!',[/code]
И потом руссифицируем его (Файлы из архива распаковать в папку
A | Внимание !!! Хочу обратить внимание на, то что перевод был сделан на скорую руку, могут присутствовать опечатки и неточности. В любом случае прошу вас уведомлять меня о косяках перевода, буду исправлять и делать его более лучшим |
----------------- Плагины для UPS Easy Shop ---------------
1. Модуль начисления случайного количества Points из Ultimate Points
-При покупке этого предмета пользователь получит случайное количество Points из Ultimate Points, предмет используется сразу после покупки.
- Установка. Скачиваем архив Файлtreasure.png залить в images\shop_icons\ , а файл random.php положить в includes\shop\items\
Открыть файлlanguage\ru\mods\shop.php и найти
Вставить перед найденным
Слово Points можно заменить на имя форумной валюты
В файлеrandom.php кусок кода
Отвечает за количество Points, в данном случае начисляется от 5 до 15 Points, можете поменять эти значения под себя.
После этого добавляем товар в магазин. В пункте Plugin: выбираем наш плагин, в пункте Товар используется сразу же после покупки: - Да , в пунктах Пользователь может удалить этот товар: - Пользователь может продать это товар обратно в магазин: - Пользователь может показать этот товар на своей полке - Нет
Остальные настройки делаете по своему вкусу.
- Установка. Скачиваем архив Файл
Открыть файл
Код: Выделить всё
'SHOP_ITEM_BOUGHT' =>
Код: Выделить всё
'SHOP_ITEM_POINTS' => 'После покупки вы получили <strong>%s</strong> Points.',
В файле
Код: Выделить всё
$points = rand(5,15);
После этого добавляем товар в магазин. В пункте Plugin: выбираем наш плагин, в пункте Товар используется сразу же после покупки: - Да , в пунктах Пользователь может удалить этот товар: - Пользователь может продать это товар обратно в магазин: - Пользователь может показать этот товар на своей полке - Нет
Остальные настройки делаете по своему вкусу.
- При покупке данного товара у пользователя меняется цвет ника. По сути все легко делается, но для каждого цвета нужно делать следущие действия. Опишу на примере уже существующего черного цвета никнейма.
Для начала создаем файл со следущим названием и расширением -user_color_black.php , обратите внимание на окончание имени - black , при создании других цветов обязательно дописывать название этого цвета таким же образом, на английском. Файл будет иметь следущее содержимое
При создании нового цвета (имя мы ему выбрали выше, допустим) необходимо кусок
Заменить на имя своего файла, допустим мы создаем синий цвет, значит наш файл будет назваться user_color_blue.php и следовательно кусок
Заменяем на
Далее находим в коде
В найденном заменяем
На HTML код своего нового цвета, этот код можно поглядеть в таблице HTML цветов, коими кишит интернет.
После этих действий сохраняем наш файл и закидываем на сервер в папкуincludes\shop\items\ . При добавлении товара обязательно установить в пункте Plugin: - выбираем наш плагин, в пункте Товар используется сразу же после покупки: - Да , в пунктах Пользователь может удалить этот товар: - Пользователь может продать это товар обратно в магазин: - Пользователь может показать этот товар на своей полке - Нет
Остальные настройки делаете по своему вкусу.
Для начала создаем файл со следущим названием и расширением -
Код: Выделить всё
<?php
/**
*
* @package - phpbb3 UPS Easy Shop
* @version $Id: user_color_black.php 138 2010-02-22 10:39:40Z femu $
* @copyright (c) Wuerzi (http://spieleresidenz.de), (c) femu (http://die-muellers.org)
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/*
* @ignore
*/
if (!defined('IN_PHPBB'))
{
exit;
}
class user_color_black extends item
{
function init()
{
}
function get_actions()
{
global $user;
$actions = array();
//In most cases, items that have an action with them should use the "use" action.
//To enable it, uncomment the following code:
$actions['use'] = array(
'name' => $user->lang['SHOP_ITEM_USE'],
'confirm' => sprintf($user->lang['SHOP_ITEM_CONFIRM_USE'], $this->data['name']),
'function' => 'use_item'
);
$actions = array_merge($actions, parent::get_actions());
return $actions;
}
function use_item()
{
global $user, $shop, $db, $phpEx, $phpbb_root_path;
$this->remove_item();
$color = $user->data['user_colour'] = '000000';
$sql_ary = array(
'user_colour' => $color,
);
$sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . (int) $user->data['user_id'];
$db->sql_query($sql);
$message = sprintf($user->lang['SHOP_ITEM_NOW_USE'], $this->data['name']);
return $message;
}
}
?>
Код: Выделить всё
user_color_black
Код: Выделить всё
user_color_black
Код: Выделить всё
user_color_blue
Код: Выделить всё
$color = $user->data['user_colour'] = '000000';
Код: Выделить всё
000000
После этих действий сохраняем наш файл и закидываем на сервер в папку
Остальные настройки делаете по своему вкусу.
-Выводим описание товара при наведении мыши на картинку товара
Открыть viewtopic.php и находим
Заменяем найденное на
if (file_exists($phpbb_root_path . 'highslide/highslide-full.js'))
{
$show_icon = '<a href="' . $phpbb_root_path . 'images/shop_icons/' . $item->data['icon'] . '" class="highslide" onclick="return hs.expand(this)" title="' . $item->data['description'] . '"><img src="' . $phpbb_root_path . 'images/shop_icons/' . $item->data['icon'] . '" width="' . $icon_show_width . '" height="' . $icon_show_height . '" alt="' . $item->data['description'] . '" /></a>';
}
else
{
$show_icon = '<a href="' . $phpbb_root_path . 'images/shop_icons/' . $item->data['icon'] . '" onclick=" window.open(this.href); return false" title="' . $item->data['description'] . '"><img src="' . $phpbb_root_path . 'images/shop_icons/' . $item->data['icon'] . '" width="' . $icon_show_width . '" height="' . $icon_show_height . '" alt="' . $item->data['description'] . '" /></a>';
}
Код: Выделить всё
if (file_exists($phpbb_root_path . 'highslide/highslide-full.js'))
{
$show_icon = '<a href="' . $phpbb_root_path . 'images/shop_icons/' . $item->data['icon'] . '" class="highslide" onclick="return hs.expand(this)" title="' . $user->lang['SHOP_HIGHSLIDE_CLICK'] . '"><img src="' . $phpbb_root_path . 'images/shop_icons/' . $item->data['icon'] . '" width="' . $icon_show_width . '" height="' . $icon_show_height . '" alt="' . $user->lang['SHOP_HIGHSLIDE_CLICK'] . '" /></a>';
}
else
{
$show_icon = '<a href="' . $phpbb_root_path . 'images/shop_icons/' . $item->data['icon'] . '" onclick=" window.open(this.href); return false" title="' . $user->lang['SHOP_HIGHSLIDE_CLICK'] . '"><img src="' . $phpbb_root_path . 'images/shop_icons/' . $item->data['icon'] . '" width="' . $icon_show_width . '" height="' . $icon_show_height . '" alt="' . $user->lang['SHOP_HIGHSLIDE_CLICK'] . '" /></a>';
}
if (file_exists($phpbb_root_path . 'highslide/highslide-full.js'))
{
$show_icon = '<a href="' . $phpbb_root_path . 'images/shop_icons/' . $item->data['icon'] . '" class="highslide" onclick="return hs.expand(this)" title="' . $item->data['description'] . '"><img src="' . $phpbb_root_path . 'images/shop_icons/' . $item->data['icon'] . '" width="' . $icon_show_width . '" height="' . $icon_show_height . '" alt="' . $item->data['description'] . '" /></a>';
}
else
{
$show_icon = '<a href="' . $phpbb_root_path . 'images/shop_icons/' . $item->data['icon'] . '" onclick=" window.open(this.href); return false" title="' . $item->data['description'] . '"><img src="' . $phpbb_root_path . 'images/shop_icons/' . $item->data['icon'] . '" width="' . $icon_show_width . '" height="' . $icon_show_height . '" alt="' . $item->data['description'] . '" /></a>';
}