Обновление плагина «Nice URL» до 2.6


Плагин обновился до версии 2.6.
Что изменилось:
  • fix экранирования символов в URL, что приводило к неработоспособности урлов, например с ручным указанием символа "-"
  • Возможность задавать URL топика вручную, как только админу, так и всем пользователям (настройки в конфиге)
  • Возможность отключить транслитерацию, это позволит использовать русские символы в URL топика. Этот функционал в тестовом режиме и возможна некорректная работа

Обновление плагина проспонсировал пользователь AndreySuperstar

UPDATE версия 2.7
Изменения:
  • Лучшая совместимость с русскими урлами
  • Возможность задавать редиректы со старых урлов топиков

43 комментария

avatar
Большое спасибо!
Еще было бы неплохо заиметь возможность изменять ссылку на пользователя, например livestreet.ru/profile/ort/ заменить на livestreet.ru/user/ort/
avatar
Что мешает добавить в конфиг
Config::Set('router.rewrite.profile', 'user');
avatar
В какой, простите, Вы говорите конфиг именно??
avatar
Я добавил в config.local.php
$config['router']['rewrite']['profile'] = 'user';
avatar
Спасибо!
avatar
Спасибо! Я совсем забыл про такую возможность. Сейчас вспоминаю все о LiveStreet, не пользовался им с версии 0.4.2
avatar
Здравствуйте! Не нашел где именно включить возможность менять URL топика для пользователей. Подскажите
  • asimo
  • 0
avatar
все настройки в конфиге
avatar
При активации невозможно создать топик, выдает

Fatal error: Uncaught exception 'SmartyException' with message 'Unable to load template file 'inject.topic.form.tpl'' in /home/buildcom/public_html/engine/lib/external/Smarty/libs/sysplugins/smarty_internal_templatebase.php:127 Stack trace: #0 /home/buildcom/public_html/engine/modules/viewer/Viewer.class.php(447): Smarty_Internal_TemplateBase->fetch('inject.topic.fo...') #1 [internal function]: ModuleViewer->Fetch('inject.topic.fo...') #2 /home/buildcom/public_html/engine/classes/Engine.class.php(551): call_user_func_array(Array, Array) #3 /home/buildcom/public_html/engine/classes/Hook.class.php(71): Engine->_CallModule('Viewer_Fetch', Array) #4 /home/buildcom/public_html/plugins/niceurl/classes/hooks/HookUrl.class.php(270): Hook->__call('Viewer_Fetch', Array) #5 /home/buildcom/public_html/plugins/niceurl/classes/hooks/HookUrl.class.php(270): PluginNiceurl_HookUrl->Viewer_Fetch('inject.topic.fo...') #6 [internal function]: PluginNiceurl_HookUrl->AddToForm(Array) #7 /home/buildcom/public_html/engine/modules/hook/Hook.class in /home/buildcom/public_html/engine/lib/external/Smarty/libs/sysplugins/smarty_internal_templatebase.php on line 127


Что это? Прошлая версия работала исправно. Зарание спасибо.
  • O3OH
  • 0
avatar
в плагине есть файл /templates/skin/default/inject.topic.form.tpl?
avatar
Нет, у меня нету дефолтного скина, synio,developer, magic — это все скины. Но он же должен где то быть…
avatar
файл нужно искать в плагине: /plugins/niceurl/templates/…
avatar
Странно, в архиве на жестком есть а при распаковке на сайте ее нету. Перераспакую, отпишу.
avatar
Archive:  /home/buildcom/public_html/plugins/niceurl_plugin_ls_2.6.zip
  inflating: niceurl/classes/.htaccess  
   creating: niceurl/classes/hooks/
  inflating: niceurl/classes/hooks/HookUrl.class.php  
   creating: niceurl/classes/modules/
   creating: niceurl/classes/modules/niceurl/
   creating: niceurl/classes/modules/niceurl/entity/
  inflating: niceurl/classes/modules/niceurl/entity/Topic.entity.class.php  
   creating: niceurl/classes/modules/niceurl/mapper/
  inflating: niceurl/classes/modules/niceurl/mapper/Niceurl.mapper.class.php  
  inflating: niceurl/classes/modules/niceurl/Niceurl.class.php  
   creating: niceurl/classes/modules/topic/
   creating: niceurl/classes/modules/topic/entity/
  inflating: niceurl/classes/modules/topic/entity/Topic.entity.class.php  
  inflating: niceurl/classes/modules/topic/Topic.class.php  
  inflating: niceurl/config/.htaccess  
  inflating: niceurl/config/config.php  
error:  cannot delete old niceurl/dump.sql
        Permission denied
  inflating: niceurl/include/.htaccess  
  inflating: niceurl/include/function.php  
error:  cannot delete old niceurl/plugin.xml
        Permission denied
error:  cannot delete old niceurl/PluginNiceurl.class.php
        Permission denied
checkdir error:  cannot create niceurl/templates
                 Permission denied
                 unable to process niceurl/templates/.
checkdir error:  cannot create niceurl/templates
                 Permission denied
                 unable to process niceurl/templates/language/.
checkdir error:  cannot create niceurl/templates
                 Permission denied
                 unable to process niceurl/templates/language/russian.php.
checkdir error:  cannot create niceurl/templates
                 Permission denied
                 unable to process niceurl/templates/skin/.
checkdir error:  cannot create niceurl/templates
                 Permission denied
                 unable to process niceurl/templates/skin/default/.
