Bestimmungen zum Datenschutz gelesen und anerkannt.
 

Простая переадресация со статусом 302 Andrei M. 25.11.2014

Простая переадресация страницы со статусом 302 (статус Found) обеспечивает метод перенаправления пользователя на другую веб страницу. Это особенно полезно в случае, если сайт мигрируется.

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

 

Если имя start_page_name, то запрос вида www.zapms.de будет перенаправлен на страницу www.zapms.de/start_page_name.

Любая страница может быть настроена для переадресации в менеджере меню.

В данном случае запросы вида www.zapms.de или www.zapms.de/start_page_name будут перенаправлены на другой сайт http://my_new_domain.

- Вверх -

Отображение навигации в ZAPms Andrei M. 12.09.2014

Структура веб сайта является основой для построения навигации по нему. Для примера используем дерево следующего вида:

About
Contact
Group A
-     Type AA
-     -     Product ABC
-     -     Product ABD
-     Type AB
Group B
-     Type BA
-     Type BB

Главное меню

Главное меню сайта будет содержать ссылки первого уровня дерева:

 

Код шаблона главного меню:

{php}
showMenuFlat('menu-sample');
{/php}

<ul style="list-style-type:none;">
{section name=custom loop=$menu_list}
  {if $menu_list[custom].active>0 and $menu_list[custom].level==0}
  <li style="float:left;">
    <a href="{$menu_list[custom].name}" style="padding-left:20px;">{if $menu_list[custom].active==3} -> {/if}
    {$menu_list[custom].title}</a></li>
  {/if}
{/section}
</ul>
<div style="clear:both;"></div>

Меню "хлебные крошки"

Меню "хлебные крошки" необходимо, если структура содержит более двух уровней:

Group A   Type AA   Product ABC

Код шаблона меню "хлебные крошки":

{php}
showMenuFlat('menu-sample');
{/php}

{section name=custom loop=$path_list step=-1}
  {if $smarty.section.custom.index==0}
    {$path_list[custom].title}
  {else}
    <a href="{$path_list[custom].name}">{$path_list[custom].title}</a> &nbsp;
  {/if}
{/section}

Вспомогательное меню

В случае необходимости отображения вспомогательного меню, относительно только одного конкретного уровня, например для Group A:

Код шаблона вспомогательного меню:

{php}
showMenuFlat('sample_group_a');
{/php}

<h1>Fixed Menu Types of Group A</h1>
<ul style="list-style-type:none;">
{section name=custom loop=$menu_list}
  {if $menu_list[custom].active>0 and $menu_list[custom].level==0}
    <li>
    <a href="{$menu_list[custom].name}"{if $menu_list[custom].active==3} style="font-width:bold;"{/if}>{$menu_list[custom].title}</a>
    </li>
  {/if}
{/section}
</ul>

Вспомогательное меню в виде дерева относительно выбранного пункта меню:

Код шаблона вспомогательного меню в виде дерева:

{php}
showMenuTree('menu-sample');
{/php}

<ul style="list-style-type:none;">
{assign var="clevel" value=1}
{section name=custom loop=$menu_list}
{if $menu_list[custom].active>1 and $menu_list[custom].level>0}
  {if $clevel>$menu_list[custom].level}
    {assign var="closes" value=$clevel-$menu_list[custom].level}
    {assign var="clevel" value=$menu_list[custom].level}
    {section name=iopens loop=$closes}
      </ul></li>
    {/section}
  {/if}
  <li>
  {if $clevel<$menu_list[custom].level}
    {assign var="clevel" value=$menu_list[custom].level}
     <ul style="list-style-type:none;"><li>
  {/if}
  <a href="{$menu_list[custom].name}"{if $menu_list[custom].active==3} style="font-width:bold;"{/if}>
  {$menu_list[custom].title}</a>
  </li>
{/if}
{/section}
</ul>

В общем случае, при вызове функции отображения дерева, массив меню выглядит следующим образом:

Name Title Id Parent Level Status
sample_about About 1094 1083 0 2
sample_contact Contact 1093 1083 0 2
sample_group_a Group A 1084 1083 0 2
sample_type_aa Type AA 1086 1084 1 2
sample_product_abc Product ABC 1090 1086 2 3
sample_product_abd Product ABD 1091 1086 2 2
sample_type_ab Type AB 1088 1084 1 2
sample_group_b Group B 1085 1083 0 2
sample_type_ba Type BA 1087 1085 1 1
sample_type_bb Type BB 1089 1085 1 1

где status:
0 - неактивный элемент меню
1 - активный элемент
2 - отображается в данный момент
3 - нажатый в данный момент элемент меню

- Вверх -

