Макрос укорачивания URL — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
(не показаны 3 промежуточные версии 1 участника)
Строка 2: Строка 2:
 
  [[category:Верстка в XSLT]]
 
  [[category:Верстка в XSLT]]
 
  [[category:Верстка в TPL]]
 
  [[category:Верстка в TPL]]
 +
'''Актуально для версии 2.9'''
 +
 
<p>
 
<p>
 
Данный макрос будет укорачивать переданный ему URL с помощью сервиса [http://www.tinyurl.com tinyurl.com]. Этот сервис не делает самый короткий URL, но его плюсом является то, что он не требует регистрации.
 
Данный макрос будет укорачивать переданный ему URL с помощью сервиса [http://www.tinyurl.com tinyurl.com]. Этот сервис не делает самый короткий URL, но его плюсом является то, что он не требует регистрации.
Строка 48: Строка 50:
 
</p>
 
</p>
 
<source lang="html4strict">
 
<source lang="html4strict">
<xsl:variable name="tinyurl"  
+
<a>
              select="document('udata://content/getTinyUrl/(http://www.umi-cms.ru/product/system/usability/)/)/udata" />
+
  <xsl:attribute name="href">
<a href="{$tinyurl}">UMI.CMS Usability</a>
+
    <xsl:select-of select="document('udata://content/getTinyUrl/(http://www.umi-cms.ru/product/system/usability/)')/udata" />
 +
  </xsl:attribute>
 +
  <xsl:text>
 +
    UMI.CMS Usability
 +
  </xsl:text>
 +
</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>

Текущая версия на 11:50, 5 июня 2013

Актуально для версии 2.9

Данный макрос будет укорачивать переданный ему 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

<a>
  <xsl:attribute name="href">
    <xsl:select-of select="document('udata://content/getTinyUrl/(http://www.umi-cms.ru/product/system/usability/)')/udata" />
  </xsl:attribute>
  <xsl:text>
    UMI.CMS Usability
  </xsl:text>
</a>

Примечание.

Данный функционал был проверен на работоспособность в версии системы 2.8.5.1.