MediaWiki/Плагин ShareAPIYandex

Материал из Lblss.ru
Перейти к: навигация, поиск

Содержание

Назначение

Плагин ShareAPIYandex предназначен для размещения виджета «Поделиться» в соцсетях. Этот виджет Яндекс предоставляет как API. Вообще говоря, этот плагин - всего лишь способ размещения HTML-кода без правки шаблона ручками.

Установка

  1. В корневой директории MediaWiki найдите директорию extensions и создайте внутри нее директорию с именем ShareAPIYandex
  2. Код файла (ниже) сохраните в файле под именем ShareAPIYandex.php
  3. Поместите этот файл в созданную Вами директорию.
  4. В файл LocalSettings.php, расположенный в корневой директории MediaWiki добавьте следующие строки:
/**
 * Extension ShareAPIYandex
 * http://wiki.lblss.ru/MediaWiki/%D0%9F%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD_ShareAPIYandex
 */
require_once("$IP/extensions/ShareAPIYandex/ShareAPIYandex.php");

КОД

<?php
/*
 * ShareAPIYandex - helps visitors share, save, bookmark via Yandex Share/Save API http://api.yandex.ru/share/
 * @authors Vladimir Kleschev vla-kleschev@yandex.ru
 * @version 0.1
 * @copyright Copyright (C) Vladimir Kleschev
 * @license The GPL-3.0 License - http://www.opensource.org/licenses/gpl-3.0.html
 * -----------------------------------------------------------------------
 * Description:
 *     Plugin for use Yandex Share/Save API http://api.yandex.ru/share/.
 *     More info about custome this API
 *          http://api.yandex.ru/share/doc/dg/concepts/share-button-ov.xml
 * Requirements:
 *     MediaWiki 1.6+
 * Installation:
 *     1. Upload the `ShareAPIYandex.php` to your MediaWiki extensions directory so you have: `/extensions/ShareAPIYandex/`
 *     2. Enable the extension by adding this line to your LocalSettings.php:
 *            require_once('extensions/ShareAPIYandex/ShareAPIYandex.php');
 *
 * Version Notes:
 *     0.1:
 *        Initial release. Service http://api.yandex.ru/share/ is available for MediaWiki!
 *
 */
 
// Confirm MW environment
if (defined('MEDIAWIKI')) {
    // Version
    define('SHARE_API_YANDEX_VERSION','0.1');
 
    // Credits
    $wgExtensionCredits['parserhook'][] = array(
        'name'=>'ShareAPIYandex',
        'author'=>'Vladimir Kleschev',
        'url'=>'http://wiki.lblss.ru/MediaWiki/%D0%9F%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD_ShareAPIYandex',
        'description'=>'Helps visitors share, save, bookmark via Yandex Share/Save API http://api.yandex.ru/share/',
        'version'=>SHARE_API_YANDEX_VERSION
    );
 
    // Call Share/Save widget
//     $wgHooks['SkinSubPageSubtitle'][] = 'vk_ShareAPIYandex';
    $wgHooks['SkinAfterContent'][] = 'vk_ShareAPIYandex';
    // About skin hooks read at http://www.mediawiki.org/wiki/Category:MediaWiki_hooks_included_in_Skin.php
 
    function vk_ShareAPIYandex(&$subpages) {
        $subpages .= vk_ShareAPIYandex_markup();
        return true;
    }
 
    function vk_ShareAPIYandex_markup(){
        $markup = <<<HTML
<script type="text/javascript" src="//yandex.st/share/share.js" charset="utf-8"></script>
<div style="padding-top:15px;">
<div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="button" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir,lj,friendfeed,moikrug,blogger,digg,evernote,delicious,gbuzz,greader,juick,liveinternet,linkedin,myspace,yazakladki"></div>
</div>
HTML;
 
        return $markup;
    }
} // Closing MW Environment wrapper

Настройка

На данный момент вся настройка производится в файле плагина.

Размещение на странице

По дефолту виджет размещен внизу, после текста статьи. Если хотите установить виджет перед текстом статьи, исправьте пару строк таким образом:

     $wgHooks['SkinSubPageSubtitle'][] = 'vk_ShareAPIYandex';
//    $wgHooks['SkinAfterContent'][] = 'vk_ShareAPIYandex';

Здесь хук определяет позицию вывода виджета. Дополнительно можно поэкспериментировать с другими хуками, список найдете в документации по MediaWiki на этой странице.

Набор сервисов и функционал виджета

Найдите в файле плагина место между "$markup = <<<HTML" и "HTML;". Сюда помещается код, который был получен на официальной странице виджета. С дополнительными настройками виджета можно ознакомиться на странице документации и сделать все по-своему. Плагин не оказывает влияния на размещаемый HTML-код.

Персональные инструменты