LastoShopGold: дизайн.

Концепция дизайна:

Автор хотел предоставить пользователю такие возможности:

  1. Заменять дизайн магазина простой заливкой на сервер комплекта файликов.

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

    Сам комплект файликов дизайна содержит:

    Корневая папка скрипта 755
    css 755
    designname.css 644 ascii
    data 755
    tpl 755
    designname 755
    design.php 644 ascii
    email_form.php 644 ascii
    menu_index.php 644 ascii
    menu_other.php 644 ascii
    i 755
    designname 755

    Выделенное красным designname означает собой идентификатор дизайна. Именно это значение надо дать переменной $_s["design"]["type"] в файле настроек ./data/tpl/settings.php, чтобы сделать дизайн основным.

  2. Примечательно, что дизайн, будучи установленным в магазин (комплект его файликов уже скопирован на сервер), но не активированный в файле настроек через означенную выше переменную, может быть включен персонально для конкретного пользователя, путём адресации браузера пользователя к специальному интернет-адресу.

    Это позволит вебмастеру работать над новым дизайном, не переключая в него шоп. Посетители сайта увидят при этом основной дизайн шопа.

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

    Как выглядит ссылка: http://site.ru/cms_design-design.html

    Дизайн design должен быть не тот, что стоит по дефолту.

    Примечания:

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

    2. Сами специальные ссылки возвращают пользователя на ту страницу, с которой такая ссылка была прокликнута.

Назначение файлов дизайна:

1). design.php

Шаблон дизайнов для разных типов страниц магазина.
На каких-то из них может не быть панели навигации.
Каким-то вообще не нужна шапка или подвал.

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

2). email_form.php

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

3). menu_index.php и menu_other.php

Файлы меню для морды сайта и прочих страниц соответственно.

Меню морды сайта формируется собственным файлом для того, чтобы Вы там имели возможность размещать логотипы платёжных систем, так как те будут этого буквально требовать. На все страницы сайта пихать эти логотипы, конечно, нет нужды.

4). Дизайн таблиц лота и платёжных форм.

Единственное, что Вам может не покориться через редактирование указанных выше файлов, это строки таблички описания лота и платёжной формы. А в ряде случаев встаёт задача кастомизации и этих элементов.

Функции, ответственные за их синтез, вынесены в файл index.php, и откомментированы. Терзайте их там.

5). Дизайн меню.

Возможно также, что фирменная менюшка Шопа с плюсиками чем-то не понравится дизайнеру. А поскольку доступа к её формированию у дизайнера нет (процедура синтеза менюшки сложна, и, даже лицезрея код этой процедуры, дизайнер ничего с ним не сможет сделать), то можно рекомендовать вот такой метод преобразования менюшки:

  1. В уже знакомом нам файле design.php перед шаблонами хеадера и фоотера разместите простейший парсер HTML кода менюшки в своё представление. Например, это может выглядеть так:

     $k=preg_match_all(
        
    '~<div class="link"><a href="cat\_(.*)\.html"(.*) >(.*)<\/a><\/div>~Usi',
     
    $left_menu,
     
    $lm);
     
    $left_menu='';
     for (
    $i=0$i $k$i++) $left_menu.=
     
    '<li><a href="cat_'.$lm[1][$i].'.html"'.$lm[2][$i].'>'.$lm[3][$i].'</a></li>';
  2. Последняя строка есть синтез списка категорий из кусочков ссылок исходного дивового представления меню навигации Шопа - понятно, что в этом месте Вы вольны написать нужный Вам шаблончик ссылок и какие-то собственные HTML теги.

    Только не забудьте потом окаймить переменную $left_menu контейнером нумерованного или ненумерованного списка, либо иными, нужными тут тегами.

  3. При этом понимайте, что, вторгаясь в функционал Шопа, Вы убиваете какие-то сервисы, например, вывод разного типа меню на различных страницах, подливку индивидуального содержимого в панельку меню для определённых лотов, и так далее.

    Либо пишите более сложный парсер меню шопа, который покоцает только навигацию, и не затронет указанные сервисы.

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