ООО ЭкоЮнит
FAQПоискПользователиГруппыФайлыВходРегистрацияГлавная
Форумы Aeroion.Ru
  » Технические форумы
   » Поддержка и моды для phpBB2
    » Как ставить моды для phpBB?
   Руководство по установке модов для phpBB. Прежде чем спрашивать, что такое [SQL], загляните сюда.
Версия для печати
 
АвторСообщение
Sergey Пол:Муж.


Местный босс - администратор


Зарегистрирован: 06.01.2005
Показать/Спрятать

Этот мануал по установке модов является вольным переводом статьи 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":

    Если Вы видите в моде что-то вроде этого:
    Код:
    
    # 
    #-----[ COPY ]------------------------------------------ 
    # 
    copy file.php to file.php 
    copy file.tpl to templates/subSilver/file.tpl
    

    То подразумевается, что Вы должны загрузить файл "file.php" в корневую директорию вашего форума phpBB и файл "file.tpl" в папку templates/subSilver без редактирования этих файлов.

  • Действие "SQL":

    Очень важная команда для изменения базы данных (добавление полей, добавление таблиц, изменение структуры таблиц и т.д.). Означает, что Вы должны выполнить запросы/запрос, которые находятся в этом действии.
    Код:
    
    # 
    #-----[ SQL ]------------------------------------------ 
    #
    ALTER TABLE phpbb_topics ADD topic_desc varchar(255) DEFAULT '' AFTER topic_title;
    


    Обычно новички спотыкаются на этом действии или пропускают его, свято веря, что незнание освобождает от глюков. Даже не мечтайте. Без выполнения указанных sql-запросов форум после установки мода просто не будет работать или работать будет, но только постоянно выплевывая ругательства в ваш адрес. Вот одно из самых распространенных сообщений об ошибке
    Код:
    Could not obtain post/user information. 
    DEBUG MODE 
    SQL Error : 1054 Unknown column 'u.some_field' in 'field list'

    Что по-русски означает: ну нет такого поля в таблице.
    На форумах я довольно часто встречаю сообщения типа: поставил этот паршивый мод и у меня слетел форум, а потом слетела крыша и вообще автора на мыло Sad. Mr. Green. А что делать с этим [ 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":

    Это первое основное действие перед обновлением файлов:

    Код:
    
    #  
    #-----[ OPEN ]------------------------------------------
    #  
    common.php 
    

    или
    Код:
    
    #  
    #-----[ OPEN ]------------------------------------------
    #  
    includes/viewtopic.php 
    

    Откройте файл в текстовом редакторе, например AkelPad, editplus, СuteHTML, phpedit и т.п. для редактирования. Редакторы типа MSWord для этих целей не подходят, также как и Macromedia Dreamweaver (встречал такие посты на других форумах, почему, мол, у меня форум после установки мода не работает).

  • Действие "FIND":

    Обычно используется после действия "OPEN", потому что Вы должны найти указанный в команде код для того, что бы произвести какие-либо действия в открытом ранее файле.
    Код:
    
    # 
    #-----[ 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.
    Код:
    
    # 
    #-----[ FIND ]------------------------------------------ 
    #
    some code
    # 
    #-----[ FIND ]------------------------------------------ 
    #
    some code
    

    Означает, что надо пропустить все повторяющиеся фрагменты кода и последующие действия выполнять с последним найденным кодом.

  • Действие "BEFORE, ADD" или "Add before" (для phpBB3):

    После команды FIND в файле установки Вы можете увидеть:

    Код:
    
    # 
    #-----[ BEFORE, ADD ]--------------------------------------
    # 
    include($phpbb_root_path . 'attach_mod/attachment_mod.'.$phpEx);
    


    После того, как Вы нашли код из команды FIND, добавьте ПЕРЕД ним этот код (в предыдущую строку). У вас должно получиться примерно следующее:

    Код:
    
    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):

    Код:
    
    # 
    #-----[ AFTER, ADD ]--------------------------------------
    # 
    include($phpbb_root_path . 'attach_mod/attachment_mod.'.$phpEx);
    


    То же самое, что и "BEFORE, ADD", только вместо добавления кода перед кодом, который Вы нашли, Вы должны добавить код ПОСЛЕ (в следующую строку):
    Например:
    Код:
    
    // 
    // 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". Вы должны найти фрагмент кода, чтобы изменить на этот код.

    Код:
    
    # 
    #-----[ REPLACE WITH ]------------------------------------------ 
    # 
    <form action="{S_POST_ACTION}" method="post" name="post" onsubmit="return checkForm(this)" {S_FORM_ENCTYPE}>
    


    Будьте внимательны с этой командой, если Вы устанавливали другие моды на вашем форуме. Вы можете уничтожить добавленный ранее код, что приведет к некорректной работе форума.
    В последнее время phpBB Group рекомендует разработчикам модов не использовать эту команду. Вместо нее рекомендуется использовать команды IN-LINE.

    Пример:
    Код:
    
    # 
    #-----[ 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}>
    

    В этом примере я должен найти (находится в оригинальном файле):
    Код:
    
    <form action="{S_POST_ACTION}" method="post" name="post" onsubmit="return checkForm(this)">
    

    и изменить на этот:
    Код:
    
    <form action="{S_POST_ACTION}" method="post" name="post" onsubmit="return checkForm(this)" {S_FORM_ENCTYPE}>
    

    Итак, в моем модифицированном файле у меня будет:
    Код:
    
    <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".

    Код:
    
    # 
    #-----[ IN LINE FIND ]------------------------------------------ 
    # 
    t.topic_title,
    

    Чтобы понять, как это работает, приведу пример:
    Код:
    
    # 
    #-----[ 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):

    Означает добавить ПОСЛЕ в этой строке. Выглядит примерно так:

    Код:
    
    # 
    #-----[ IN-LINE AFTER, ADD ]------------------------------------------ 
    # 
    t.topic_desc,
    

    Это действие - лучший способ замены кода, чем использование "REPLACE" (в случае, если Вы устанавливали другие моды).
    Команда используется после действий "FIND" и "IN-LINE FIND".
    Пример:
    Код:
    
    # 
    #-----[ 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,
    

    Здесь Вы должны найти полную строку (первоначальная строка):
    Код:
    
    $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" : ''; 
    

    в этой строке Вы должны найти некоторый код:
    Код:
    
    t.topic_title, 
    

    и добавить непосредственно после него:
    Код:
    
    t.topic_desc,
    

    После этого строка будет выглядеть так (модифицированная строка):
    Код:
    
    $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 кодом.

    Код:
    
    # 
    #-----[ IN-LINE BEFORE, ADD ]------------------------------------------ 
    # 
    , $topic_desc
    

    Пример:
    Код:
    
    # 
    #-----[ 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,
    

    Найдите строку (оригинальная строка):
    Код:
    
    prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length); 
    

    В этой строке найдите:
    Код:
    
    $poll_length) 
    

    и добавьте непосредственно перед этим кодом:
    Код:
    
    $topic_desc, 
    

    После этого модифицированная строка будет выглядеть так:
    Код:
    
    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.

    Код:
    
    # 
    #-----[ IN-LINE REPLACE WITH ]------------------------------------------ 
    # 
    Common
    


    Пример:
    Код:
    
    # 
    #-----[ FIND ]------------------------------------------ 
    # 
    $lang['Admin'] = 'phpBB General Admin';
    
    # 
    #-----[ IN LINE FIND ]------------------------------------------ 
    # 
    General
    
    # 
    #-----[ IN-LINE REPLACE WITH ]------------------------------------------ 
    # 
    Common
    


    Таким образом, модифицированная строка будет выглядеть так:
    Код:
    
    $lang['Admin'] = 'phpBB Common Admin';
    


  • Действие "INCREMENT" или "IN-LINE INCREMENT":

    Используется, чтобы добавить или вычесть число. Как правило, применяется для изменения атрибутов "colspan" или "rowspan" в шаблонах .tpl.

    Код:
    
    # 
    #-----[ FIND ]------------------------------------------ 
    # 
    Powered by <a href="http://www.phpbb.com/" target="_phpbb" class="copyright">phpBB</a> &copy; 2001, {%:1} phpBB Group<br />{TRANSLATION_INFO}</span></div> 
    
    # 
    #-----[ INCREMENT ]------------------------------------- 
    # 
    %:1 +10
    


    или

    Код:
    
    # 
    #-----[ 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) файлов, или что-нибудь еще.

    Пример:
    Код:
    
    # 
    #-----[ 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


