Что необходимо для установки:
1. Тестовый редактор, рекомендую использовать Notepad++ в нём есть возможность сохранять файл в кодировке: UTF-8 без BOM.
2. Мод который надо установить, инструкцию установки к нему.
3. Естественно руки и желание.
Находим интегрирующий Вас мод актуальной версии, скачиваем. Открываем архив, в архиве находятся:
contrib
- папка инструкций для обновления или дружбы модов.
root
- папка с файлами, которык необходимо разместить в соответствуещие места.
install.xml
- сама инструкция, все изменения необходимо выполнять по этому файлу. (название может меняться в зависимости названия мода)
license.txt
- лицензия на мод.
modx.prosilver.en.xsl
- таблица стилей.Далее: открываем инструкцию установки мода
install.xml
с помощи Notepad++ и видим код из множества тегов, где это: <copy>
- говорит о переносе файлов в соответствующие места:
<file from="root/toplist.php" to="toplist.php"/>
значит файл: toplist.php переносим в корень форума, там где файл config.php.
<file from="root/adm/style/acp_thanks.html" to="adm/style/acp_thanks.html"/>
говорит о переносе файла: acp_thanks.html в папку: adm/style/.
<file from="root/umil/*.*" to="umil/*.*"/>
говорит о том, что папку: umil, вместе со всем содержимым надо перенести в корень форума.
</copy> - значит больше нет копируемых файлов.
Далее видим код:
<open src="index.php">
<edit>
<find><![CDATA[// Assign index specific vars]]></find>
<action type="before-add"><![CDATA[// Generate thankslist if required ...
$thanks_list = '';
$ex_fid_ary = array_keys($auth->acl_getf('!f_read', true));
$ex_fid_ary = (sizeof($ex_fid_ary)) ? $ex_fid_ary : 0;
if ($config['thanks_top_number'])
{
$sql = 'SELECT t.poster_id, COUNT(t.user_id) AS tally, u.user_id, u.username, u.user_colour
FROM ' . USERS_TABLE . ' u
LEFT JOIN ' . THANKS_TABLE . ' t ON (u.user_id = t.poster_id)
WHERE ' . $db->sql_in_set('t.forum_id', $ex_fid_ary, true) . '
GROUP BY t.poster_id
ORDER BY tally DESC';
$result = $db->sql_query_limit($sql, $config['thanks_top_number'], 0);
while ($row = $db->sql_fetchrow($result))
{
$thanks_list .= (($thanks_list != '') ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']) . ' (' . $row['tally'] . ')';
}
$db->sql_freeresult($result);
}]]></action>
</edit>
теперь подробно:
<open src="index.php"> - говорит нам, что надо открыть файл: index.php
<find><![CDATA[// Assign index specific vars]]></find> - найти нужную строчку, в данном случаи это: // Assign index specific vars
<action type="before-add"><![CDATA[// Generate thankslist if required ...
$thanks_list = '';
$ex_fid_ary = array_keys($auth->acl_getf('!f_read', true));
$ex_fid_ary = (sizeof($ex_fid_ary)) ? $ex_fid_ary : 0;
if ($config['thanks_top_number'])
{
$sql = 'SELECT t.poster_id, COUNT(t.user_id) AS tally, u.user_id, u.username, u.user_colour
FROM ' . USERS_TABLE . ' u
LEFT JOIN ' . THANKS_TABLE . ' t ON (u.user_id = t.poster_id)
WHERE ' . $db->sql_in_set('t.forum_id', $ex_fid_ary, true) . '
GROUP BY t.poster_id
ORDER BY tally DESC';
$result = $db->sql_query_limit($sql, $config['thanks_top_number'], 0);
while ($row = $db->sql_fetchrow($result))
{
$thanks_list .= (($thanks_list != '') ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']) . ' (' . $row['tally'] . ')';
}
$db->sql_freeresult($result);
}]]></action>
эта команда говорит нам, что вот это:
// Generate thankslist if required ...
$thanks_list = '';
$ex_fid_ary = array_keys($auth->acl_getf('!f_read', true));
$ex_fid_ary = (sizeof($ex_fid_ary)) ? $ex_fid_ary : 0;
if ($config['thanks_top_number'])
{
$sql = 'SELECT t.poster_id, COUNT(t.user_id) AS tally, u.user_id, u.username, u.user_colour
FROM ' . USERS_TABLE . ' u
LEFT JOIN ' . THANKS_TABLE . ' t ON (u.user_id = t.poster_id)
WHERE ' . $db->sql_in_set('t.forum_id', $ex_fid_ary, true) . '
GROUP BY t.poster_id
ORDER BY tally DESC';
$result = $db->sql_query_limit($sql, $config['thanks_top_number'], 0);
while ($row = $db->sql_fetchrow($result))
{
$thanks_list .= (($thanks_list != '') ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']) . ' (' . $row['tally'] . ')';
}
$db->sql_freeresult($result);
}
необходимо вставить перед строчкой: // Assign index specific vars
В теге <action> элемент type="before-add" может меняться в зависимости от задания:
Add after - Добавить после
Add before - Добавить перед
Replace With - Заменить
После внесенных изменений может потребоваться выполнить запрос в базу данных (БД), эта команда выглядит таким образом: <php-installer><![CDATA[install_thanks_mod.php]]></php-installer> - значит переходим в браузере по адресу: (http://сайт.ру/install_thanks_mod.php) и следуем инструкции. Однако выполнения запроса может выглядеть и по другому, например так:
<sql><![CDATA[INSERT INTO phpbb_config (config_name, config_value) VALUES ('enable_post_num', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('enable_post_num_js', '0');]]></sql>
говорит о том, что запрос:
INSERT INTO phpbb_config (config_name, config_value) VALUES ('enable_post_num', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('enable_post_num_js', '0');
необходимо выполнить в ручную, например через phpMyAdmin
После этого обновить кеш, темы и набор рисунков. А так же если потребуется выставить права доступа для установленного мода.
Мод установлен и готов служить Вам!
Редактированные файлы необходимо сохранять в UTF-8 (без BOM), подробнее об этом здесь: [FAQ] Часто задаваемые вопросы по phpBB 3.0.х.
Так же читайте: Как искать часть кода.