Макрос укорачивания URL — различия между версиями
Kalexey (обсуждение | вклад) (Новая страница: « category:Написание кастомных макросов category:Верстка в XSLT category:Верстка в TPL <p> Данный мак…») |
Kalexey (обсуждение | вклад) |
||
Строка 43: | Строка 43: | ||
<source lang="php"> | <source lang="php"> | ||
%content getTinyUrl('http://www.umi-cms.ru')% | %content getTinyUrl('http://www.umi-cms.ru')% | ||
− | |||
</source> | </source> | ||
<p style="text-align: right"> | <p style="text-align: right"> |
Версия 20:38, 2 июля 2012
Данный макрос будет укорачивать переданный ему URL с помощью сервиса tinyurl.com. Этот сервис не делает самый короткий URL, но его плюсом является то, что он не требует регистрации.
Тело макроса нужно будет разместить в файле "/classes/modules/content/__custom.php" после строки "//TODO: Write here your own macroses".
Листинг 1. Код макроса
/*
@param String
$url - URL для укорачивания
*/
public function getTinyUrl($url) {
if($url)
return file_get_contents("http://tinyurl.com/api-create.php?url=".$url);
}
После того, как код макроса написан, необходимо добавить для него резрешение. Для этого создаём файл "permissions.custom.php" в той же папке, где находится "__custom.php", и пишем в нём следующий текст:
Листинг 2. Добавление разрешения
<?php
$permissions = Array(
'content' =>
Array('getTinyUrl')
);
?>
Теперь можно использовать макрос. Вот примеры его использования в TPL и XSLT шаблонизаторах:
Листинг 3. Использование макроса в TPL
%content getTinyUrl('http://www.umi-cms.ru')%
Листинг 4. Использование макроса в XSLT
<xsl:value-of select="document('udata://content/getTinyUrl/(http://www.umi-cms.ru)/)/udata" />