Вы можете использовать этот мануал на вашем сайте без ограничений. Единственная просьба: не сшибайте ссылку на сайт автора. Пожалейте чужой труд!

Sypex Dumper 2 — сделает бэкап БД MySQL красиво, умно и очень быстро


Скачать sql.zip (17.71 KB). Добавлен/обновлён Вт 30 Янв, 2007 19:36. Скачано 229 раз(а).
Утилита a'la phpmyadmin для работы с базами данных MySQL


_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
ВверхНа форуме нет Профиль Сайт Имя в Skype
Показать сообщения:   

Общий рейтинг темы Как ставить моды для phpBB?
Средний рейтинг: 4.30 :: Мин. рейтинг: 1 :: Макс. рейтинг: 5 :: Количество оценок: 10
Выберите вашу оценку: 1   2   3   4   5  


Похожие темы
Тема Автор Форум Ответов Посл. сообщение
Нет новых сообщений Важная: Анонсы и поддержка модов для phpBB 2.0.x с phpbbguru.net
На http://www.phpbbguru.net/community/forum4.html из темы Анонсы и поддержка модов для phpBB 2.0.x удалены все моды (удалены вложения с модами). Может быть есть смысл выложить их на этом форуме ?
vlad77 Архив модов для phpBB 2.0.x 8 Пн 10 Апр, 2017 22:57 Посмотреть последнее сообщение
Sergey
Нет новых сообщений Ищу моды для phpBB 3.0.11
Здравствуйте. Ищу моды для версии 3.0.11 , хотя если нет, то для 3.1 или 3.2 тоже пойдет)) А именно мод, который позволит закрепить текущий аватар на определенном сообщении в теме)
Джамбо Поддержка и моды для phpBB3 0 Вс 30 Июл, 2017 15:11 Посмотреть последнее сообщение
Джамбо
Нет новых сообщений Конвертация phpBB 2.0.22 в phpBB 3.0.10
Привет всем специалистам. При конвертации http://www.petsinform.com/forum/ из phpBB 2.0.22 в phpBB 3.0.10 на 17-м пункте инсталяции все зависает. В чем может быть проблема? Тестируем на http://pets.net.ua/forum/
petsinform Поддержка и моды для phpBB3 6 Пт 30 Мар, 2012 18:34 Посмотреть последнее сообщение
petsinform
Нет новых сообщений Флудильня
для phpbb 2
Кто возьмется поставить флудильню точно такую же как здесь: http://siava.ru/forum/forums.php перед футером. С сиавой связывался, нет времени у него. Там необходимо запрос к базе, можно ли через какой скрипт залив на
Benelli Поддержка и моды для phpBB2 3 Пт 04 Апр, 2014 01:51 Посмотреть последнее сообщение
vlad77
Нет новых сообщений Ошибка при прочтении ЛС в PHPbb
/как побороть такое? Цитата DEBUG MODE SQL Error : 1690 BIGINT UNSIGNED value is out of range in (`phpbb`.`phpbb_users`.`user_unread_privmsg` - 1) UPDATE phpbb_users SET user_unread_privmsg = user_unread_privmsg - 1
miracle Поддержка и моды для phpBB2 7 Вс 15 Июн, 2014 22:15 Посмотреть последнее сообщение
miracle






Часовой пояс: UTC + 3 часа
Просматривают тему:
Зарегистрированные пользователи: Нет

Перейти:   
Версия для печати
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы
/a
Имя:

Пароль:

Запомнить
  Яндекс.Метрика
CrackerTracker © 2004 - 2017 CBACK.de