<?php
/*
	Copyright © Eleanor CMS
	http://eleanor-cms.ru
	info@eleanor-cms.ru
*/

class OwnBbCode_socialmagic extends OwnBbCode
{
	public static
		$url=false,#string|false Адрес страницы
		$uniq=false;#string|false Уникальная строка для сохранения в куках

	protected static
		$config;

	/**
	 * Обработка информации перед показом на странице
	 *
	 * @param string $t Тег, который обрабатывается
	 * @param string $p Параметры тега
	 * @param string $c Содержимое тега [tag...] Вот это [/tag]
	 * @param bool $cu Флаг возможности использования тега
	 */
	public static function PreDisplay($t,$p,$c,$cu)
	{
		$p=$p ? Strings::ParseParams($p,'t') : array();
		if(isset($p['noparse']))
			return'['.$t.']'.$c.'[/'.$t.']';
		if(!$cu)
			return static::RestrictDisplay($t,$p,$c);

		if(!isset(static::$config))
			static::$config=include Eleanor::$root.'addons/socialmagic/config.php';

		if(array_intersect(static::$config['groups'],Eleanor::GetUserGroups()) and static::$config['facebook'] || static::$config['twitter'] || static::$config['plusone'] || static::$config['vk_api'])
		{
			$GLOBALS['jscripts'][]='addons/socialmagic/socialmagic-'.Language::$main.'.js';
			$GLOBALS['jscripts'][]='addons/socialmagic/jquery.socialmagic.js';
			$GLOBALS['head']['socialmagic']='<link media="screen" href="addons/socialmagic/socialmagic.css" type="text/css" rel="stylesheet" />';

			if(static::$config['vk_api'])
			{
				$GLOBALS['jscripts'][]='//vk.com/js/api/openapi.js?97';
				$GLOBALS['head']['socialmagic'].='<script type="text/javascript">VK.init({apiId: '.static::$config['vk_api'].', onlyWidgets: true});</script>';
			}

			if(static::$config['facebook'])
				$GLOBALS['jscripts'][]='//connect.facebook.net/'.strstr(Eleanor::$langs[ Language::$main ]['l'],'.',true).'/all.js#xfbml=1';

			if(static::$config['twitter'])
				$GLOBALS['jscripts'][]='//platform.twitter.com/widgets.js';
			if(static::$config['plusone'])
				$GLOBALS['head']['socialmagic'].='<script type="text/javascript" src="//apis.google.com/js/plusone.js">{lang: "'.substr(Language::$main,0,2).'"}</script>';

			if(!isset($GLOBALS['head'][ $_SERVER['REQUEST_TIME'] ]))
			{
				if(isset(OwnBB::$opts['url']))
					static::$url=OwnBB::$opts['url'];
				if(isset(OwnBB::$opts['uniq']))
					static::$uniq=OwnBB::$opts['uniq'];

				$GLOBALS['head'][ $_SERVER['REQUEST_TIME'] ]='<script type="text/javascript">/*<![CDATA[*/$(function(){
$(".socialmagic").socialmagic({'
					.(static::$config['facebook'] ? 'facebook:true,' : '')
					.(static::$config['plusone'] ? 'plusone:true,' : 'false')
					.(static::$config['twitter'] && is_string(static::$config['twitter']) ? 'twitter:"'.static::$config['twitter'].'",' : '')
					.(static::$config['twitter'] ? '' : 'twitter:false,')
					.(static::$config['vk_api'] ? 'vk:"'.static::$config['vk_api'].'",' : '')
					.(static::$config['vk_api'] && static::$config['vk_shared'] ? 'vk_shared:true,' : '')
					.(static::$config['canclose'] ? 'canclose:true,' : '')
					.'delay:'.static::$config['delay'].'});
})//]]></script>';
			}

			return'<div class="socialmagic"'.Eleanor::TagParams(array(
				'data-url'=>isset($p['url']) ? $p['url'] : static::$url,
				'data-uniq'=>isset($p['uniq']) ? $p['uniq'] : static::$uniq,
				'data-unwrap'=>isset($p['unwrap']),
				'data-canclose'=>isset($p['canclose']),
			)).'>'.$c.'</div>';
		}
		return$c;
	}

	/**
	 * Обработка информации перед её сохранением
	 *
	 * @param string $t Тег, который обрабатывается
	 * @param string $p Параметры тега
	 * @param string $c Содержимое тега [tag...] Вот это [/tag]
	 * @param bool $cu Флаг возможности использования тега
	 */
	public static function PreSave($t,$p,$c,$cu)
	{
		$c=preg_replace("#^(\r?\n?<br />\r?\n?)+#i",'<br />',$c);
		$c=preg_replace("#(\r?\n?<br />\r?\n?)+$#i",'<br />',$c);
		return parent::PreSave($t,$p,$c,$cu);
	}
}