Почетный SF Сообщений: 1676 Откуда: Киев Зарегистрирован: 18 Ноября 2007, 18:49:13 Сказали спасибо 148 раз Статус: offline
ICQ статус
Опубликовано 15 Декабря 2007, 19:19:06
Нашел хорошее, рабочее ЧПУ для фьюжна...все отлично работает, вот только линк на профиль указывает как id, тоесть sait.ru/profil-1.html а хотелось бы чтоба так sait.ru/pozitiv можно ли так сделать?
Любитель Fusion Сообщений: 325 Откуда: Москва Зарегистрирован: 08 Мая 2007, 19:40:59 Сказали спасибо 24 раз Статус: offline
Опубликовано 18 Декабря 2007, 10:18:43
Sky, вот те и ЧПУ для 4й сборки, и форум новый от меня )
Осталось пару фиксов добавить и всё... )
Открываем тему "Чего вы хотите видеть в 4й сборке?" ) Или рано пока?
Пазитифф, а не хочеш его русифицировать? И сделать свои авторские права )))
Администратор Сообщений: 3023 Откуда: Astana Зарегистрирован: 01 Апреля 2007, 18:11:10 Сказали спасибо 470 раз Статус: offline
Опубликовано 18 Декабря 2007, 17:25:57
pozitiv написал:
Нашел хорошее, рабочее ЧПУ для фьюжна...все отлично работает, вот только линк на профиль указывает как id, тоесть sait.ru/profil-1.html а хотелось бы чтоба так sait.ru/pozitiv можно ли так сделать?
проблема в том что ник может состоять из русских букв или запрещенных символов для урл... пусть лучше будет id
P.S. мод супер, он будет в следующей сборке
Почетный SF Сообщений: 1676 Откуда: Киев Зарегистрирован: 18 Ноября 2007, 18:49:13 Сказали спасибо 148 раз Статус: offline
ICQ статус
Опубликовано 29 Декабря 2007, 19:02:36
слу...а если использовать функцию decodeURI/encodeURI...может получится использовать русские ники? типа прогнать юрл перед выводом через функцию
$url=urlencode($url);
Добавлено:
смоnhи..пробую добавить функцию в maincore.php
function getusername($user_id) {
global $user_id;
$result = dbquery("SELECT * FROM ".$db_prefix."users");
if (dbrows($result)!=0) {
$data = dbarray($result);
return $data['user_name'];
} else {
return "N/A";
}
}
а потом пытаюсь прогоняю юзера через функцию, чтобы вместо циферки был ник
типа getusername('user_id')но выдает ошибку, а точнее ссылается на юзера /profile.php?lookup=N/A...в чем ошибка может быть, подскажите=))
Местный Сообщений: 24 Откуда: Россия, г. Якутск Зарегистрирован: 08 Января 2008, 11:14:51 Сказали спасибо 1 раз Статус: offline
ICQ статус
Опубликовано 16 Января 2008, 06:47:35
Думаю, следует сделать как во всех чпу. Внедрить функцию транслитеррирования русских сивмолов. То бишь профиль пользователья Позитив будет доступен по адресу http://site.url/Pozitiv. Даталайв не юзал? Там реализовано именно так.
[Изменил(а) danyabagrov, 16 Января 2008, 06:50:41]
Местный Сообщений: 24 Откуда: Россия, г. Якутск Зарегистрирован: 08 Января 2008, 11:14:51 Сказали спасибо 1 раз Статус: offline
ICQ статус
Опубликовано 16 Января 2008, 18:35:07
Насчет твоего примера не знаю. Просто ни разу не сталкивался. Но думаю нижеследующими способами этих проблем можно избежать.
Первый вариант:
в любом случае ты всегда можеш добавить к нику префикс, к примеру не Pozitiv а rusPozitiv. Или вообще http://site.url/rusnicks/Pozitiv(а для английских - /engnicks/Pozitiv соответственно). Таким образом английские эквиваленты русским никам никак не пересекутся с похожими на исходном английском.
Второй вариант:
при регистрации проверить ник на схожесть с никами из базы dbprefix_users, в алгоритм проверки внедрить транслитеррирование. Итого получается следующее:
При использовании этого способа не придется бить ники на папки и ставить префиксы. Недостаток - применить на работающем сайте достаточно проблематично.
Почетный SF Сообщений: 1676 Откуда: Киев Зарегистрирован: 18 Ноября 2007, 18:49:13 Сказали спасибо 148 раз Статус: offline
ICQ статус
Опубликовано 16 Января 2008, 21:31:11
как я выше писал, для русских ников есть функция енкодюри(написано выше)...вроде таким способом сделано в википедии, тоесть русские ники будут поддерживатся....мне главное узнать как выводить вместо цифры ник...
Местный Сообщений: 24 Откуда: Россия, г. Якутск Зарегистрирован: 08 Января 2008, 11:14:51 Сказали спасибо 1 раз Статус: offline
ICQ статус
Опубликовано 18 Января 2008, 09:36:59
pozitiv написал:
Добавлено:
смоnhи..пробую добавить функцию в maincore.php
function getusername($user_id) {
global $user_id;
$result = dbquery("SELECT * FROM ".$db_prefix."users");
if (dbrows($result)!=0) {
$data = dbarray($result);
return $data['user_name'];
} else {
return "N/A";
}
}
а потом пытаюсь прогоняю юзера через функцию, чтобы вместо циферки был ник
типа getusername('user_id')но выдает ошибку, а точнее ссылается на юзера /profile.php?lookup=N/A...в чем ошибка может быть, подскажите=))
Только сейчас вчитался в то, что ты написал :) там ошибка в запросе у тебя. Он неконкретен и выкатывает абсолютно все строки, которые находятся в таблице юзеров. Естественно когда ты просишь $data['user_name'] он не знает что тебе вернуть. Тебе нужно конретизировать запрос к мускулу, это будет примерно так:
function getusername($user_id) {
global $user_id;
$result = dbquery("SELECT * FROM ".$db_prefix."users WHERE user_id = '".$user_id."'");
- таким образом база вернет только одну строку, удовлетворяющую указанному $user_id.
ошибка немного смешная, для чего просить $user_id если не собираешься его использовать в функции :) И еще одно: вместо return "N/A" я бы использовал редирект на индекс.
таким макаром ссылки на профиль будут вида profile.php?lookup=pozitiv, но при просмотре профиля перестают работать некоторые функции, например отображение написанныхпостов, тем и т.д...буду чтото думать..