Jump to content

Как улчше организовать


Recommended Posts

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

 

И как менять содержимое TOP в зависимости от страницы?

 

Спасибо

Edited by vscorpion (see edit history)
Link to comment
Share on other sites

Нужно проверять текущий контроллер вот таким методом:

   public function getCurrController()
   {
    if (!Tools::getValue('fc')) {
	    if ($controller = Tools::getValue('controller')) {
		    return $controller;
	    }
    }

    return 'index';
   }

 

Для главной страницы вернет index

  • Like 1
Link to comment
Share on other sites

Не понял, о чём Вы!.. Топ — это всестраничный хук. Только для главной у нас хук Хоум. Всё, что повесили на этот крючок, будет выводиться только на главной, всё, что на хуке Топ, например, верхнее меню, может выводиться на любой странице. Поэтому, если Вам нужно что-то показывать на главной и больше нигде, вешайте на хоум.

  • Like 1
Link to comment
Share on other sites

спасибо большое выручили.

 

Не понял, о чём Вы!.. Топ — это всестраничный хук. Только для главной у нас хук Хоум. Всё, что повесили на этот крючок, будет выводиться только на главной, всё, что на хуке Топ, например, верхнее меню, может выводиться на любой странице. Поэтому, если Вам нужно что-то показывать на главной и больше нигде, вешайте на хоум.

таким образом левый и правый хуки тоже на главной будут и на остальных, а мне надо на главной левый и правый спрятать, а на остальных оставить только левый и топ на главной 1, а на остальных он уже другой.

Link to comment
Share on other sites

Если нужно выводить только на главной, тогда нужно использовать хук Home. Если на всех страницах, то хук Top. А если на главной и на какой-нибудь еще (не на всех), то нужно проверять контроллер в хуке Top

  • Like 1
Link to comment
Share on other sites

Значит Вы хотите совсем убрать правую колонку? Тогда Вам сюда, в шаблон хедера (header.tpl), где нужно будет изменить 65 строчку:

<body {if isset($page_name)}id="{$page_name|escape:'htmlall':'UTF-8'}"{/if} class="{if $hide_left_column}hide-left-column{/if} {if $hide_right_column}hide-right-column{/if}">

После правки она должна иметь такой вид:

<body {if isset($page_name)}id="{$page_name|escape:'htmlall':'UTF-8'}"{/if} class="hide-right-column">

Всё что нужно сделать — это выбрать класс со скрытой правой колонкой. Действительно для всех страниц сайта.

  • Like 1
Link to comment
Share on other sites

Дополнение к предыдущему. Сам всегда удаляю только левую. Поэтому запамятовал, что правила на случай удаления правой в файле global.css нет. Нужно его добавить. Найти этот фрагмент (где-то в пределах первой сотни строк):

.hide-left-column #left_column {display:none}
.hide-left-column #center_column {width:757px}

И вставить перед ним это:

.hide-right-column #right_column {display:none}
.hide-right-column #center_column {width:757px}

  • Like 1
Link to comment
Share on other sites

мне необходимо ее совсем убрать - я ее убрал, да еще я понял можно в init() в контроллере просто передавать параметр

right = false точно не помню какое название параметра и колонка исчезнет.

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

Link to comment
Share on other sites

Вообще не трогайте контроллер! Всё это без него делается. Вам совсем не нужна правая колонка? Как её убрать, я уже написал. Про индивидуальную вёрстку главной сейчас напишу. А про постоянно менять содержимое — а если точнее, чтобы на всех страницах левая колонка выводилась с разным содержанием — Вам сюда. Я в своём блоге описал, как это делается.

  • Like 1
Link to comment
Share on other sites

Чтобы убрать левую колонку с главной, нужно в файл global.css добавить такое правило:

#index #right_column {display: none}

А чтобы блоки главной страницы, оставшейся без боковых колонок, имели ширину на всю страницу, нужно добавить ещё это правило:

#index #center_column {width: 979px; margin-top: 0}

  • Like 1
Link to comment
Share on other sites

Ну, а индивидуальный облик главной формируется тремя блоками, которые выводятся только на этой странице: верхним слайдером (модуль homeslider), текстовым блоком (модуль editorial, в разделе модулей в админке называется HomeTextEditor) и витриной (модуль homefeatured).

  • Like 1
Link to comment
Share on other sites

А вообще не могу понять одну вещь... Способ удаления правой колонки — это, как бы, правильный, поскольку предусмотрен самими разработчиками, но какого чёрта! Почему я не могу просто запретить в стилях выведение правой колонки, как делал всегда? Зачем нужно добавлять в шаблон специальный класс hide-right-column? Поскольку не программист, смысл этого я не понимаю...

  • Like 1