checkdir error:  cannot create niceurl/templates
                 Permission denied
                 unable to process niceurl/templates/skin/default/inject.topic.form.tpl.


Не распаковывает… пережать?
avatar
Кстати старый плагин я тупо снес… это плохо?
avatar
нет, так и нужно
avatar
видимо да
avatar
Исправил, проблема была в разрешениях, стояло 555, и плагин не снесся. поменял, снес и вот мне радость, спасибо за помощь.
avatar
Ух ты! Не ожидал, быстро.
avatar
Каким образом можно заставить плагин обрабатывать страницы тегов?
avatar
С кириллицей кстати вроде всё окей для новых топиков.

Единственное странное, старые топики сразу выдают 404, если включить кириллицу. Если нажать редактировать и не менять заголовок топика, тоже 404. А вот если изменить заголовок топика при редактировании и сохранить, то топик начинает нормально открываться по своей ссылке.

Наверное небольшую доработку надо сделать, чтобы при активации плагина, старые топики с их заголовками корректно сохраняло. Я так понял, что в какой-то ячейке баз остаётся старое значение. Но при редактировании, если изменить заголовок, оно переписывается.
avatar
С кириллицей нашёл бажёк. Если в заголовке есть буква «ё», то 404 начинает выдавать, если убрать «ё» всё ок.
avatar
Ещё, если в заголовке кто-то пишет слэш «\» или «/» в автоматический URL добавляются эти символы и 404 выдаёт.

Надо сделать обрезание спецсимволов, которые могут повлиять на URL типа слэши, вопросы, ну и что ещё к ошибке может привести. Ну я это так в баг-репорт, чтобы знали типа. Жить с этим можно.
avatar
На решение на это

// заменяем пробелы
			$sTitleSource=strtr($sTitleSource,array(" "=> "-", "."=> "", "/"=> "-"));


добавляем туда

"\\"=> ""
avatar
осталось c «Ё», «ё» разобраться, почему косячит 404
avatar
А редирект с топиков без ЧПУ на топики с ЧПУ в этой версии тоже не происходит?
  • Po6oT
  • +1
avatar
Это круто! Спасибо! Огроменный плюс за возможность ручного редактирования URL и за кучу всевозможных настроек в конфиге! )
  • ixley
  • 0
avatar
Офигеть! Старые адреса никуда не делись! Спасибо ещё раз )
avatar
А .html никак не убрать да? (
  • ixley
  • 0
avatar
Могут быть проблемы с некоторыми существующими страницами, будут отдавать 404ую вместо контента.
avatar
Это я видел (
avatar
Несколько замечаний:
1. При указании такого шаблона
$config['url_personal_blog'] = 'personal/%login%';

все работает некорректо — ссылка формируется нормально, но страница не показывается — идет редирект на несуществующую страницу.
2. Почему нельзя указать просто '' для персональных блогов? Вероятно кто-нибудь вообще не захочет, чтобы был адрес у персонального блога. Если в шаблоне поста будет %id% думаю проблем не возникнет.
3. Хотелось бы заиметь возможность для блога указать url, содержащий /, например "/metal/black_metal/"
avatar
1 и 3 — указывать в урле "/" нельзя, т.к. слеш является разделителем в урле
2 — шаблон для топиков из коллективных и персональных должен содержать одинаковое число элементов в урле(через слеш), от сюда и это ограничение
avatar
Но
$config['url'] = '/%blog%/%year%/%month%/%day%/%title%
это работает ведь, значит ядро поддерживает такие адреса.
avatar
«url» указывает на весь урл целиком, который содержит части
а «url_personal_blog» указывает как раз на одну часть, отвечающую за блог
avatar
Плагин обновился до версии 2.7
Изменения:
  • Лучшая совместимость с русскими урлами
  • Возможность задавать редиректы со старых урлов топиков
  • ort
  • 0
avatar
Возможность задавать редиректы со старых урлов топиков
Значит ли это, что если у меня раньше был такой шаблон:
$config['url'] = '/%blog%/%year%/%month%/%day%/%title%';
, а стал такой:
$config['url'] = '/%blog%/%id%-%title%';
, то со старых адресов будет идти редирект на новые?
avatar
Проверил — работает. Спасибо!
avatar
В файле \plugins\niceurl\classes\modules\niceurl\Niceurl.class.php переопределена функция GetTopicsByArrayId с комментарием
Файловый кеш приводил к жутким тормозам, особенно удаление по тегу
Если я использую memcache стоит ли мне убрать переопределение функции? Или это не повлияет на скорость работы сайта?
avatar
Здравствуйте. Есть вопрос.
Поставил мод, ссылки выводились как стандартно прописано в конфиге.
Через некоторое время захотел изменить, изменил, в правилах редиректа прописал старый вариант ссылки. И вот в чем проблема, время загрузки топика поднялось на 2 сек =( а именно кэш каждый раз начал заполнятся по 2.5 сек
Может кто скажет с чем это связано?
avatar
раньше стояла версия 2.6
Как безопасно обновиться до 2.7? без трабл и приключений?
avatar
— отключить плагин
— удалить плагин
— установить и активировать обновленный
делал так = траблов и приключений не было
avatar
Как подружить последнюю версию плагина с RusUrls? Раньше я это как то делал, где то регуляр експрешен менял, а сейчас не могу вспоинть где и что делать.
В данный момент использую Найс с включенными рускими юрлами для топиков. Вроде работает нормуль. Вот названия блогов бы еще на руссском сделать.
Помогите пожалуйста.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.