Регистрация
Вход через соцсети
Восстановление пароля

Seo

Новый топик
Страницы: 1  |  2
04.04.2013, 14:02
Ответить | Цитировать
Гость
Гость

интересует такой вопрос
как сделать чтобы при подписывания названия товара Seo ссылка сама прописывалась ?
на сколько я знаю сейчас это во всех современных форумах и сайтах есть.
пример : название товара "Золотая рыбка" адрес товара "zolotay-rybka.xtml
но "zolotay-rybka приходится писать самому а это напрягает.
кто создал сказали не парьтесь можно и не подписывать...

P.s тогда зачем такое Seo вообще
04.04.2013, 15:34
Ответить | Цитировать
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 943

Как я понял вам нужно чтобы автоматически создавалось на траслите ключевое слово при условии что вы его не написали.

Транслитерация ключевых слов
Первый способ [Действия после добавления или редактирования]
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 где пробелы заменены на нижнее подчеркивание

На примере этого вы можете заполнить любые поля например СЕО. К слову в СЕО Есть заголовок ключевые слова и описание а ссылка на верху над СЕО закладкой является ключевым словом. Иногда лучше скирншоты присылайте чем непонятно что пишите.

Модуль "Почтовые уведомления" – настройка уведомлений на вашем сайте без программирования. Цена отзыв. Мне очень важно ваше мнение.
04.04.2013, 19:39
Ответить | Цитировать
ipm
Ильин Павел

Зарегистрирован:
2012-10-12
Сообщений: 367

Спасибо Вам, из Вашего ответа получил ответы на некоторые вопросы, которые меня мучали) Единственное, не нравится, что после добавления объекта, транслируется всё правильно, но ещё хочется, чтобы ключевое слово начиналось с маленькой буквы. а то не красивая ссылка получается) Можно ли что-то дописать в коде, конкретно в коде второго варианта, чтобы поле $Keyword заполнялось с маленькой буквы, не зависимо с какой буквы значение в поле $name?

Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
09.04.2013, 16:06
Ответить | Цитировать
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 943

Используйте strtolower() Код выше исправлен с учетом ваших пожеланий

Модуль "Почтовые уведомления" – настройка уведомлений на вашем сайте без программирования. Цена отзыв. Мне очень важно ваше мнение.
30.05.2013, 12:54
Ответить | Цитировать
ipm
Ильин Павел

Зарегистрирован:
2012-10-12
Сообщений: 367

А как сделать так, чтобы вместо пробелов подставлялось верхние подчёркивание вместо нижнего, т.е. дефис?

Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
30.05.2013, 13:20
Ответить | Цитировать
Руслан Густокашин
Студия Вэлпис
Руслан Густокашин

Зарегистрирован:
2012-02-06
Сообщений: 869

Ну например так:
$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
Сообщений: 367

Я использую этот код:
Код:
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
Сообщений: 869

Тогда попробуйте заэкранируовать дефис с помошью слэша.
Вот так: (' ','\-',strtolower($f_name))))
Дело в том, что этот знак является зарезервированным в regex.

30.05.2013, 15:59
Ответить | Цитировать
ipm
Ильин Павел

Зарегистрирован:
2012-10-12
Сообщений: 367

Я так попробовал...пробелы просто игнорируются. Что \- , что просто со знаком -

Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
03.06.2013, 15:20
Ответить | Цитировать
Руслан Густокашин
Студия Вэлпис
Руслан Густокашин

Зарегистрирован:
2012-02-06
Сообщений: 869

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

04.06.2013, 13:34
Ответить | Цитировать
ipm
Ильин Павел

Зарегистрирован:
2012-10-12
Сообщений: 367

С помощью первого способа описанного выше, удалось решить задачу.

Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
198 196 2013-06-07 20:55:24 12993
Страницы: 1  |  2
Описание проекта