Differences

This shows you the differences between the selected revision and the current version of the page.

punbb13:extern_ed_pun_ext 2009/07/17 14:31 punbb13:extern_ed_pun_ext 2020/02/06 11:04 current
Line 49: Line 49:
  * Use 'singlequotes' as opposed to "doublequotes" when working with strings   * Use 'singlequotes' as opposed to "doublequotes" when working with strings
  <code php>   <code php>
 +
  $str = 'Users: '.$num_users;   $str = 'Users: '.$num_users;
 +
  </code>   </code>
 +
  //**NOT**//   //**NOT**//
 +
  <code php>   <code php>
  $str = "Users: $num_users";   $str = "Users: $num_users";
  </code>   </code>
 +
  * Use CSRF token with GET/POST date:   * Use CSRF token with GET/POST date:
    * POST     * POST
Line 86: Line 91:
==== SQL specification ==== ==== SQL specification ====
-===== Database helpers ===== 
On ''include/common.php'' inclusion, the proper implementation of [[database layer]] class is being also included according to forum configuration. On ''include/common.php'' inclusion, the proper implementation of [[database layer]] class is being also included according to forum configuration.
An instance of this database layer named ''$forum_db'' is being created in global scope to provide [[database helpers]]. An instance of this database layer named ''$forum_db'' is being created in global scope to provide [[database helpers]].
-==== How to perform a query ====+== How to perform a query ==
  * Direct query. You can simply write an SQL-statement and execute it.   * Direct query. You can simply write an SQL-statement and execute it.
<code php> $result = $forum_db->query('SELECT * FROM topics WHERE id = 10');</code> <code php> $result = $forum_db->query('SELECT * FROM topics WHERE id = 10');</code>
Be sure, that your SQL code is cross-compatible with all database engines supported by PunBB. Be sure, that your SQL code is cross-compatible with all database engines supported by PunBB.
-  * Using [[query builder]]. You may transparently build database queries. All the specific of database engines and database structure will automatically be taken in account. Example of usage (FIXME make it more informative):+  * Using [[query builder]]. You may transparently build database queries. All the specific of database engines and database structure will automatically be taken in account. Example of usage:
<code php>$query = array( <code php>$query = array(
  'SELECT'  => '*',   'SELECT'  => '*',
Line 145: Line 149:
==== Manifest in general ==== ==== Manifest in general ====
 +
 +Файл манифест представляет из себя основную часть расширения. В нем приписывается работа.
 +Обязательной частью расширения является файл manifest.xml. Он содержит основную идею расширения, реализованная в коде. Файл написан на скриптовом языке XML.
 +Вот пример файла manifest.xml
 +
 +<code php>
 +<?xml version="1.0" encoding="utf-8"?>
 +
 +<extension engine="1.0">
 +  <id>forum_ext_name</id>
 +  <title>My best extension</title>
 +  <version>1.0</version>
 +  <description>Description of my best extension</description>
 +  <author>I and I and not so I</author>
 +  <minversion>1.1</minversion>
 +  <maxtestedon>2.3.1</maxtestedon>
 +
 +  <note type="install" timing="pre">Примечания при установке, которые обязательны для выполнения. Иначе расширение не будет работать.</note>
 +  <note type="uninstall" timing="pre">Примечения при удалении. Произойдут действия, которые могут удалить нужные данные.</note>
 +</code>
 +
 +Как и в HTML, каждый объект, указанный в угловых скобках, называется тег. Они бывают двух видов: открывающие и закрывающие.
 +Теперь рассмотрим весь список обязательных тегов и каждый тег в отдельности со всеми его свойствами.
==== Blocks of manifest ==== ==== Blocks of manifest ====
== <extension> == == <extension> ==
 +
 +Начальный тег, который объявляет, что начинается расширение и оно будет написано на определенной версии движка.
 +Его единственным параметром является параметр с именем "engine", обозначающий версию движка XML, на котором работает расширение.
== <id> == == <id> ==
 +
 +В теге id указывается краткое имя расширения. Краткое имя расширения должно совпадать с именем папки, из которой запускается расширение.
 +В противном случае будет выдаваться ошибка о несовпадании имен.
 +Все части краткого имени расширения в этом теге разделяются символом "_" и прописываются только в нижнем регистре.
== <title> == == <title> ==
 +
 +Тег title содержит полное, официальное имя расширения.
 +В данном теге имя расширения указывается полностью. Ограничения на регистр и тип разделителя не накладывается.
== <version> == == <version> ==
 +
 +В этом теге указывается текущая версия расширения.
 +Версия расширения указывается в зависимости от этапа создания.
== <description> == == <description> ==
 +
 +В теге description содержится краткое функциональное описание. К примеру, какие действия выполняет расширение и что показывает.
 +Не стоит полностью описывать функциональность расширения. Описывать нужно только главное.
== <author> == == <author> ==
 +
 +В теге author указывается имя автора расширения, либо группа авторов, либо команда разработчиков.
== <minversion> == == <minversion> ==
 +
 +Тег minversion указывает минимальную версию PunBB, на которой расширение работает стабильно и с полной функциональностью.
== <maxtestedon> == == <maxtestedon> ==
 +
 +Тег maxtestedon показывает последнюю версию PunBB, на которой проводилось тестирование расширения.
 +Если версия, указанная в теге, не совпадает с текущей версией PunBB, то работа расширения может быть нарушена.
== <note> == == <note> ==
-== Install ==+Тег note описывает возможные сложности при установке расширения. Либо описывает условия, при которых расширение будет работать корректно.
-== Uninstall ==+  Параметр //**Type**// - это параметр, указывающий примечания, которые следует выводить в конкретном случае. Существует только два значения, которые принимает параметр, - install и uninstall. Рассмотрим их: 
 +   
 +  * Install - значение параметра type, при котором примечания будут выводится при установке расширения. Следует указывать примечания, касающиеся только установки.
-== Type ==+  * Uninstall - значение параметра type, при котором примечания будут выводится при удалении расширения. Следует указывать примечания, касающиеся только удаления.
== <dependencies> == == <dependencies> ==
Line 206: Line 258:
  * Create the idea of extension   * Create the idea of extension
  * Create the wiki article for the extension and write the general idea and the specification there.   * Create the wiki article for the extension and write the general idea and the specification there.
-    * The page url must be http://punbb.informer.com/wiki/punbb13:<extension_id>, e.g. http://punbb.informer.com/wiki/punbb13:pun_pm.+    * The page url must be https://punbb.informer.com/wiki/punbb13:<extension_id>, e.g. https://punbb.informer.com/wiki/punbb13:pun_pm.
    * You may also start the discussion in Forums to ask users to add their feature requests to the specification.     * You may also start the discussion in Forums to ask users to add their feature requests to the specification.
  * Add the ticket to the Trac (or just start a text file, if you have no Trac). List the main tasks to complete the extension.   * Add the ticket to the Trac (or just start a text file, if you have no Trac). List the main tasks to complete the extension.

Personal Tools