SEO-паттерны в title 2.X

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

 
Посетитель
small user social cms
Сообщений: 47
Использую SEO-паттерны для формирования микроразметки. Как я понял в паттерне можно использовать некоторые функции. Есть значение из времени, к примеру, 5:21. Можно ли его прямо в SEO-паттерне видоизменить до PT5M21S?
Редактировалось: 1 раз (Последний: 12 марта 2019 в 00:22)
Посетитель
small user social cms
Сообщений: 47
Видимо, никто не использует этот функционал scratch
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1930
Странный вывод. Причин, почему не ответили, может быть много.

По теме: видоизменять вроде бы нельзя. Не знаю, как в 2.11, я до сих пор не обновился, но в 2.10.1 точно нельзя. Поэтому использую для этих целей специальное дополнение, где можно менять всё, что угодно.
Редактировалось: 1 раз (Последний: 12 марта 2019 в 09:53)
Посетитель
small user social cms
Сообщений: 47
Но если можно использовать функции типа string_date_age, почему нельзя использовать что-то наподобие substr, или str_replace, или preg_replace. Я просто не программист и не знаю синтаксиса.
Поделитесь, что за дополнение вы используете?
Редактировалось: 1 раз (Последний: 12 марта 2019 в 10:08)
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1930
De.Ground:
что за дополнение вы используете?
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4385
De.Ground, если вы об InstantVideo, то там есть функция для этого. time_to_iso8601_duration
Использовать функции в SEO паттернах можно https://docs.instantcms.ru/manual/settings/seo-patterns

И сам код функции, если надо
Код PHP:
  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. }
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Сообщений: 47
Fuze, нет я об обычных типах контента. Наверное, я сумбурно объяснил.
У меня много однотипного аудио-контента. Есть набор полей для этого типа контента. Например, длительность в формате минуты-двоеточие-секунды (5:22). Есть поле, в котором я отображаю микроразметку. Если я буду вставлять в микроразметку просто {length}, то всё отображается, но не в требуемом для микроразметки формате. Я ознакомился с документацией, но не понимаю, как используются функции.
Поэтому интересуюсь, можно ли в самом паттерне с помощью функции видоизменить 5:22 на PT5M22S.

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

Или эти функции нужно создавать внутри самого движка, а потом уже использовать в паттернах?
Редактировалось: 1 раз (Последний: 12 марта 2019 в 12:04)
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4385
Код PHP:
  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, хоть функции движка.
Редактировалось: 1 раз (Последний: 12 марта 2019 в 12:12)
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Сообщений: 47
Fuze, большое спасибо за объяснение и помощь
Буду разбираться
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 189
Fuze:
Любые доступные. Хоть стандартные PHP, хоть функции движка.

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