ООО ЭкоЮнит
FAQSearchMemberlistUsergroupsFilesLog inRegisterГлавная
Aeroion.Ru Forum Index
  » Технические форумы
   » Поддержка и моды для phpBB2
    » Как ставить моды для phpBB?
   Руководство по установке модов для phpBB. Прежде чем спрашивать, что такое [SQL], загляните сюда.
printer-friendly view
 
AuthorMessage
Sergey Gender:Male


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


Joined: 06 Jan 2005
Show/Hide

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

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

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

    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:
    
    t.topic_title, 
    

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

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

    и добавьте непосредственно перед этим кодом:
    Code:
    
    $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, $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> &copy; 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


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

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


Download sql.zip (17.71 KB). Added/Updated Tue 30 Jan, 2007 19:36. Downloaded 229 Time(s).
Утилита 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!
Back to topOffline View user's profile Visit poster's website Skype Name
Display posts from previous:   

Summary Rating For >> Как ставить моды для phpBB?
Average Rating: 4.30 :: Min Rating: 1 :: Max Rating: 5 :: Number of Ratings: 10
Choose Rating: 1   2   3   4   5  


Similar Topics
Topic Author Forum Replies Last Post
No new posts Sticky: Анонсы и поддержка модов для phpBB 2.0.x, удалённых с других сайтов
На http://www.phpbbguru.net/community/forum4.html из темы Анонсы и поддержка модов для phpBB 2.0.x удалены все моды (удалены вложения с модами). Может быть есть смысл выложить их на этом форуме ?
vlad77 Архив модов для phpBB 2.0.x 14 Tue 06 Feb, 2018 09:31 View latest post
vlad77
No new posts Ищу моды для phpBB 3.0.11
Здравствуйте. Ищу моды для версии 3.0.11 , хотя если нет, то для 3.1 или 3.2 тоже пойдет)) А именно мод, который позволит закрепить текущий аватар на определенном сообщении в теме)
Джамбо Поддержка и моды для phpBB3 0 Sun 30 Jul, 2017 15:11 View latest post
Джамбо
No new posts Конвертация 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 Fri 30 Mar, 2012 18:34 View latest post
petsinform
No new posts Флудильня
для phpbb 2
Кто возьмется поставить флудильню точно такую же как здесь: http://siava.ru/forum/forums.php перед футером. С сиавой связывался, нет времени у него. Там необходимо запрос к базе, можно ли через какой скрипт залив на
Benelli Поддержка и моды для phpBB2 3 Fri 04 Apr, 2014 01:51 View latest post
vlad77
No new posts Ошибка при прочтении ЛС в PHPbb
/как побороть такое? Quote 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 WHERE
miracle Поддержка и моды для phpBB2 7 Sun 15 Jun, 2014 22:15 View latest post
miracle






All times are UTC + 3 hours
Users browsing this topic:
Registered Users: None

Jump to:   
printer-friendly view
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum
/a
Username:

Password:

Log me on automatically each visit
  Яндекс.Метрика
CrackerTracker © 2004 - 2018 CBACK.de