Баг или не баг

Вот в чем вопрос

#1 16 июля 2013 в 19:40
Сразу к делу.

На чистом инстанте 1.10.1 создаю раздел "природа"

Добавляю 5 статей с одинаковым названием -(Привет)

В итоге получаю такие урлы:

Первая запись:
mysite.ru/priroda/privet.html

Все последующие записи:
mysite.ru/priroda/privet-1.html
mysite.ru/priroda/privet-1.html
mysite.ru/priroda/privet-1.html
....

По идее там где privet-1, должны быть privet-2, privet-3...

Почему дублируются урлы ???
Получается юзерам нельзя создавать материалы с одинаковыми заголовками, как им это объяснить?
#2 16 июля 2013 в 19:43
Taleran, а что будет если попытаться пройтись по таким ссылам?
#3 16 июля 2013 в 19:52


Taleran, а что будет если попытаться пройтись по таким ссылам?

nedoriko

Первая статья с url mysite.ru/priroda/privet.html имеет содержание — Привет 1
Вторая статья с url mysite.ru/priroda/privet-1.html имеет содержание — Привет 2

Все последующие имеют содержание Привет 3, Привет 4, Привет 5

НО

Так как их url — mysite.ru/priroda/privet-1.html они ВСЕ отображают содержание "Привет 2"

_____
Прога для редактирования pdf — foxit pdf, надо искать на трекерах
#4 16 июля 2013 в 19:54
Баг

#5 16 июля 2013 в 19:55
тестанул, такая же фигня — Баг!

посмотрел в базе ID у всех статей разные, а вот url одинаковый
#6 16 июля 2013 в 20:02
Taleran, Для того, чтобы это рассмотрели, и возможно подлечили, стоит отписать сюда trac.instantcms.ru/newticket
Тестировали, недотестировали ...

#7 16 июля 2013 в 20:35
… ковырнул, надо сделать так (на свой страх и риск) Гуру надеюсь поправят если, что-то не так
идем в папку находим файл /components/content/model.php

462 строка:
if ($is_exists) { $seolink .= '-'.$is_exists; }

меняем на:
if ($is_exists) { $seolink .= '-'.$article['id']; }

тем самым мы в url добавляем id статьи, который уникальный.
#8 16 июля 2013 в 21:39


… ковырнул, надо сделать так (на свой страх и риск) Гуру надеюсь поправят если, что-то не так
идем в папку находим файл /components/content/model.php

462 строка:
if ($is_exists) { $seolink .= '-'.$is_exists; }

меняем на:
if ($is_exists) { $seolink .= '-'.$article['id']; }

тем самым мы в url добавляем id статьи, который уникальный.

Nemoi

Спасибо. Протестим!
#9 16 июля 2013 в 21:40
Странное дело:
  1. if (@$article['id']){
  2. $where = ' AND id<>'.$article['id'];
  3. } else {
  4. $where = '';
  5. }
  6. $is_exists = $this->inDB->get_field('cms_content', "seolink='{$seolink}'".$where, 'id');
  7. if ($is_exists) { $seolink .= '-'.$is_exists; }
Выходит туда подставляется 1 не в смысле номер раз, а у статьи с таким же урлом (у первой статьи на сайте для тс) ид = 1, который и подставляется для всех повторов. Надо действовать либо как предложил Nemoi, либо вместо 'id' запрашивать 'count(id)' — в таком случае будет: privet, privet-1, privet-2 etc. Можно ещё ++$is_exists сделать, тогда будет: privet, privet-2, privet-3 и тд.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.