Макрос укорачивания URL — различия между версиями
Kalexey (обсуждение | вклад)  | 
				Kalexey (обсуждение | вклад)   | 
				||
| Строка 52: | Строка 52: | ||
<a href="{$tinyurl}">UMI.CMS Usability</a>  | <a href="{$tinyurl}">UMI.CMS Usability</a>  | ||
</source>  | </source>  | ||
| + | <table align="center" width="100%">  | ||
| + | <tr>  | ||
| + | <td style="border: 1px dotted black; padding: 20px;">  | ||
| + | '''Примечание'''.  | ||
| + | <br />  | ||
| + | <p>  | ||
| + | Данный функционал был проверен на работоспособность в версии системы 2.8.5.1.  | ||
| + | </p>  | ||
| + | </td>  | ||
| + | </tr>  | ||
| + | </table>  | ||
Версия 04:48, 30 июля 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/product/system/usability/')%
Листинг 4. Использование макроса в XSLT
<xsl:variable name="tinyurl" 
              select="document('udata://content/getTinyUrl/(http://www.umi-cms.ru/product/system/usability/)/)/udata" />
<a href="{$tinyurl}">UMI.CMS Usability</a>
| 
 Примечание.
 Данный функционал был проверен на работоспособность в версии системы 2.8.5.1.  |