SEO-паттерны в title

InstantCMS 2.X

можно ли в seo-паттернах видоизменять значения полей?

#1 11 марта 2019 в 23:26
Использую SEO-паттерны для формирования микроразметки. Как я понял в паттерне можно использовать некоторые функции. Есть значение из времени, к примеру, 5:21. Можно ли его прямо в SEO-паттерне видоизменить до PT5M21S?
#2 12 марта 2019 в 09:42
Видимо, никто не использует этот функционал scratch
#3 12 марта 2019 в 09:52
Странный вывод. Причин, почему не ответили, может быть много.

По теме: видоизменять вроде бы нельзя. Не знаю, как в 2.11, я до сих пор не обновился, но в 2.10.1 точно нельзя. Поэтому использую для этих целей специальное дополнение, где можно менять всё, что угодно.
#4 12 марта 2019 в 10:08
Но если можно использовать функции типа string_date_age, почему нельзя использовать что-то наподобие substr, или str_replace, или preg_replace. Я просто не программист и не знаю синтаксиса.
Поделитесь, что за дополнение вы используете?
#6 12 марта 2019 в 11:51
De.Ground, если вы об InstantVideo, то там есть функция для этого. time_to_iso8601_duration
Использовать функции в SEO паттернах можно docs.instantcms.ru/manual/settings/seo-patterns

И сам код функции, если надо
  1. function time_to_iso8601_duration($time) {
  2. $units = array('Y' => 31536000, 'D' => 86400, 'H' => 3600, 'M' => 60, 'S' => 1);
  3. $str = 'P';
  4. $istime = false;
  5. foreach ($units as $unitName => &$unit) {
  6. $quot = intval($time / $unit);
  7. $time -= $quot * $unit;
  8. $unit = $quot;
  9. if ($unit > 0) {
  10. if (!$istime && in_array($unitName, array('H', 'M', 'S'))) {
  11. $str .= 'T';
  12. $istime = true;
  13. }
  14. $str .= strval($unit) . $unitName;
  15. }
  16. }
  17. return $str;
  18. }
#7 12 марта 2019 в 12:02
Fuze, нет я об обычных типах контента. Наверное, я сумбурно объяснил.
У меня много однотипного аудио-контента. Есть набор полей для этого типа контента. Например, длительность в формате минуты-двоеточие-секунды (5:22). Есть поле, в котором я отображаю микроразметку. Если я буду вставлять в микроразметку просто {length}, то всё отображается, но не в требуемом для микроразметки формате. Я ознакомился с документацией, но не понимаю, как используются функции.
Поэтому интересуюсь, можно ли в самом паттерне с помощью функции видоизменить 5:22 на PT5M22S.

Если нет, тогда какие функции в принципе можно использовать в паттернах? (кроме той, что приведена в примере документации)

Или эти функции нужно создавать внутри самого движка, а потом уже использовать в паттернах?
#8 12 марта 2019 в 12:12
  1. /**
  2.  * Конвертирует длительность в формате hh:mm:ss в секунды
  3.  * @param string $duration Длительность
  4.  * @return integer
  5.  */
  6. function duration_to_time($duration) {
  7. if(substr_count($duration, ':') > 1){
  8. list($h, $m, $s) = explode(':', $duration);
  9. } else {
  10. list($m, $s) = explode(':', $duration);
  11. }
  12. return isset($h) ? ($h*60*60 + $m*60 + $s) : ($m*60 + $s);
  13. }
Это конвертирует 5:22 в секунды
То, что я дал выше, конвертирует секунды в нужный вам формат.

тогда какие функции в принципе можно использовать в паттернах?

De.Ground
Любые доступные. Хоть стандартные PHP, хоть функции движка.
#9 12 марта 2019 в 12:15
Fuze, большое спасибо за объяснение и помощь
Буду разбираться
#10 26 апреля 2019 в 01:31

Любые доступные. Хоть стандартные PHP, хоть функции движка.

Fuze

А можно ли использовать функцию стороннего компонента?
Например, у меня есть функция, которая получает из названия поддомена penza строку «в Пензе» и я хочу эту фразу вставить в заголовки только некоторых записей
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.

Похожие темы

seo паттерны в описании

SEO & PR Создана 2 года назад 7 сообщений

SEO паттерны

SEO & PR Создана 1 год назад 7 сообщений

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.