Тип контента по умолчанию - профиль пользователя

InstantCMS 2.X

Убрать из url адреса /users/

#16 8 февраля 2025 в 18:10

Если это включено,

Изображение

то профиль вы не увидите. Будет кидать в логин, даже если вы УЖЕ.. Потом конечно вы увидите users/id

#17 8 февраля 2025 в 18:17

onCheatError404

IamB

Это ужасное решение. Плохо всё, начиная с 

$_SERVER[«REQUEST_URI»]

IamB

Заканчивая

$page = file_get_contents($url);

IamB
#18 8 февраля 2025 в 18:41

Если это включено,

pupsik

А по условиям задачи, которую сформулировал ТС, оно должно быть включено?

Это ужасное решение. Плохо всё, начиная с 

Fuze

Да, согласен. Но другого то нет.

Сегодня в 19:03
#19 8 февраля 2025 в 18:59

Создать хук engine_start

  1. <?php
  2.  
  3. class onCheatEngineStart extends cmsAction {
  4.  
  5. public function run() {
  6.  
  7. if ($this->cms_core->uri_params || $this->cms_core->uri_action) {
  8. return true;
  9. }
  10.  
  11. $user_exists = $this->model->
  12. selectOnly('id')->select('slug')->
  13. filterEqual('nickname', $this->cms_core->uri_controller)->
  14. getItem('users');
  15.  
  16. if (!$user_exists) {
  17. return true;
  18. }
  19.  
  20. $slug = $user_exists['slug'] ?: $user_exists['id'];
  21.  
  22. $this->cms_core->uri = 'users/' . $slug;
  23.  
  24. $this->cms_core->uri_controller = 'users';
  25. $this->cms_core->uri_action = $slug;
  26.  
  27. return true;
  28. }
  29.  
  30. }
  31.  

Всякие проверки и валидации добавьте по вкусу.

#20 8 февраля 2025 в 19:12

Так, а теперь для всех с подробностями )

#21 8 февраля 2025 в 19:14

Запрос к БД не проходит.

Ошибка в запросе БД: Таблица '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

#22 8 февраля 2025 в 19:25

А по условиям задачи, которую сформулировал ТС, оно должно быть включено?

IamB

То что оно должно быт выключено, тоже не было. Может этой опции не было 4 года назад. Упомянуть было нечего… Я вам на заметку дал а не критиковал ваше решение.

Добавлено спустя 7 минут

Так, а теперь для всех с подробностями )

Happy

Это не то что вы ожидаете. Это просто короткая ссылка на профиль. Все. Ничего больше. У вас так же все будет как users/id

#23 8 февраля 2025 в 19:27

 pupsik, ТС хотел, чтобы профиль представлял какую то творческую личность и любой посетитель сайта мог этот профиль увидеть. Так что вряд ли он включил то, что вы указали.

#24 8 февраля 2025 в 19:29

 pupsik, Это не то что вы ожидаете. Это просто короткая ссылка на профиль. Все. Ничего больше. У вас так же все будет как users/id

Я так понял что в ссылке не будет users

#25 8 февраля 2025 в 19:36

Я так понял что в ссылке не будет users

Happy

Цель получить рабочую ссылку вида _http://site.com/nickname

#26 8 февраля 2025 в 19:42

Так что вряд ли он включил то, что вы указали.

IamB

А если этот кто-то перешедший по ссылке на профиль, уже авторизован на сайте? Я так думаю что автор имел ввиду что каждый сможет зайти по этой ссылке а не только гости. Но вам видней.

Я так понял что в ссылке не будет users

Happy

Да, только в ЭТОЙ ссыкле. Все остальное, по умолчанию.

#27 8 февраля 2025 в 20:32

 pupsik, так понятно что тут не о изменении профиля как такого, короткие ссылки это гуд 

#28 8 февраля 2025 в 20:33

 Fuze, всё работает. Благодарю за мастер-класс!

#29 8 февраля 2025 в 20:35
 Fuze, всё работает. Благодарю за мастер-класс!
IamB

Распишите плиз поэтапно что делать 

#30 8 февраля 2025 в 20:55

 Happy, В папке system/controllers нужно создать папку cheat с такой структурой

cheat
├── frontend.php
└── hooks
        └── engine_start.php

frontend.php такой же как здесь,

engine_start.php как написал Fuze.

Обновить события в админке.

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.