Sergey  
Местный босс - администраторJoined: 06 Jan 2005 Location: Оренбург Posts: 1127Last Visited: Today at 01:43 Кредиты: 3594
Reputation: 47 Age: 41
Zodiac: 
| Этот мануал по установке модов является вольным переводом статьи How to Install MODs (Как устанавливать моды) с официального сайта разработчиков phpBB.
Какие-либо совпадения с имеющимися в Сети переводами являются случайными. В руководство включены также мои дополнения и замечания, основанные на опыте разработок и установок различных модов. Обращаю Ваше внимание, что приведенные коды являются всего лишь примерами.
Скачайте MOD. Распакуйте архив (если мод находится в упакованном виде .zip или .rar), после чего откройте файл установки MODа (обычно это файл install.txt или install.mod или Название_мода_на_английском_языке.txt, иногда разработчик добавляет к имени файла номер версии мода) в обычном текстовом редакторе и следуйте его командам. Программа WinAmp (если инструкция по установке мода имеет расширение .mod) для этих целей не подходит.
Если вы ставите мод в первый раз, можете не обращать внимания на файлы, содержащие в имени части слов update или upgrade - это обновления с предыдущей версии мода.
Иногда в каталоге с модом можно увидеть папку "contrib" или "add-ons". Как правило, в этой папке находятся моды, содержащие код или файлы для совместимости или корректной работы других модов, установленных на форуме, или файлы для перехода с предыдущих версий. Устанавливать эти моды, по-другому их называют адд-оны, не всегда обязательно (если иное не указано в инструкции).
Прежде чем начать установку мода, не поленитесь, пройдите на сайт автора мода (обычно указывается в заголовке MOD Author) и проверьте наличие последней версии. Если таковая существует, скачайте её. Затем настоятельно рекомендую прочитать раздел Author Notes. В нем могут содержаться сведения о некоторых нюансах мода, различных проблемах и т.п.
Для тестирования форума после установки мода или модов, рекомендую установить на компъютер пакет Denwer или EasyPHP. Здесь я не буду рассказывать, что это такое и зачем они нужны, проще пройти по указанной ссылке.
Если вы испытываете затруднения, попробуйте устанавливать моды с помощью EasyMOD, но корректная установка или работа форума в этом случае не гарантируется, так как не все моды совместимы с ним, особенно это касается нештатных стилей и сильно модифицированных скриптов. Всё-таки ручная установка модов даст Вам возможность ознакомиться с двигом phpBB и понять его работу.
Установка модов для phpBB3 (Olympus).
Никаких отличий нет, кроме формата установочного файла и синтаксиса некоторых команд. Находите в корневой директории распакованного архива файл install.xml, или имя_мода_возможно_номер_версии.xml, так же загляните в каталог /docs в архиве мода (если есть таковой). Не обращайте внимания на файл вида modx.prosilver.en.xsl (modx.subsilver.en.xsl), это стили для установочного файла.
Открываете найденный файл в браузере, далее действовать согласно нижеследующего текста.
Подробнее по установке модов для phpBB3 смотрите статью Что такое МОДы и как установить МОД
Первое необходимое действие перед установкой мода, это резервное копирование файлов форума и базы данных. Это особенно необходимо, если MOD предусматривает изменение структуры таблиц или базы данных.
- Действие "COPY":
Если Вы видите в моде что-то вроде этого:
Code: #
#-----[ COPY ]------------------------------------------
#
copy file.php to file.php
copy file.tpl to templates/subSilver/file.tpl
То подразумевается, что Вы должны загрузить файл "file.php" в корневую директорию вашего форума phpBB и файл "file.tpl" в папку templates/subSilver без редактирования этих файлов.
- Действие "SQL":
Очень важная команда для изменения базы данных (добавление полей, добавление таблиц, изменение структуры таблиц и т.д.). Означает, что Вы должны выполнить запросы/запрос, которые находятся в этом действии.
Code: #
#-----[ SQL ]------------------------------------------
#
ALTER TABLE phpbb_topics ADD topic_desc varchar(255) DEFAULT '' AFTER topic_title;
Обычно новички спотыкаются на этом действии или пропускают его, свято веря, что незнание освобождает от глюков. Даже не мечтайте. Без выполнения указанных sql-запросов форум после установки мода просто не будет работать или работать будет, но только постоянно выплевывая ругательства в ваш адрес. Вот одно из самых распространенных сообщений об ошибке
Code: Could not obtain post/user information.
DEBUG MODE
SQL Error : 1054 Unknown column 'u.some_field' in 'field list'
Что по-русски означает: ну нет такого поля в таблице.
На форумах я довольно часто встречаю сообщения типа: поставил этот паршивый мод и у меня слетел форум, а потом слетела крыша и вообще автора на мыло . . А что делать с этим [ SQL ]?
Самый простой способ выполнить SQL-запросы, это воспользоваться программой типа phpMyAdmin или выполнить запросы в разделе управление базой данных control-панели вашего сайта (только не спрашивайте, где ее искать, это вопрос к вашему хостеру).
Как правило, уважающий себя хостер, имеет phpMyAdmin на сервере и предоставляет доступ к ней бесплатно. Если у вас нет к ней доступа или дистрибутив отсутствует, есть лишний повод задуматься о смене хостинга или воспользоваться скриптом RST MySQL (во вложении, посколько сайт разработчика приказал долго жить) (утилита a'la phpmyadmin для работы с базами данных MySQL, небольшая, всего 81 КБ, но обладающая всеми возможностями phpmyadmin).
Обратите внимание, что префикс таблиц 'phpbb_' может не совпадать с префиксом Ваших таблиц. Тогда необходимо изменить 'phpbb_' на префикс, используемый в вашей базе данных.
Есть другие способы выполнить SQL-запросы.
В состав мода разработчик может включить файл db_update.php или mod_install.php или что-то в этом роде. В этом случае закачайте этот файл на сервер и запустите его в браузере, после чего, в целях безопасности, удалите.
Если такого файла нет, можете воспользоваться генератором файлов db_update.php для phpbb2 (для двига phpbb3 рекомендую сервис Генератор db_update.php).
И в том, и другом случае Вам уже не придется задумываться о префиксе таблиц форума, так как сгенерированный скрипт подставит в запрос необходимое значение.
- Действие "OPEN":
Это первое основное действие перед обновлением файлов:
Code: #
#-----[ OPEN ]------------------------------------------
#
common.php
или
Code: #
#-----[ OPEN ]------------------------------------------
#
includes/viewtopic.php
Откройте файл в текстовом редакторе, например AkelPad, editplus, СuteHTML, phpedit и т.п. для редактирования. Редакторы типа MSWord для этих целей не подходят, также как и Macromedia Dreamweaver (встречал такие посты на других форумах, почему, мол, у меня форум после установки мода не работает).
- Действие "FIND":
Обычно используется после действия "OPEN", потому что Вы должны найти указанный в команде код для того, что бы произвести какие-либо действия в открытом ранее файле.
Code: #
#-----[ FIND ]------------------------------------------
# around line 184
#
//
// Show 'Board is disabled' message if needed.
//
После того, как Вы открыли файл в вашем текстовом редакторе, воспользуйтесь функцией поиска указанной строки или строк.
Если в комментарии к команде есть указание на номер строки (around line 184), попробуйте сразу перейти на нее. Но учтите, Вы можете не найти в этой строке необходимый код, если редактируемый скрипт или шаблон был ранее модифицирован при установке другого мода. Как правило, для поиска указывается вся строка, но довольно часто встречается и фрагмент строки, как правило, её начало. Делается это для случаев, если файл был модифицирован.
Во многих модах присутствует строка вида: NOTE: this is a partial match (Tip: This may be a partial find and not the whole line). Это означает, что данное совпадение является частичным и дальнейшие действия должны производится с полной строкой.
Иногда встречается несколько подряд идущих действий FIND.
Code: #
#-----[ FIND ]------------------------------------------
#
some code
#
#-----[ FIND ]------------------------------------------
#
some code
Означает, что надо пропустить все повторяющиеся фрагменты кода и последующие действия выполнять с последним найденным кодом.
- Действие "BEFORE, ADD" или "Add before" (для phpBB3):
После команды FIND в файле установки Вы можете увидеть:
Code: #
#-----[ BEFORE, ADD ]--------------------------------------
#
include($phpbb_root_path . 'attach_mod/attachment_mod.'.$phpEx);
После того, как Вы нашли код из команды FIND, добавьте ПЕРЕД ним этот код (в предыдущую строку). У вас должно получиться примерно следующее:
Code: include($phpbb_root_path . 'attach_mod/attachment_mod.'.$phpEx); // -> Test to add before
//
// Show 'Board is disabled' message if needed. -> Text to search
//
- Действие "AFTER, ADD" или "Add after" (для phpBB3):
Code: #
#-----[ AFTER, ADD ]--------------------------------------
#
include($phpbb_root_path . 'attach_mod/attachment_mod.'.$phpEx);
То же самое, что и "BEFORE, ADD", только вместо добавления кода перед кодом, который Вы нашли, Вы должны добавить код ПОСЛЕ (в следующую строку):
Например:
Code: //
// Show 'Board is disabled' message if needed. -> Text to search
//
include($phpbb_root_path . 'attach_mod/attachment_mod.'.$phpEx); // -> Test to add before
- Действие "REPLACE WITH":
Эта команда всегда используется с командой "FIND". Вы должны найти фрагмент кода, чтобы изменить на этот код.
Code: #
#-----[ REPLACE WITH ]------------------------------------------
#
<form action="{S_POST_ACTION}" method="post" name="post" onsubmit="return checkForm(this)" {S_FORM_ENCTYPE}>
Будьте внимательны с этой командой, если Вы устанавливали другие моды на вашем форуме. Вы можете уничтожить добавленный ранее код, что приведет к некорректной работе форума.
В последнее время phpBB Group рекомендует разработчикам модов не использовать эту команду. Вместо нее рекомендуется использовать команды IN-LINE.
Пример:
Code: #
#-----[ FIND ]---------------------------------------------
# around line 225
<form action="{S_POST_ACTION}" method="post" name="post" onsubmit="return checkForm(this)">
#
#-----[ REPLACE WITH ]---------------------------------------
#
<form action="{S_POST_ACTION}" method="post" name="post" onsubmit="return checkForm(this)" {S_FORM_ENCTYPE}>
В этом примере я должен найти (находится в оригинальном файле):
Code: <form action="{S_POST_ACTION}" method="post" name="post" onsubmit="return checkForm(this)">
и изменить на этот:
Code: <form action="{S_POST_ACTION}" method="post" name="post" onsubmit="return checkForm(this)" {S_FORM_ENCTYPE}>
Итак, в моем модифицированном файле у меня будет:
Code: <form action="{S_POST_ACTION}" method="post" name="post" onsubmit="return checkForm(this)" {S_FORM_ENCTYPE}>
- Действие "IN-LINE FIND":
Эта команда, а также "IN-LINE AFTER, ADD", "IN-LINE BEFORE, ADD" и "IN-LINE REPLACE WITH" (действия, которые объясняются ниже), подходит лучше для использования в модах (но это - только мое личное мнение).
Команда, также как и предыдущая, всегда используется с "FIND".
Code: #
#-----[ IN LINE FIND ]------------------------------------------
#
t.topic_title,
Чтобы понять, как это работает, приведу пример:
Code: #
#-----[ FIND ]------------------------------------------
#
$select_sql = ( !$submit ) ? ", t.topic_title, p.enable_bbcode, p.enable_html, p.enable_smilies, p.enable_sig, p.post_username, pt.post_subject, pt.post_text, pt.bbcode_uid, u.username, u.user_id, u.user_sig" : '';
#
#-----[ IN-LINE FIND ]------------------------------------------
#
t.topic_title,
Найдите код, который находится в действии FIND, затем найдите код, находящийся в IN-LINE команде, в пределах кода, который Вы нашли ранее.
- Действие "IN-LINE AFTER, ADD" или "In-line Add after" (для phpBB3):
Означает добавить ПОСЛЕ в этой строке. Выглядит примерно так:
Code: #
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
t.topic_desc,
Это действие - лучший способ замены кода, чем использование "REPLACE" (в случае, если Вы устанавливали другие моды).
Команда используется после действий "FIND" и "IN-LINE FIND".
Пример:
Code: #
#-----[ FIND ]------------------------------------------
#
$select_sql = ( !$submit ) ? ", t.topic_title, p.enable_bbcode, p.enable_html, p.enable_smilies, p.enable_sig, p.post_username, pt.post_subject, pt.post_text, pt.bbcode_uid, u.username, u.user_id, u.user_sig" : '';
#
#-----[ IN-LINE FIND ]------------------------------------------
#
t.topic_title,
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
t.topic_desc,
Здесь Вы должны найти полную строку (первоначальная строка):
Code: $select_sql = ( !$submit ) ? ", t.topic_title, p.enable_bbcode, p.enable_html, p.enable_smilies, p.enable_sig, p.post_username, pt.post_subject, pt.post_text, pt.bbcode_uid, u.username, u.user_id, u.user_sig" : '';
в этой строке Вы должны найти некоторый код:
и добавить непосредственно после него:
После этого строка будет выглядеть так (модифицированная строка):
Code: $select_sql = ( !$submit ) ? ", t.topic_title, t.topic_desc, p.enable_bbcode, p.enable_html, p.enable_smilies, p.enable_sig, p.post_username, pt.post_subject, pt.post_text, pt.bbcode_uid, u.username, u.user_id, u.user_sig" : '';
- Действие "IN-LINE BEFORE, ADD" или "In-line Add before" (для phpBB3):
То же самое, что и "IN-LINE AFTER, ADD", но Вы должны добавить код ПЕРЕД найденным в команде IN-LINE FIND кодом.
Code: #
#-----[ IN-LINE BEFORE, ADD ]------------------------------------------
#
, $topic_desc
Пример:
Code: #
#-----[ FIND ]------------------------------------------
#
prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length);
#
#-----[ IN-LINE FIND ]------------------------------------------
#
$poll_length)
#
#-----[ IN-LINE BEFORE, ADD ]------------------------------------------
#
$topic_desc,
Найдите строку (оригинальная строка):
Code: prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length);
В этой строке найдите:
и добавьте непосредственно перед этим кодом:
После этого модифицированная строка будет выглядеть так:
Code: prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $topic_desc, $poll_length);
- Действие "IN-LINE REPLACE WITH":
Заменяет код, который был найден в IN-LINE FIND, на код в IN-LINE REPLACE WITH.
Code: #
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
Common
Пример:
Code: #
#-----[ FIND ]------------------------------------------
#
$lang['Admin'] = 'phpBB General Admin';
#
#-----[ IN LINE FIND ]------------------------------------------
#
General
#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
Common
Таким образом, модифицированная строка будет выглядеть так:
Code: $lang['Admin'] = 'phpBB Common Admin';
- Действие "INCREMENT" или "IN-LINE INCREMENT":
Используется, чтобы добавить или вычесть число. Как правило, применяется для изменения атрибутов "colspan" или "rowspan" в шаблонах .tpl.
Code: #
#-----[ FIND ]------------------------------------------
#
Powered by <a href="http://www.phpbb.com/" target="_phpbb" class="copyright">phpBB</a> © 2001, {%:1} phpBB Group<br />{TRANSLATION_INFO}</span></div>
#
#-----[ INCREMENT ]-------------------------------------
#
%:1 +10
или
Code: #
#-----[ FIND ]------------------------------------------------
#
alt="{L_WHO_IS_ONLINE}"
#
#-----[ IN-LINE FIND ]----------------------------------------
#
rowspan="{%:1}"
#
#-----[ IN-LINE INCREMENT ]-------------------------------------------
#
%:1 +1
Действие всегда выполняется после команды FIND или IN-LINE FIND. Вы должны прибавить или отнять от числа величину, указанную после %:1. Если имеется несколько чисел в пределах строки ({%:2}, {%:3} и т.д.), соответственно вам надо увеличить/уменьшить эти числа на указанные значения.
Аналогичное действие производит команда IN-LINE INCREMENT.
- Действие "DIY INSTRUCTIONS":
В этой секции обычно помещают дополнительные команды, которые надо выполнить, прежде чем полностью установить мод.
Эти указания могут включать выполнение скриптов для исполнения SQL-запросов, изменение прав доступа (CHMOD) файлов, или что-нибудь еще.
Пример:
Code: #
#-----[ DIY INSTRUCTIONS ]------------------------------------------
#
CHMOD foo.php and bar.php to 777
Open in your web browser and follow the instructions in db_install.php
After mod installation use cron.
Set timeout for 1 day, command should look like
- Действие "SAVE/CLOSE ALL FILES":
Это последнее ваше действие. Как только Вы произвели все вышеописанные действия, сохраните и закройте модифицированные файлы, затем закачайте их на сервер в соответствующие папки. Проверьте работу форума, чтобы удостовериться, что Вы правильно установили мод. Если Вы обнаружили ошибку, проверьте еще раз файлы.
Но не забудьте: перед всем этим, резервное копирование ваших файлов и базы данных.
С уважением, Сергей Ожерельев.
форум Aeroion.ru
Вы можете использовать этот мануал на вашем сайте без ограничений. Единственная просьба: не сшибайте ссылку на сайт автора. Пожалейте чужой труд!
 |