Роль структуры, интерфейса и шаблонов Andrei M. 05.09.2014

Структура и устройство продукта или сервиса отражаются в структуре веб сайта. Формализовать структуру сайта можно в виде дерева или списка.

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

Structure_Prototype.png

Когда готово графическое представление веб сайта в виде картинки, важно создать макет или прототип в виде .html файла. Макет покажет насколько хорошо графический интерфейс выполняет свои цели.

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

Prototype_Menu.png

Как шаблоны, так и содержимое привязано к элементам структуры сайта, которое представлено в виде меню на сайте. Содержимое веб сайта хранится в виде html файлов на сервере либо в базе данных.

Файлы шаблонов zapms находятся в папке /files/templates/

site_default.tpl основной каркас, содержит ссылки на контейнеры меню и содержимого
menu_top.tpl, menu_news.tpl содержат вызовы функций отображения меню
menu_download.tpl содержит статический текст со ссылками на файлы загрузки
menu_galery_about.tpl вызов галереи скриншотов для отображения в области меню
menu_news.tpl содержит вызов новостей из базы данных в область меню
content_default.tpl отображает статическое содержание
content_news.tpl содержит вызов новостей из базы данных в область основного содержимого

Статическое содержание и картинки находятся в папке /files/content/

sample_content.txt файл статического содержания

- Вверх -

Установить на Raspberry PI Andrei M. 28.08.2014

Требования

Zapms установка

Скопировать Zapms и распаковать локально. Далее скопировать папку в pi. Предположим, ваш Raspberry имеет IP адрес 192.168.0.1

scp -r /home/USER_NAME/zapms_for_raspberry_pi pi@192.168.0.1:/home/pi/Desktop/

Логинимся в pi.

ssh pi@192.168.0.1

Копируем Zapms в папку www. Предположим, хозяином папки www является группа www-data (настройки сервера lighttpd).

sudo -g www-data cp -ru /home/pi/Desktop/zapms_for_raspberry_pi/* /var/www/

Добавляем права

sudo chmod 777 /var/www/auth/ /var/www/include/ /var/www/files/ -R
sudo chmod 777 /var/www/zap/include/ /var/www/zap/cache/ /var/www/zap/templates/ /var/www/zap/templates_c/ -R

Создаем базу данных zapmsdb

mysql -p -u root
mysql> create database zapmsdb character set utf8 collate utf8_general_ci;
mysql> grant all privileges on zapmsdb.* to 'pi'@'localhost';
mysql> flush privileges;
mysql> quit;

Задаем правила для сервера. Пример файла можно найти в дистрибутиве setup/lighttpd.conf

sudo nano /etc/lighttpd/lighttpd.conf

добавляем следующие параметры:

server.modules = (
...
"mod_rewrite",
...
)
...
index-file.names = ( "index.php", "index.html", "index.lighttpd.html" )
...
fastcgi.server = (".php"=>(("bin-path"=>"/usr/bin/php-cgi","socket"=>"/tmp/php.socket"))) 

# direct access is denied for bibliothek and images
$HTTP["url"] =~ "^/(auth|include|files/content/images/originals|zap/include)/" {

url.access-deny = ( "" )
server.error-handler-404 = "403"
}

# direct access is denied for modules
$HTTP["url"] =~ "^/(modules|zap/modules)" {
url.access-deny = ( "index.php" )
server.error-handler-404 = "403"
}

# rewrite urls
url.rewrite-if-not-file = (
"^/robots.txt" => "/robots.php",
"^/sitemap.xml" => "/sitemap.php",
"^/crossdomain.xml" => "/crossdomain.php",
"^/files/(.*)$" => "$0", # no restrictions for static content
"^/([^.?]*)$" => "index.php?m=$1", # default controller
"^/([^.?]*)?(.*)$" => "index.php?m=$1&$2", # other requests
"^/$" => "/index.php" # default page
)

Проверяем синтаксис и перезапускаем сервер

lighttpd -t -f /etc/lighttpd/lighttpd.conf
sudo service lighttpd restart

Запускаем настройку в браузере

http://192.168.0.1/setup/index.php

Залогинимсяв административную часть CMS

http://192.168.0.1/zap/index.php

 

Дополнительные настройки crontab

Создать crontab для ежедневной перезагрузки

sudo -u pi crontab -e

# restart once a day
51 23 * * * sudo reboot -h

Запустить crontab

sudo nano /etc/rc.local
--> add line before exit 0
/etc/init.d/cron start

Мониторинг crontab

sudo tail -f /var/log/syslog | grep CRON

- Вверх -

Новости


Downloads

zapms v1.6 (4,3 MB)


Live Demo

http://zapms.de/test/zap
Login: demo
Password: demo