Подключение Почтовой Наны.

Подключение Почтовой Наны к движку.

Дистрибутив предусматривает заселение Почтовой Наны в папку postman

data
content
postman

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

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

В файле настроек перед последней записью (массив $_s['modules']) необходимо оговорить, где именно живёт Почтовая Нана, кого из Администраторов она слушается, и где ей следует искать графические файлы и прочие аттачи для оформления и наполнения писем служб рассылок.

В виде кода это выглядит предельно лаконично.

   $_s['postman']=array(
      
'/postman/' => array(
         
'admins' => array('master'),  # Список админов, кого слушается Почтовая Нана.
         
'attach' => './i/postman/',   # Путь до вложений (картинок) от корня Наны.
       # 'mail5'  => 'user@site.nu',
      
),
      
'base'      => '/postman/',      # Имя папки Почтовой Наны в папке модулей.
   
);

Тут всего два элемента:

  1. Массив /postman/ самим своим именем указывает на папку, в которую заселена Почтовая Нана. С точки зрения пользователя это будет папка относительно корня сайта, с точки зрения Администратора - фолдер относительно папки ./data/content в файловой структуре сервера. Вот в этом документе сказано, почему именно так.

    В свою очередь, данный массив включает два обязательных элемента:

    1. Элемент admins перечисляет Администраторов, которые вообще смогут увидеть админку Почтовой Наны, и войти в неё. Администратор может быть один (в данном случае 'master') или несколько. Их идентификаторы заключаются в кавычки и перечисляются через запятую.

      Список идентификаторов Администраторов задаётся в этом же файле, чуть выше. Мануалом это оговорено в пункте 1.

    2. Элемент attach оговаривает место расположения графики к письмам. А также аттачей (всевозможные ZIP и прочие PDF).

    3. Элемент mail5 не является обязательным, и потому в примере кода закомментирован слева чебурашкой. Это не что иное, как пятый аргумент нативной функции PHP mail(); на тот случай, если без него все Ваши письма попадают в спам, и хостер утверждает, что без этого пятого аргумента ничего не выйдет.

      Обратите внимание, что e-mail адрес (в примере это user@site.nu) может быть только в Вашем домене. Так, как это рассказано в опусе про современную процедуру отправки писем с сайта.

  2. Элемент base указывает на папку Почтовой Наны в фолдере модулей.

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

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

Пусть для определённости структура сайта изнутри будет такой:

data
content
pokemon
dispatch-one (Первая рассылка)
pepetun
dispatch-two (Вторая рассылка)
imq (папка графики к рассылкам)
pokemon
pepetun

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

Скопировать содержимое дистрибутива из ./data/content/postman/
в ./data/content/pokemon/dispatch-one/
и ./data/content/pepetun/dispatch-two/

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

   $_s['postman']=array(
      
'/pokemon/dispatch-one/' => array(
         
'admins' => array('master','ivanov'),
         
'attach' => './img/pokemon/',
      ),
      
'/pepetun/dispatch-two/' => array(
         
'admins' => array('master','petrov'),
         
'attach' => './img/pepetun/',
      ),
      
'base'      => '/postman/',
   );

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

По данной схеме возможно размещение в Нане скольки угодно инсталляций Почтовой Наны. Даже с возможностью вкладывания их друг в друга.

2) Дополнение файла стилей.

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

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

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

3) Обустройство папки Почтовой Наны.

Это два выделенных красным цветом файла:

data
content
postman
_menu.php
index.php

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

Документы морды раздела и его служб следует искать в недрах админки.
Тут их нет.

4) Ссылка на админку Почтовой Наны с админского меню.

Совершенно стандартная процедура, добавленная строка помечена комментарием.

<?php /* Выше этой строки в файле ничего не должно быть */

   
if (is_admin() and isset($_s['loc']['fold'])) {
      
get_menu_html_code(
         
$_s['des'],
         array(
            
'Админу:' => array(
               
$_s['loc']['fold'].'connect'.      $_s['ext'] => 'Посмотреть почту',
 
/*добавка*/   $_s['loc']['base'].'postman/admin'.$_s['ext'] => 'Почтовая Нана',
               
$_s['loc']['fold'].'token'.        $_s['ext'] => 'Создать токены',
               
$_s['loc']['fold'].'login'.        $_s['ext'] => 'Выйти из админки',
            ),
         )
      );
   }
 
/* Ниже этой строки в файле ничего не должно быть. */ ?>

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

Уполномоченный Администратор админку Почтовой Наны увидит. Тот, которому настройками запрещено её администрировать, админку не увидит. Как будто там вообще ничего нет.