Ссылки на соцсети

Частая задача при создании сайта это вывод ссылок на социальные сети. Рассмотрим подробнее как это сделать, не изобретая велосипед и не создавая для этого лишний модуль с таблицей в БД.

Шаг 1: Создать опцию в настройках сайта.

Для этого открываем в Rapido.SDK настройки сайта, нажимаем "добавить настройку" и выбираем шаблон "socials".

Шаг 2: Сконфигурировать социальные сети.

Конфигурация производится в поле настройки "socials". В этом поле каждая строка это одна соцсеть. В строке, разделением точкой с запятой, указываются название соцсети и ссылка на группу/канал/аккаунт в соцсети.  Создаваемая по-умолчанию конфигурация позволяет получить представление о том, как составлять конфигурацию:

vk;https://vk.com
facebook;https://facebook.com
odnoklassniki;https://ok.ru/
instagram;https://www.instagram.com/
twitter;https://twitter.com

Позже администраторы смогут править ссылки на свои соцсети, а так же добавлять и удалять соцсети. Названия соцсетей превратятся в классы для иконок в коде сайта, поэтому если вы используете иконки fontawesome, называйте соцсети в соответствии с названиями иконок в наборе http://fontawesome.io/icons/#brand

Шаг 3. Скачать библиотеку иконок.

Этот шаг не обязателен, если вы будете использовать собственные иконки. Иконки fontawesome можно скачать по ссылке http://fontawesome.io/assets/font-awesome-4.7.0.zip, этот же архив можно загрузить в папку /tpl/default/ и распаковать его там средствами Rapido.SDK. В архиве много лишнего, стоит подчистить каталог, оставив в нем только папку css и fonts.

Шаг 4. Подключить иконки к шаблону.

Этот шаг также не обязателен в случае использования своих иконок. Для подключения просто пропишите подключение css файла в tpl_async.js следующим образом:

loadCss(tplPath + "fa/css/font-awesome.min.css");

Шаг 5. Подключить html-шаблон.

В шаблоне сайта, как правило это делается в футере, пропишите подключение файла-шаблона {FILE "socials.htm"}. Исходный код этого файла по-умолчанию такой:

<!-- BEGIN: socials -->
<div class="socials">
	<!-- BEGIN: i -->
	<a href="{f.url}" target="_blank"><span class="socials-wrap fa-stack fa-lg">
		<i class="fa fa-circle fa-stack-2x"></i>
		<i class="socials-icon fa fa-{f.net} fa-stack-1x fa-inverse"></i>
	</span></a>
	<!-- END: i -->
</div>
<!-- END: socials -->

 Классы fa- это зарезервированные классы для fontawesome, а классы socials- вы можете свободно применять для кастомизации в less/css

Если у вас более старая версия Rapido.CMS, и в ней нет обработки поля socials по-умолчанию, то добавьте в файл tpl.php функцию и ее вызов:

parseSocials("page.socials", $opt['socials'], $xtpl);

/**
 * Парсит блок с сылками на социальные сети
 *
 * @param string $block Xtpl-блок, который содержит ссылки на соцсети
 * @param string $settings Строка с конфигурацией.
 * @param pointer $xtpl Ссылка на управляющий xtpl-объект
 */
function parseSocials( $block, $settings, &$xtpl ){
	if( !$settings ){
		return false;
	}
	$settings = explode("\n", $settings);
	foreach( $settings as $i ){
		$f = array();
		list( $f['net'], $f['url'] ) = explode(";", trim($i));
		$xtpl->insert_loop("{$block}.i", "f", $f);
	}
	$xtpl->parse( $block );
}