Seo title для профилей пользователей

InstantCMS 2.X
#1 30 июля 2017 в 11:41
Может тут кто ответит.
Я когда-то решал вопрос тайтлов для страниц профиля пользователя через хардкорное изменение шаблонов. Сейчас сео-тайтлы формируются в админке.
Делаю новый сайт, вывод группы пользователя реализовал по советам с форума вот так:

  1. <em class="profession">
  2. <?php $users_model = cmsCore::getModel('users');
  3. $groups = $users_model->getGroups($profile);
  4. foreach($profile['groups'] as $profgroup){
  5. echo ($groups[$profgroup]['profession']), '</br>';}
  6. ?>
  7. </em>
Т.е. в базе (таблица cms_users_groups) создал дополнительное поле profession (это чтобы выводить в единственном числе название группы) и оно выводится под ником, все ок, например:
Алексей Владимирович
Администратор


А как его выводить еще и в тайтле?
Попробовал по примеру из свежей документации: {nickname}, {profession}, город {city_cache} — что-то не то, не выводится.
#2 30 июля 2017 в 12:06

что-то не то, не выводится.

alkokrolik
И не выведется, так как вы {profession} получаете отдельным запросом, а в изначальном массиве $profile это значение отсутствует.
#3 30 июля 2017 в 12:46

И не выведется, так как вы {profession} получаете отдельным запросом, а в изначальном массиве $profile это значение отсутствует.

Loadырь
Ну то есть это вообще нельзя сделать, или слишком геморно делать или можно сделать как-то малыми силами, не насилуя движок? hohoИ какова цена вопроса?
#4 30 июля 2017 в 20:59

Ну то есть это вообще нельзя сделать,

alkokrolik
Сделать можно всё. Не всё можно сделать "красиво".

слишком геморно делать

alkokrolik
можно сделать и так, а можно сделать и так

как-то малыми силами, не насилуя движок

alkokrolik
Вы свой код из первого поста в каком файле вставляете?
#5 30 июля 2017 в 21:05

Вы свой код из первого поста в каком файле вставляете?

Loadырь
В profile_header.tpl.php после вывода имени пользователя сразу.
В принципе, может как-то и по-другому можно было сделать изначально. Просто задача такая: выводить группу пользователя на странице рядом с именем + как-то добавить это в title, потому что суть сайта в специализациях пользователей.
#6 30 июля 2017 в 21:40
Сюда вставить это
  1.  
  2. $groups = cmsCore::getModel('users')->getGroups($profile);
  3. foreach($profile['groups'] as $profgroup){
  4. $profile['groups_profession'][] = $groups[$profgroup]['profession'];
  5. }
  6. $profile['profession']=implode(', ', $profile['groups_profession']);
  7.  
ваш код заменить на этот
  1. <em class="profession">
  2. <?php foreach($profile['groups_profession'] as $profgroup){echo $profgroup . '<br />';} ?>
  3. </em>
и в маске использовать {profession}
Как-то так.
#7 30 июля 2017 в 22:41
Loadырь,
Супер, спасибо, работает!
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.