Инсталляция Скрытной Наны.

Перед установкой данного модуля убедитесь, что версия Nano-CMS у Вас актуальная, только что взята из дистрибутива этого сайта. Если что-то идёт явно не так, Вы знаете, в чём причина.

Далее остаётся совершить три простых шага:

1) Перенесите дистрибутив Скрытной Наны на хост.

В корневую папку Базовой Нано-CMS Вам необходимо залить содержимое дистрибутива:

Корневая папка скрипта 755
data 755
content 777
hidden (это папка Закрытой Зоны) 777
_menu.php 666 ascii
control.php 644 ascii
index.php 666 ascii
modules 755
hidden (это вотчина Скрытной Наны) 755
files 777
users 777
_hidden.php 644 ascii
_hidden_52.php 644 bin
_hidden_53.php 644 bin
_hidden_54.php 644 bin

Обратите внимание - тут есть и бинарные файлы (bin).
Перемещать бинарники на хост нужно в бинарной моде загрузки.

Директориям с правами на запись (на схеме их права доступа помечены как 777) обязаны такие права получить, иначе Скрытная Нана не сможет создать внутри директорий фолдеры с данными.

Примечание:

На схеме показано, что дефолтная Закрытая Зона расположена по пути ./data/content/hidden/, однако имя папки может быть не hidden, а её файлы имеют право жить хоть прямо в папке файлов контента, хоть в сколь угодно глубоко вложенной в неё.

2) Дополните файл настроек settings.php

Файлом настроек зовётся ./data/settings.php
Перед фрагментом кода вида

   S_s['modules']=array(
      
'err'       => '_error_404.php',
      
'nav'       => '_menu.php',
      
'des'       => '_design.php',
   );

необходимо объявить параметры всех имеющихся Закрытых Зон:

   $_s['hidden']=array(
      
'ma1'       => array('/hidden/' => array('master')),

      
'ip_numder' => 5,                # Разрешено разных IP-адресов для одного PIN-кода.
      
'base'      => '/hidden/',       # Имя папки Закрытой Зоны внутри папки модулей.
   
);

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

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

   $_s['hidden']=array(
      
'ip_numder' => 5,                # Разрешено разных IP-адресов для одного PIN-кода.
      
'base'      => '/hidden/',       # Имя папки Закрытой Зоны внутри папки модулей.
   
);
   
$_s['hidden']['ma1']['/hidden/']=array('master');

Важно:

Ключ массива (ma1 в примере) должен быть на латинице.
И в одно слово, без пробелов и знаков препинания.

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

Вам потребуется понять два момента:

2a) Объявление очередной Закрытой Зоны.

При создании каждой новой Закрытой Зоны следует дополнять этот массив новыми парами ключ-значение. Например, так:

   $_s['hidden']=array(
      
'ma1'       => array('/hidden/' => array('master')),
      
'news'      => array('/news/2017/' => array('master','user')),
      
'ip_numder' => 5,
      
'base'      => '/hidden/',
   );

Или в альтернативном, "более понятном" варианте:

   $_s['hidden']=array(
      
'ip_numder' => 5,
      
'base'      => '/hidden/',
   );
   
$_s['hidden']['ma1']['/hidden/']=array('master');
   
$_s['hidden']['news']['/news/2017/']=array('master','user');

Данная запись означает, что мы учредили новую Закрытую Зону.

  • Её внутреннее имя news
  • Её адрес в браузере http://xxx.xx/news/2017/
  • А путь в файловой структуре сервера ./data/content/news/2017/
  • У Закрытой Зоны news два Администратора: master и user

Закрытая Зона прямо в корне. Можно?

Да, можно.
Путь до папки вместо '/news/2017/' следует писать как '/'

2b) Количество запоминаемых айпишников пользователя.

Строчка с записью

      'ip_numder' => 5,          # Разных IP-адресов для одного PIN.

означает, что каждому пользователю разрешено заходить в Закрытую Зону с пяти (или сколько тут указано) различных IP-адресов. При этом любой новый IP-адрес пользователю придётся подтверждать с e-mail, указываемого при активации PIN-кода.

Это не запрещает заходить в Закрытую Зону более, чем с 5 (или сколько указано) разных айпишников. Просто Закрытая Зона помнит только о пяти (в данном случае) самых последних, а давно не используемые забудет. С последних пяти разных айпишников вход в аккаунт будет только по PIN-коду, а с каких-то других - ещё и с верификацией пользователя через его e-mail.

Такой подход призван не напрягать пользователя понапрасну слишком строгим фейс-контролем. Но и не позволит ходить в аккаунт толпой по одному PIN-коду.

3) Проконтролируйте CSS файл.

Файл стилей Вашего сайта должен содержать код, заключённый в файле ./css/default.css из актуального комплекта поставки между строчками комментариев:

/* All modules start */
/* All modules end */

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