|
|
04.04.2013, 14:02
|
|
Гость
Гость
|
интересует такой вопрос
как сделать чтобы при подписывания названия товара Seo ссылка сама прописывалась ?
на сколько я знаю сейчас это во всех современных форумах и сайтах есть.
пример : название товара "Золотая рыбка" адрес товара "zolotay-rybka.xtml
но "zolotay-rybka приходится писать самому а это напрягает.
кто создал сказали не парьтесь можно и не подписывать...
P.s тогда зачем такое Seo вообще
|
|
|
04.04.2013, 15:34
|
|
Nexwich
Панасин Александр

Зарегистрирован: 2011-04-05
Сообщений: 1037
|
Как я понял вам нужно чтобы автоматически создавалось на траслите ключевое слово при условии что вы его не написали.
Транслитерация ключевых слов
Первый способ [Действия после добавления или редактирования]
if(!$f_Keyword){
$Keyword_bd = $db->get_var("SELECT name FROM Message$classID WHERE Message_ID=".$message); # Заносим в переменную "заголовок[name] обьекта"
$Keyword_bd_translit = nc_transliterate($Keyword_bd); # Транслитируем текст
$Keyword_bd_replace = str_replace(' ','_',$Keyword_bd_translit); # Заменяем пробелы на нижнее подчеркивание
$db->query("UPDATE Message$classID SET Keyword='".$Keyword_bd_replace."' WHERE Message_ID=".$message); # Делаем замену объекта в базе данных
}
Второй способ [В условия добавления]
if(!$f_Keyword) $f_Keyword = preg_replace('#[^[:word:]]#','',nc_transliterate(str_replace(' ','_',strtolower($f_name)))); # При условии что поле Keyword не за полненно вставляем текст из поля name где пробелы заменены на нижнее подчеркивание
На примере этого вы можете заполнить любые поля например СЕО. К слову в СЕО Есть заголовок ключевые слова и описание а ссылка на верху над СЕО закладкой является ключевым словом. Иногда лучше скирншоты присылайте чем непонятно что пишите.
Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
|
|
|
04.04.2013, 19:39
|
|
ipm
Ильин Павел
Зарегистрирован: 2012-10-12
Сообщений: 386
|
Спасибо Вам, из Вашего ответа получил ответы на некоторые вопросы, которые меня мучали) Единственное, не нравится, что после добавления объекта, транслируется всё правильно, но ещё хочется, чтобы ключевое слово начиналось с маленькой буквы. а то не красивая ссылка получается) Можно ли что-то дописать в коде, конкретно в коде второго варианта, чтобы поле $Keyword заполнялось с маленькой буквы, не зависимо с какой буквы значение в поле $name?
Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
|
|
|
09.04.2013, 16:06
|
|
Nexwich
Панасин Александр

Зарегистрирован: 2011-04-05
Сообщений: 1037
|
Используйте strtolower() Код выше исправлен с учетом ваших пожеланий
Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
|
|
|
30.05.2013, 12:54
|
|
ipm
Ильин Павел
Зарегистрирован: 2012-10-12
Сообщений: 386
|
А как сделать так, чтобы вместо пробелов подставлялось верхние подчёркивание вместо нижнего, т.е. дефис?
Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
|
|
|
30.05.2013, 13:20
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
Ну например так:
$subject=ereg_replace(' +','-',$subject); // заменяем пробелы (в том числе повторяющиеся) на один дефис
$subject=ereg_replace('_','-',$subject); // заменяем нижнее подчеркивание на дефис
Или вот выше вам предложили ведь решение, только исправьте в нем знак на нужный, да и все:
$Keyword_bd_replace = str_replace(' ','-',$Keyword_bd_translit); # Заменяем пробелы ...
|
|
|
30.05.2013, 14:45
|
|
ipm
Ильин Павел
Зарегистрирован: 2012-10-12
Сообщений: 386
|
Я использую этот код:
Код:if(!$f_Keyword) $f_Keyword = preg_replace('#[^[:word:]]#','',nc_transliterate(str_replace(' ','_',strtolower($f_name))));
И если в нём заменить (' ','_',strtolower($f_name)))) на (' ','-',strtolower($f_name)))), то не работает.
Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
|
|
|
30.05.2013, 15:32
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
Тогда попробуйте заэкранируовать дефис с помошью слэша.
Вот так: (' ','\-',strtolower($f_name))))
Дело в том, что этот знак является зарезервированным в regex.
|
|
|
30.05.2013, 15:59
|
|
ipm
Ильин Павел
Зарегистрирован: 2012-10-12
Сообщений: 386
|
Я так попробовал...пробелы просто игнорируются. Что \- , что просто со знаком -
Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
|
|
|
03.06.2013, 15:20
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
Сложно вот так заочно предположить, в чем истинная причина. Вроде бы все должно работать, если делали как описали выше.
В крайнем случае, если так и не разберетесь - обращайтесь лично, я за вознаграждение помогу решить проблему.
|
|
|
04.06.2013, 13:34
|
|
ipm
Ильин Павел
Зарегистрирован: 2012-10-12
Сообщений: 386
|
С помощью первого способа описанного выше, удалось решить задачу.
Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
|