Вы здесь

Как сделать красивые урл для комментариев??

0

Недавно поставил блок с последними комментариями на главную страницу.Не через views а которое по умолчанию.
И обратил внимание что при переходе на комментарии материалов , отображает вот такие не красивые урл:

мойсайт.ru/comment/1#comment-1

Оно ни о чем не говорит. Просто отвратительно!

А если было бы так:

мойсайт.ru/company/druio/comment/1#comment-1

Тогда другое дело!)

Я зашел в блог **xandeadx **, интересно было посмотреть как у него....тоже есть блок с последними комментариями. Но у него отображается все как надо! (Понятно что он мастер по Друпал)) поэтому все как надо,а может блог не на Друпал?).

Подскажите пожалуйста как можно это решить.

Версия Drupal: 
7.x
Вопрос задан 16.10.2015 - 19:00

Ответы

1

посмотрите модуль Comment Fragment

Ответ дан 16.10.2015 - 22:14

Да спасибо то что нужно. Только почему так мало людей пользуются ей непонятно. Видимо многие через код исправляют это. Но мне быстрый вариант надо было и этот модуль как раз меня спасло.

Пока пойдет,а потом когда уже вникну конкретно буду тоже через код все делать и постепенно удалять лишние модули.

Комментарий оставлен 18.10.2015 - 20:15
1

Все что нашел по изменению пути у комментариев

Меняет путь постоянной ссылки

/**
 * Override or insert variables into the comment template.
 */
function yourtheme_preprocess_comment(&$vars) {

  // Формируем постоянную ссылку на комментарий.
  // @see http://www.drupal.ru/node/74903#comment-455364
  $vars['permalink'] = l(
    '#' . $vars['id'],
    'node/' . $vars['elements']['#comment']->nid,
    array(
      'fragment' => 'comment-' . $vars['elements']['#comment']->cid,
      'attributes' => array('class' => array('permalink'), 'rel' => 'bookmark'),
    )
  );

  // Автор и дата.
  $vars['submitted'] = $vars['author'] . ' <span class="submitted">' . $vars['created'] . '</span>';
}

Меняет путь у кнопоки "ответить".

function yourtheme_preprocess_comment(&$vars) {
  // Update 'reply' link to make it go to the comment form page anchor instead of some weird comment post page
  if (isset($vars['content']['links']['comment']['#links']['comment-reply'])) {
    $vars['content']['links']['comment']['#links']['comment-reply']['href'] = url('node/' . $vars['node']->nid, array('fragment' => 'comment-form', 'absolute' => TRUE));
  }
}
Ответ дан 16.10.2015 - 21:09
Аватар пользователя pr0g
pr0g
36

Скажите пожалуйста, куда пихать этот код?))

Комментарий оставлен 16.10.2015 - 22:09

Вы предложили два варианта.Какой мне из них выбрать чтобы не нагадить ничего?))

Пожалуй пока ничего не буду делать.Посмотрю что скажут другие.

Комментарий оставлен 16.10.2015 - 22:12

это вы меняете атрибут href у ссылки
урл самой страницы с комментом не поменяется

Комментарий оставлен 16.10.2015 - 23:54

Добавлять это все в файл template.php вашей темы. yourtheme в имени функции - заменить на название вашей темы.

Ссылка тоже меняется.

Комментарий оставлен 17.10.2015 - 00:38

сделайте так, чтобы коммент оказался на второй странице (&page=1)
и потом перейдите по ссылке content/test#comment-1
работает?

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

Комментарий оставлен 17.10.2015 - 17:21
0

как вариант

function MODULE_entity_insert($entity, $type){
    if ($type == 'comment') {
        path_save(array(
            'source' => 'comment/'.$entity->cid,
            'alias' => 'тут синоним'
        ));
    }
}

function MODULE_entity_delete($entity, $type){
    if ($type == 'comment') {
        path_delete(array(
            'sourse' => 'comment/'.$entity->cid
        ));
    }
}

это будет работать для всех новых комментов
чтобы поправить пути у существующих, надо написать запрос и в цикле сделать path_save

возможно и готовый модуль есть к pathauto, не в курсе

Ответ дан 16.10.2015 - 19:22