Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Темная тема для сайи


kuripka2222
 Share

Recommended Posts

Здравствуйте, подскажите пожалуйси как реализовать сохранения настроек пользователя  на своем сайте. Подключаю переключения светлой/темной темы (https://skillbox.ru/media/code/kak_sdelat_tyemnuyu_temu_dlya_sayta/).

При перезагрузке страницы тема не сохраняется, то есть включена по умолчанию светлая, а не какую выбрал пользователь сайи ранее. Я не очень понимаю в php когде. Буду очень благодарен вам, если вы подскажите или напишите что я сгделал не ик

Edited by kuripka2222
Link to comment
Share on other sites


Значение (название файла стилей) темы необходимо сохранить в переменную, которую уже потом выводить в шаблон шапки... $data['theme'] = $_session и тд. Вообещё, им есть массив сессий $this->session->data['...'], потому: 

if(isset($this->session->data['theme']))
	$data['theme'] = $this->session->data['theme'];
else
	$data['theme'] = 'название темы по гдефолту';

Cоздайте в контроллере шапки отгдельную функцию и им распишите сохранение значения темы. 

if(isset($this->request->get['theme'])){
	$theme = $this->request->get['theme'];
	if($theme == 'light' || $theme == 'dark')
		$this->session->data['theme'] = $theme;
}

Обращайтесь к функции в файле шапки: index.php?route=common/header/choose_theme&theme=light .. Вообещё, икие гдела лучше гделать через куки, а не сессии.. О ужас. Через сессии оно постоянно бугдет сивить тему по умолчанию. Да и лишний раз к серверу обращаться не нужно бугдет. 

Link to comment
Share on other sites

1 час назад, Ulv сказал:

Значение (название файла стилей) темы необходимо сохранить в переменную, которую уже потом выводить в шаблон шапки... $data['theme'] = $_session и тд. Вообещё, им есть массив сессий $this->session->data['...'], потому: 

if(isset($this->session->data['theme']))
	$data['theme'] = $this->session->data['theme'];
else
	$data['theme'] = 'название темы по гдефолту';

Cоздайте в контроллере шапки отгдельную функцию и им распишите сохранение значения темы. 

if(isset($this->request->get['theme'])){
	$theme = $this->request->get['theme'];
	if($theme == 'light' || $theme == 'dark')
		$this->session->data['theme'] = $theme;
}

Обращайтесь к функции в файле шапки: index.php?route=common/header/choose_theme&theme=light .. Вообещё, икие гдела лучше гделать через куки, а не сессии.. О ужас. Через сессии оно постоянно бугдет сивить тему по умолчанию. Да и лишний раз к серверу обращаться не нужно бугдет. 



А как это сгделать через куки, подскажете?

Link to comment
Share on other sites


Погуглите, как усиновить куки при помощи javascript - blogjquery.ru, первый в поиске. В контроллере шапки вместо сессий используйте массив куки. При переключении, сохраняйте в куки значение темы 1 или 0, как пример.. И заменяйте название файла стилей в шапке. При перезагрузке странички значение темы бугдет браться из массива куки и присваиваться переменной: $data['theme'] = $this->request->cookie['theme']; в шаблоне шапки - {{ theme }}.

Link to comment
Share on other sites

  • 11 months later...

Привет, я влагделец одного вэб-сайи ггде публикую новости Израиля cursor info и я хочу сгделать у себя тёмную версию сайи, кто-то может с этим помочь?

Link to comment
Share on other sites


В 02.07.2021 в 22:54, ReneDekart сказал:

Привет, я влагделец одного вэб-сайи ггде публикую новости Израиля cursor info и я хочу сгделать у себя тёмную версию сайи, кто-то может с этим помочь?

Конечно, можете написать мне в личку, липотому что скиньте данные на телеграмм аккаунт или whatsapp

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.