Если это включено,
то профиль вы не увидите. Будет кидать в логин, даже если вы УЖЕ.. Потом конечно вы увидите users/id
Убрать из url адреса /users/
onCheatError404
Это ужасное решение. Плохо всё, начиная с
$_SERVER[«REQUEST_URI»]
Заканчивая
$page = file_get_contents($url);
Если это включено,
А по условиям задачи, которую сформулировал ТС, оно должно быть включено?
Это ужасное решение. Плохо всё, начиная с
Да, согласен. Но другого то нет.
Создать хук engine_start
<?php class onCheatEngineStart extends cmsAction { public function run() { if ($this->cms_core->uri_params || $this->cms_core->uri_action) { return true; } $user_exists = $this->model-> selectOnly('id')->select('slug')-> filterEqual('nickname', $this->cms_core->uri_controller)-> getItem('users'); if (!$user_exists) { return true; } $slug = $user_exists['slug'] ?: $user_exists['id']; $this->cms_core->uri = 'users/' . $slug; $this->cms_core->uri_controller = 'users'; $this->cms_core->uri_action = $slug; return true; } }
Всякие проверки и валидации добавьте по вкусу.
Так, а теперь для всех с подробностями )
Запрос к БД не проходит.
Ошибка в запросе БД: Таблица 'icms216.cms_cms_users' не существует
SELECT id, slug
FROM cms_cms_users i
WHERE (i.nickname = 'Семён Семёныч Горбунков')
LIMIT 1
Последние вызовы:
cmsModel->getItem() @ /system/controllers/cheat/hooks/engine_start.php: 14
onCheatEngineStart->run() @ /system/core/controller.php: 745
cmsController->runExternalHook() @ /system/core/controller.php: 704
cmsController->runHook() @ /system/core/eventsmanager.php: 142
cmsEventsManager::runHook() @ /system/core/eventsmanager.php: 61
cmsEventsManager::hook() @ /system/core/core.php: 187
cmsCore->runHttp() @ /index.php: 28
А по условиям задачи, которую сформулировал ТС, оно должно быть включено?
То что оно должно быт выключено, тоже не было. Может этой опции не было 4 года назад. Упомянуть было нечего… Я вам на заметку дал а не критиковал ваше решение.
Так, а теперь для всех с подробностями )
Это не то что вы ожидаете. Это просто короткая ссылка на профиль. Все. Ничего больше. У вас так же все будет как users/id
pupsik, ТС хотел, чтобы профиль представлял какую то творческую личность и любой посетитель сайта мог этот профиль увидеть. Так что вряд ли он включил то, что вы указали.
pupsik, Это не то что вы ожидаете. Это просто короткая ссылка на профиль. Все. Ничего больше. У вас так же все будет как users/id
Я так понял что в ссылке не будет users
Я так понял что в ссылке не будет users
Цель получить рабочую ссылку вида _http://site.com/nickname
Так что вряд ли он включил то, что вы указали.
А если этот кто-то перешедший по ссылке на профиль, уже авторизован на сайте? Я так думаю что автор имел ввиду что каждый сможет зайти по этой ссылке а не только гости. Но вам видней.
Я так понял что в ссылке не будет users
Да, только в ЭТОЙ ссыкле. Все остальное, по умолчанию.
pupsik, так понятно что тут не о изменении профиля как такого, короткие ссылки это гуд
Fuze, всё работает. Благодарю за мастер-класс!
Fuze, всё работает. Благодарю за мастер-класс!
Распишите плиз поэтапно что делать