MediaWiki/FAQ — различия между версиями
Bakari (обсуждение | вклад) (→Ссылки) |
Evgen (обсуждение | вклад) (→Как разрешить закачку файлов в других форматах) |
||
Строка 26: | Строка 26: | ||
</source> | </source> | ||
для того, чтобы разрешить несколько дополнительных форматов. | для того, чтобы разрешить несколько дополнительных форматов. | ||
+ | |||
+ | == Почему под OS/2 (eComStation) не работает закачка файлов == | ||
+ | Пишет при попытке загрузить файл "Невозможно создать директорию «temp/b/be» или "Невозможно создать директорию «public/b/be»". При исследовании вопроса выясняется, что порт php не может создать каталог вида "F:\wiki/images/b/be" | ||
+ | |||
+ | Причина в файле \includes\GlobalFunctions.php, функция wfMkdirParents. Замените на | ||
+ | <source lang="php"> | ||
+ | |||
+ | function wfMkdirParents( $fullDir, $mode = null, $caller = null ) { | ||
+ | global $wgDirectoryMode; | ||
+ | |||
+ | if ( !is_null( $caller ) ) { | ||
+ | wfDebug( "$caller: called wfMkdirParents($dir)" ); | ||
+ | } | ||
+ | |||
+ | if( strval( $fullDir ) === '' || file_exists( $fullDir ) ) | ||
+ | return true; | ||
+ | |||
+ | if ( is_null( $mode ) ) | ||
+ | $mode = $wgDirectoryMode; | ||
+ | |||
+ | # Go back through the paths to find the first directory that exists | ||
+ | $currentDir = $fullDir; | ||
+ | $createList = array(); | ||
+ | while ( strval( $currentDir ) !== '' && !file_exists( $currentDir ) ) { | ||
+ | # Strip trailing slashes | ||
+ | $currentDir = rtrim( $currentDir, '/\\' ); | ||
+ | |||
+ | # Add to create list | ||
+ | $createList[] = $currentDir; | ||
+ | |||
+ | # Find next delimiter searching from the end | ||
+ | $p = max( strrpos( $currentDir, '/' ), strrpos( $currentDir, '\\' ) ); | ||
+ | if ( $p === false ) { | ||
+ | $currentDir = false; | ||
+ | } else { | ||
+ | $currentDir = substr( $currentDir, 0, $p ); | ||
+ | } | ||
+ | } | ||
+ | if ( count( $createList ) == 0 ) { | ||
+ | # Directory specified already exists | ||
+ | return true; | ||
+ | } elseif ( $currentDir === false ) { | ||
+ | # Went all the way back to root and it apparently doesn't exist | ||
+ | wfDebugLog( 'mkdir', "Root doesn't exist?\n" ); | ||
+ | return false; | ||
+ | } | ||
+ | # Now go forward creating directories | ||
+ | $createList = array_reverse( $createList ); | ||
+ | |||
+ | # Is the parent directory writable? | ||
+ | if ( $currentDir === '' ) { | ||
+ | $currentDir = '/'; | ||
+ | } | ||
+ | if ( !is_writable( $currentDir ) ) { | ||
+ | wfDebugLog( 'mkdir', "Not writable: $currentDir\n" ); | ||
+ | return false; | ||
+ | } | ||
+ | |||
+ | foreach ( $createList as $dir ) { | ||
+ | # use chmod to override the umask, as suggested by the PHP manual | ||
+ | if ( !mkdir( $dir, $mode ) || !chmod( $dir, $mode ) ) { | ||
+ | wfDebugLog( 'mkdir', "Unable to create directory $dir\n" ); | ||
+ | return false; | ||
+ | } | ||
+ | } | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | </source> | ||
== Как добавить мини-иконку ([[favicon]]) == | == Как добавить мини-иконку ([[favicon]]) == |
Версия 21:58, 10 июня 2010
MediaWiki/FAQ
Содержание
- 1 Методика обновления кодировки Backwards-compatible UTF-8 ->MySQL 4.1/5.0 UTF-8
- 2 Как разрешить закачку файлов в других форматах
- 3 Почему под OS/2 (eComStation) не работает закачка файлов
- 4 Как добавить мини-иконку (favicon)
- 5 Как изменить лого в левом верхнем углу
- 6 Как запретить незарегистрированным участникам редактировать статьи
- 7 Как сделать перенаправление для категории
- 8 Как удалить статью с "недопустимыми символами" в названии
- 9 Как совместить внутренний и внешний поиск
- 10 Как использовать ссылку на поиск гугля на произвольной странице
- 11 Как сделать оглавление без номеров
- 12 Как сделать чтобы цвет фона таблицы совпадал с цветом фона страницы
- 13 Как администратору создать нового пользователя
- 14 Ссылки
Методика обновления кодировки Backwards-compatible UTF-8 ->MySQL 4.1/5.0 UTF-8
- MediaWiki 1.6.10
- Mysql 5.0.45
- сохраняем все в sql -файл т.е. делаем mysqldump --default-character-set=latin1 имя_базы >файло.sql это файло.sql содержит политически правильный и единственно верный utf8 без всяких извращений.
- редактируем файло.sql чем можем...(не вордом конечно) и меняем charset latin1 на charset utf8
- убеждаемся, что сделали именно mysqldump --default-character-set=latin1, а не экспрот в sql из phpMyAdmin'а (иначе плакали ваши
денюжкирусские названия-линки статей) - .# заходим в phpMyAdmin (необязательно, но там лучше видно), дропаем (убиваем) имя_базы, создаем базу заново, при этом выбираем utf8_bin collation. И делаем import из файло.sql
Чтобы убедится, что utf8 заработал - идем в основную таблицу page и смотрим на первую запись. Должны увидеть текст "Заглавная страница" вместо непоймичего
- Идем в LocalSettings.php и меняем false на true
# Experimental charset support for MySQL 4.1/5.0. ##$wgDBmysql5 = false; $wgDBmysql5 = true;
Как разрешить закачку файлов в других форматах
В LocalSettings.php добавляем:
:$wgFileExtensions[] = 'pdf';
для одного формата или
:$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'pdf', 'txt' );
для того, чтобы разрешить несколько дополнительных форматов.
Почему под OS/2 (eComStation) не работает закачка файлов
Пишет при попытке загрузить файл "Невозможно создать директорию «temp/b/be» или "Невозможно создать директорию «public/b/be»". При исследовании вопроса выясняется, что порт php не может создать каталог вида "F:\wiki/images/b/be"
Причина в файле \includes\GlobalFunctions.php, функция wfMkdirParents. Замените на
function wfMkdirParents( $fullDir, $mode = null, $caller = null ) { global $wgDirectoryMode; if ( !is_null( $caller ) ) { wfDebug( "$caller: called wfMkdirParents($dir)" ); } if( strval( $fullDir ) === '' || file_exists( $fullDir ) ) return true; if ( is_null( $mode ) ) $mode = $wgDirectoryMode; # Go back through the paths to find the first directory that exists $currentDir = $fullDir; $createList = array(); while ( strval( $currentDir ) !== '' && !file_exists( $currentDir ) ) { # Strip trailing slashes $currentDir = rtrim( $currentDir, '/\\' ); # Add to create list $createList[] = $currentDir; # Find next delimiter searching from the end $p = max( strrpos( $currentDir, '/' ), strrpos( $currentDir, '\\' ) ); if ( $p === false ) { $currentDir = false; } else { $currentDir = substr( $currentDir, 0, $p ); } } if ( count( $createList ) == 0 ) { # Directory specified already exists return true; } elseif ( $currentDir === false ) { # Went all the way back to root and it apparently doesn't exist wfDebugLog( 'mkdir', "Root doesn't exist?\n" ); return false; } # Now go forward creating directories $createList = array_reverse( $createList ); # Is the parent directory writable? if ( $currentDir === '' ) { $currentDir = '/'; } if ( !is_writable( $currentDir ) ) { wfDebugLog( 'mkdir', "Not writable: $currentDir\n" ); return false; } foreach ( $createList as $dir ) { # use chmod to override the umask, as suggested by the PHP manual if ( !mkdir( $dir, $mode ) || !chmod( $dir, $mode ) ) { wfDebugLog( 'mkdir', "Unable to create directory $dir\n" ); return false; } } return true; }
Как добавить мини-иконку (favicon)
В LocalSettings.php добавляем:
#минииконка $wgFavicon="/favicon.ico";
Как изменить лого в левом верхнем углу
#лого в левом вехнем углу $wgLogo = "/images/logo.png";
Как запретить незарегистрированным участникам редактировать статьи
$wgEmailConfirmToEdit=true;
Просмотр по-прежнему возможен, кнопка "править" показывается, однако при попытке редактирования появится напоминание о необходимости подтвердить регистрацию.
Как сделать перенаправление для категории
Q: хочется одну категорию перенаправить на другую категорию (скажем, в статье вставляем категорию с коротким названием: "МСЭ", а редирект делаем на статью с длинным названием: "Источники:Малая советская энциклопедия"). Если в категорию "МСЭ" поставить
#redirect [[Категория:Источники:Малая советская энциклопедия]]
или
#redirect [[:Категория:Источники:Малая советская энциклопедия]]
то не один из вариантов не работает.
A: Обломись бабка. Это похоже уже фича. См. Template talk:Category redirect. Было обещано, что разработчики исправят, но пошел уже третий год...
Как удалить статью с "недопустимыми символами" в названии
Q: Создал статью с обратным слешем в названии (например, Тест \" тест \" — Нмб Тест \" тест \" ), при попытке просмотра просмотра веб-сервер выдает ошибку 404 "Not Found. The requested URL /index.php/Тест_\"_тест_\" was not found on this server." Как мне удалить эту страницу ?
A: Данный вопрос может возникнуть в случае использования на сервере операционных систем Windows или OS/2
Берем полный URL
http://wiki.laser.ru/index.php/%D0%A2%D0%B5%D1%81%D1%82_%5C%22_%D1%82%D0%B5%D1%81%D1%82_%5C%22
Добавляем после "index.php" текст ?title= (не забыть удалить / !), а в конец URL'ла - &action=delete
http://wiki.laser.ru/index.php?title=%D0%A2%D0%B5%D1%81%D1%82_%5C%22_%D1%82%D0%B5%D1%81%D1%82_%5C%22&action=delete
Как совместить внутренний и внешний поиск
Q: Как совместить внутренний и внешний поиск, так, как это сделано в Википедии ?
A: В Википедии это сделано через использование javascript - скриптов MediaWiki:Search.js и MediaWiki:Common.js (в ЭНЭ — MediaWiki:Search.js и MediaWiki:Common.js). Следовательно, нужно, во-первых, разрешить использование javascript в браузере, во-вторых, создать Search.js, и в-третьих, отредактировать Common.js средствами MediaWiki.
В частности, в MediaWiki:Common.js следует добавить следующие строки:
//External search if (wgCanonicalNamespace == 'Special' && wgCanonicalSpecialPageName == 'Search') importScript('MediaWiki:Search.js')
Как использовать ссылку на поиск гугля на произвольной странице
Q: Как использовать ссылку на поиск гугля на произвольной странице ?
А1 Вот так: пишем [[google:Собака]], получаем: google:Собака.
A2: установить расширение MediaWiki Extension:Google Custom Search Engine, после чего пишем:<Googlecoop></Googlecoop>, получаем
Как сделать оглавление без номеров
Q: Как сделать оглавление страницы (Table of contents) без номеров ? При викификации стандартов, законов и других документов в оглавлении появлется некрасивое дублирование.
А: Использовать класс nonumtoc.
В тело статьи добавляем конструкцию
- <div class="nonumtoc">__TOC__</div>
а в MediaWiki:Common.css —
/* When <div class="nonumtoc"> is used on the table of contents, the ToC will display without numbers */ .nonumtoc .tocnumber { display:none; } .nonumtoc #toc ul, .nonumtoc .toc ul { line-height: 1.5em; list-style: none; margin: .3em 0 0; padding: 0; } .nonumtoc #toc ul ul, .nonumtoc .toc ul ul { margin: 0 0 0 2em; }
Пример применения - смотри статью Лазерная безопасность.
Как сделать чтобы цвет фона таблицы совпадал с цветом фона страницы
Q: Как сделать чтобы цвет фона таблицы совпадал с цветом фона страницы ? Вопрос актуален для, например, пространства ЭНЭ ({{SITENAME}}), где для стандарного скина используется слегка голубоватый фон, в то время как для основного пространства фон белый. Таблицы с параметром border=0 обычно используются для форматирования текста с изображениями. Результат такого использования таблиц в пространстве {{SITENAME}} при несовпадении фонов страницы и таблицы получается отвратительным.
А: <Simetrical> {| style="background: transparent"
Примечание:Simetrical - имя пользователя на irc-канале #mediawiki
Как администратору создать нового пользователя
Q: Как администратору создать нового пользователя ?
А1: залогинившись администратором, зайти на специальную страницу Special:Userlogin/signup.
А2: нажать мышкой на Спецстраницы, найти раздел Представиться / Зарегистрироваться, нажать на Представиться или зарегистрироваться, увидеть текст «Нет учётной записи? Создайте учётную запись.» и перейти по ссылке "Создайте учётную запись" на Special:Userlogin/signup.
Ссылки
- Manual:FAQ (англ.) MediaWiki FAQ
- Часто задаваемые вопросы (FAQ) о MediaWiki. (русск.) MediaWiki FAQ на русском языке
- Ответы на вопросы читателей (русск.) MediaWiki FAQ на русском языке в Викиреальности.