Теги топиков, замена слов с решеткой #

На LS теги добавляются через запятую:

тег1, тег2, тег3, тег4


И так далее.

Но иногда пользователи, в силу глобального распространения твиттера, инстаграма и их хэштегов, вставляют в поле тег, слова с решеткой:

#тег1 #тег2 #тег3 #тег4


И на деле мы получаем, что это все лепится в одно слово-один тег:

http://site.ru/tag/#тег1#тег2#тег3#тег4


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

7 комментариев

avatar
А вы им напишите, что с решеткой нельзя. Легче будет для всех.
avatar
Это не выход. У пользователей не должны быть сложности и какие то заморочки.
avatar
Up
  • eavy
  • -1
avatar
Кстати, тоже интересует. UP
  • dex-
  • -3
avatar
Как вариант.
tags = ($('#topic_tags').val()).split('#');
$('#topic_tags').val(tags.join(','));


Запускаете при отправке формы. Код ставит вместо решеток запятые и нормальные теги выходят.
avatar
Вернее перед отправкой.
avatar
/classes/modules/topic/Topic.class.php
$aTags=explode(',',$oTopic->getTags());

заменяем два раза на
$aTags=preg_split("/[#,]/",$oTopic->getTags());
$aTags=array_filter($aTags);

/classes/modules/topic/entity/Topic.entity.class.php
public function getTagsArray() {
	if ($this->getTags()) {
		$aTags=preg_split("/[#,]/",$this->getTags());
		return array_filter($aTags);
	}
	return array();
}

Должно работать
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.