Extension:AddPersonalUrls/ru

From MediaWiki.org
Jump to: navigation, search
Справка по расширениям MediaWiki - список
Crystal Clear action run.png
AddPersonalUrls

Статус релиза: stable

Реализация MyWiki
Описание Добавляет страницы в личные ссылки.
Автор(а) RV1971talk
Последняя версия 0.31 (2007-10-01)
MediaWiki >=1.10
Лицензия Тип лицензии не указан
Загрузка #Код
#Лог изменений
Параметры

ExtAddPersonalUrls::$mTable

Использованные hook'и
PersonalUrls
Проверить использование (экспериментальная функция)


Этот плагин добавляет страницы в список личных ссылок. Можно представить что это демонстрация использования крюка PersonalUrls. Скорее всего придётся изменить список страниц для собственных нужд.

Данная версия добавляет следующие ссылки:

  • Ссылку на служебную страницу основанную на Extension:DynamicPageList, показывающую все подстраницы основной страницы пользователя.
  • Ссылку на любимые страницы пользователя.
  • Ссылку на страницу песочницу пользователя.
  • Ссылку на страницу записок пользователя.

За исключением первой, все страницы пусты в начале. Тебе можно будет редактировать их, используя любой викитекст. Имена являются просто примерами.

Contents

Инсталляция [edit]

Не смотря на то что этот плагин был протестирован на МедияВики 1.10, скорее всего он будет работать и на более ранних версиях.

  • Сохрани #Код в файлextensions/AddPersonalUrls/AddPersonalUrls.php.
require_once("extensions/AddPersonalUrls/AddPersonalUrls.php");
  • Создай системные сообщения которые будт использоваться для наименования страниц. Нужные страницы и возможные значения представлены ниже:
    • MediaWiki:Mypages – my pages
    • MediaWiki:Favorites – my favorites
    • MediaWiki:Sandbox – my sandbox
    • MediaWiki:Mynotes – my notes
  • Новые ссылки описываются в статическом члене класса ExtAddPersonalUrls::$mTable. Ты можешь изменить его в LocalSettings.php. Текст '$username' будет заменён на имя конкретного пользователя (тебе придётся использовать одиночные ковычки чтобы PHP не заменил значение на пустую строку во время интерпретации LocalSettings.php).
  • Если ты хочешь использовать первую ссылку, тебе придётся установить Extension:DynamicPageList (версию >= 1.4) и Call Extension (в которой находится в том-же блоке). Так-же надо будет создать страницу Шаблон:My_Pages в которой должно находится:
{{#dpl: namespace=User|titlematch={{{1}}}/%}}
  • Либо-же можно убрать первую ссылку добавив следующую строку в LocalSettings.php:
unset( ExtAddPersonalUrls::$mTable[0] );

Код [edit]

<?php
$wgExtensionCredits['other'][] = array(
  'name' => 'AddPersonalUrls',
  'version' => ExtAddPersonalUrls::VERSION,
  'author' => '[http://www.mediawiki.org/wiki/User:RV1971 RV1971]',
  'url' => 'http://www.mediawiki.org/wiki/Extension:AddPersonalUrls',
  'description' => 'Add some items to the personal URLs'
);
 
$wgExtAddPersonalUrls = new ExtAddPersonalUrls();
 
$wgHooks['PersonalUrls'][] = array( &$wgExtAddPersonalUrls, 
                                    'onAddPersonalUrls' );
class ExtAddPersonalUrls {
  const VERSION = '0.31';
 
  public static $mTable =
    array ( array( 'page' => 'Special:Call',
                   'name' => 'mypages',
                   'args' => '/My_Pages,$username' ),
            array( 'page' => 'User:$username/Favorites',
                   'name' => 'favorites',
                   'args' => null ),
            array( 'page' => 'User:$username/Sandbox',
                   'name' => 'sandbox',
                   'args' => null ),
            array( 'page' => 'User:$username/Notes',
                   'name' => 'mynotes',
                   'args' => null ) );
 
  function onAddPersonalUrls( &$personal_urls, &$wgTitle ) {
      global $wgUser;
 
      $username = $wgUser->getName();
 
      if( $wgUser->getID() ) {
          $pageurl = $wgTitle->getLocalURL();
 
          $urls[] = array_shift( $personal_urls );
 
          foreach( self::$mTable as $item ) {
              $urldetails = 
                Skin::makeUrlDetails( str_replace( '$username', 
                                                   $username,
                                                   $item['page'] ) );
 
              $args = str_replace( '$username', $username, $item['args'] );
 
              $urls[] = array( 'text' => wfMsg( $item['name'] ),
                               'href' => $urldetails['href'] . $args,
                               'class' => $args ? false
                               : ($urldetails['exists'] ? false : 'new'),
                               'active' => $args ? false 
                               : ($urldetails['href'] == $pageurl) );
            }
 
          $personal_urls = $urls + $personal_urls;
        }
 
      return true;
    }
}

Лог изменений [edit]

0.31 
Перешёл на новую версию Extension:DynamicPageList, которая больше не использует конкретную служебную страницу.
0.3 
  • Параметр теперь член класса.
0.21 
  • Исправление в mypages.
0.2 
  • Конфигурация использую список.
0.1 
  • Первая версия.

Смотри так-же [edit]

Язык: English  • русский