Кодирование переменных: различия между версиями

Материал из Planfix
Перейти к: навигация, поиск
Нет описания правки
Нет описания правки
 
(не показано 14 промежуточных версий этого же участника)
Строка 6: Строка 6:
}}
}}


К переменным в ПланФиксе можно применять различные функции. Одна из них:
К [[Переменные в шаблонах документов | переменным]] в ПланФиксе можно применять различные функции. Одна из них:


  '''::encode=url'''
  '''::encode=url'''
Строка 12: Строка 12:
Допустим у вас стоит задача сформировать ссылку, при клике на которую будут передаваться определенные дополнительные параметры из задачи, например, название обучающего курса. Ссылка будет выглядеть так:
Допустим у вас стоит задача сформировать ссылку, при клике на которую будут передаваться определенные дополнительные параметры из задачи, например, название обучающего курса. Ссылка будет выглядеть так:


  <pre>http://site-course.com/forms/about-course/?course_name={{Задача.Источник ЛИД'а}}</pre>
  <pre>https://site-course.com/forms/about-course/?course_name={{Задача.Источник ЛИД'а}}</pre>
 


Но если название курса будет содержать недопустимые символы, данные из ссылки передадутся некорректно. Например, ссылка с таким названием курса:
Но если название курса будет содержать недопустимые символы, данные из ссылки передадутся некорректно. Например, ссылка с таким названием курса:


  Акция "Обучись видеомонтажу всего за 1 месяц бесплатно" (2020)
  Акция "Обучись видеомонтажу всего за 1 месяц бесплатно" (2020)


Будет выглядеть вот так:
Будет выглядеть вот так:


  <pre>http://site-course.com/forms/about-course/?course_name=Акция</pre>
  <pre>https://site-course.com/forms/about-course/?course_name=Акция</pre>
 


Так происходит, потому что ссылка содержит русские символы, пробелы и специальные символы, которые недопустимы при её формировании. Все такие символы необходимо кодировать. Для этого к переменным добавляется функция '''::encode=url'''.  
Так происходит, потому что ссылка содержит русские символы, пробелы и специальные символы, которые недопустимы при её формировании. Все такие символы необходимо кодировать. Для этого к переменным добавляется функция '''::encode=url'''.  
Строка 26: Строка 29:
В итоге правильная ссылка с переменными должна выглядеть следующим образом:
В итоге правильная ссылка с переменными должна выглядеть следующим образом:


<pre>http://site-course.com/forms/about-course/?course_name={{Задача.Источник ЛИД'а::encode=url}}</pre>
<pre>https://site-course.com/forms/about-course/?course_name={{Задача.Источник ЛИД'а::encode=url}}</pre>
 
А сформированная ссылка с применение кодирования будет выглядеть уже так:
 
<pre>http://site-course.com/forms/about-course/?course_name=%D0%90%D0%BA%D1%86%D0%B8%D1%8F%20%22%D0%9E%D0%B1%D1%83%D1%87%D0%B8%D1%81%D1%8C%20%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BC%D0%BE%D0%BD%D1%82%D0%B0%D0%B6%D1%83%20%D0%B2%D1%81%D0%B5%D0%B3%D0%BE%20%D0%B7%D0%B0%201%20%D0%BC%D0%B5%D1%81%D1%8F%D1%86%20%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE%22%20%282020%29</pre>
 
Давайте на примере разберемся в деталях.


Допустим мы хотим передать в ссылке имя исполнителя.


Пример ссылки
А сформированная ссылка после применения кодирования будет выглядеть уже так:


Для этого у нас будет такая переменная …
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>https://</nowiki>site-course.com/forms/about-course/?course_name=%D0%90%D0%BA%D1%86%D0%B8%D1%8F%20%22%D0%9E%D0%B1%D1%83%D1%87%D0%B8%D1%81%D1%8C%20%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BC%D0%BE%D0%BD%D1%82%D0%B0%D0%B6%D1%83%20%D0%B2%D1%81%D0%B5%D0%B3%D0%BE%20%D0%B7%D0%B0%201%20%D0%BC%D0%B5%D1%81%D1%8F%D1%86%20%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE%22%20%282020%29</div>


Если мы используем обычную переменную в шаблоне, у нас сформируется вот такой url:


Таким образом название курса в ссылке будет передано без потерь.


Браузер такую ссылку отработает неверно и будут переданы неполные данные.


Если к переменной добавим ::encode=url, тогда ссылка будет сформирована правильно и все данные будут переданы без потерь.
== Перейти ==
*[[Переменные в шаблонах документов]]
*[[Шаблоны документов]]
*[[Документы]]

Текущая версия от 07:26, 10 января 2023

К переменным в ПланФиксе можно применять различные функции. Одна из них:

::encode=url

Допустим у вас стоит задача сформировать ссылку, при клике на которую будут передаваться определенные дополнительные параметры из задачи, например, название обучающего курса. Ссылка будет выглядеть так:

https://site-course.com/forms/about-course/?course_name={{Задача.Источник ЛИД'а}}


Но если название курса будет содержать недопустимые символы, данные из ссылки передадутся некорректно. Например, ссылка с таким названием курса:

Акция "Обучись видеомонтажу всего за 1 месяц бесплатно" (2020)


Будет выглядеть вот так:

https://site-course.com/forms/about-course/?course_name=Акция


Так происходит, потому что ссылка содержит русские символы, пробелы и специальные символы, которые недопустимы при её формировании. Все такие символы необходимо кодировать. Для этого к переменным добавляется функция ::encode=url.

В итоге правильная ссылка с переменными должна выглядеть следующим образом:

https://site-course.com/forms/about-course/?course_name={{Задача.Источник ЛИД'а::encode=url}}


А сформированная ссылка после применения кодирования будет выглядеть уже так:

https://site-course.com/forms/about-course/?course_name=%D0%90%D0%BA%D1%86%D0%B8%D1%8F%20%22%D0%9E%D0%B1%D1%83%D1%87%D0%B8%D1%81%D1%8C%20%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BC%D0%BE%D0%BD%D1%82%D0%B0%D0%B6%D1%83%20%D0%B2%D1%81%D0%B5%D0%B3%D0%BE%20%D0%B7%D0%B0%201%20%D0%BC%D0%B5%D1%81%D1%8F%D1%86%20%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE%22%20%282020%29


Таким образом название курса в ссылке будет передано без потерь.


Перейти