Link to comment
Share on other sites

не бейте...все равно немного не понял, вот я размещу слайдер в хуке слайдера в топе ничего не будет тогда, но если мне разместить модуль корзины в топ, то она и на главной появится, а мне надо чтоб она была только на других страницах.

 

вот сайт делаю... Доставка еды

 

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

 

У меня на главной я сделал слайдером товары, как мне вывести на каждую страницу рандомно по 1 товару из каждой категории?

при перелистывании на второй страницу тоже рандомно или с этих же категорий или же с других...

в админке с сделал выбор категорий для показа

Edited by vscorpion (see edit history)
Link to comment
Share on other sites

Разобрались? Ну, и хорошо. Заглянул на сайт — очень славный, по задумке, дизайн. Всё портят детали. Ошибка на ошибке: в графике, в типографике, в орфографии... Не подумайте, я не набиваюсь в доработчики дизайна; и так работы — выше крыши. Просто говорю, присмотритесь.

Edited by Dimitri Yelquin (see edit history)
Link to comment
Share on other sites

Спасибо. Это черновой, он тем более толком не работает в ie ниже 9. да и дизайнера другого ищу, я программер, текущий дизайнер не справляется с задачей...

 

может я что-то не заметил, а какие ошибки в графике, в типографике?

Link to comment
Share on other sites

Нужно проверять текущий контроллер вот таким методом:

public function getCurrController()
{
	if (!Tools::getValue('fc')) {
		if ($controller = Tools::getValue('controller')) {
			return $controller;
		}
	}

	return 'index';
}

 

Для главной страницы вернет index

 

Этот метод нужно объявить в классе с модулем. В хуке (например Top), можно делать такую проверку:

if ($this->getCurrController() == 'index') {

//это главная страница

}

 

if ($this->getCurrController() == 'catalog') {

//страница каталога

}

 

 

if ($this->getCurrController() == 'product') {

//страница продукта

}

Link to comment
Share on other sites

Нужно проверять текущий контроллер вот таким методом...

А подробнее? Чтобы любому было понятно, а не только программистам. Для уха непрограммиста в выражении «проверять текущий контроллер» нет и намёка на изменения в нём. Неужто от того, что я загляну в контроллер, у меня что-то само собой поменяется в дизайне?!

Link to comment
Share on other sites

@vscorpion Вообще-то я уже и так понял, что пока не очень разбираетесь. Но у меня такая проблема, для решения которой програмисту не обязательно знать вообще ПрестаШоп. Мне нужно перенести кое-какой модуль с одной страницы в админке на другую. Ну, и разумеется, чтобы он на новом месте работал. А я за это исправлю Вам недочёты дизайна...

Link to comment
Share on other sites

@vscorpion Это Вы серьёзно про то, что программист? И насколько разбираетесь в ПрестаШопе?

 

только начал изучать, узнаю классы его бд, а так со смарти я знаком со времен koobi, smarty-x.

 

Поправка, навсякий случай, я нек говорил что я крутой прогер :) но стремлюсь к этому.

Edited by vscorpion (see edit history)
Link to comment
Share on other sites

@vscorpion Вообще-то я уже и так понял, что пока не очень разбираетесь. Но у меня такая проблема, для решения которой програмисту не обязательно знать вообще ПрестаШоп. Мне нужно перенести кое-какой модуль с одной страницы в админке на другую. Ну, и разумеется, чтобы он на новом месте работал. А я за это исправлю Вам недочёты дизайна...

давайте попробуем - моя аська 114315611 или скайп vscorpion

Link to comment
Share on other sites

Screen это значит CSS стили только для отображения на экране, в браузере. all это значит стиль подходит как для браузера так и для печати, print это ксс стиль только для печати, например когда клиент распечатывает страницу вашего сайта, можно убрать блоки которые для печати не нужны или изменить цвет и размер шрифта...

Edited by Kerm (see edit history)
  • Like 1
Link to comment
Share on other sites

Screen это значит CSS стили только для отображения на экране, в браузере. all это значит стиль подходит как доя браузера так и доя печати, print это ксс стиль только для печати, например когда клиент распечатывает страницу вашего сайта, можно убрать блоки которые доя печати не нужны или изменить цвет и размер шрифта...

спасибо за рязъяснения

Link to comment
Share on other sites

как можно прикрутить jquery validation form, а то в других движках при вводе например почты или имени сразу проверялось на совпадение, а тут только после нажатия кнопки применить, не удобно

Link to comment
Share on other sites

×
×
  • Create New...