Instant

Введение

Каждый виджет состоит из нескольких файлов. Основная логика находится в файле с классом виджета. Текстовые сообщения размещаются в языковом файле. Внешний вид определяется в шаблоне виджета.

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

Тип Описание Примеры
Общий Самостоятельный виджет, логически не связанный ни с одним из компонентов, поставляется отдельно Меню, Текстовый блок, Прогноз погоды
Виджет компонента Относится к какому-либо компоненту, использует его модель для получения данных, поставляется вместе с этим компонентом Список контента, Список комментариев, Форма входа на сайт

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

Также тип влияет на то, в какой вкладке палитры данный виджет будет показан в админке:

Общие виджеты выводятся в одноимённой вкладке, а виджеты компонентов – во вкладках с названием связанного компонента.

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

Вкладка «Почта»

Почтовый транспорт

Определяет какой способ будет использовать InstantCMS для отправки писем пользователям

Транспорт Описание
PHP mail() Самый доступный, но примитивный способ. Использует стандартную функцию в PHP. Работает практически везде, но имеет ограничения вроде невозможности использования вложений в письмах. Рекомендуется использовать если не доступен SMTP.
SMTP Рекомендуемый способ. Использует указанный SMTP-сервер для отправки писем.
Sendmail Использует программу . Работает только на Linux-серверах. Доступен не везде. Рекомендуется только как запасной вариант.

Адрес отправителя

Указывается в графе «От кого» при отправке писем пользователям. Может быть указан несуществующий адрес (на свой страх и риск).

Привязка виджетов к страницам

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

В Панели управления отображается список доступных страниц (слева), макет текущего шаблона сайта (в центре) и список доступных виджетов (справа):

Привязка виджетов происходит по следующей схеме:

  1. Выбирается страница (или группа страниц) в дереве слева;
  2. Выбирается нужный виджет в списке слева;
  3. Выбранный виджет перетаскивается мышью на нужное место в макете сайта.

После этого открывается окно настройки виджета.

Выплаты типа Автомат

Автоматический формат выплат не очень распространён среди HYIP-проектов, но очень ценится инвесторами, особенно теми, кто предпочитает проекты с высокой доходностью. Среди преимуществ главное место отведено удобству и скорости вывода средств.


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

Впрочем, столь же явны и недостатки автоматического способа выплат. Если возникают даже малейшие сбои в работе HYIP, она оказывается на грани краха. Мошенники вовсю используют специальные скрипты для вывода из строя автоматической системы выплат, за чем следует обнуление всех счетов на проекте в пользу злоумышленника. С этим связана и ещё одна проблема — в сообщество инвесторов достаточно внести небольшую паническую искорку, «обнажить» малейшее отклонение от нормы, и большинство из них тут же выведет свои деньги из системы.

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


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

Преимущества InstantCMS

В ходе детального обзора, у движка сайта InstantCMS выявлено множество положительных сторон. Именно они привлекают большинство российских разработчиков. Среди основных плюсов можно отметить:

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

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

Вкладка «Интерфейс»

Тема оформления по-умолчанию

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

Некоторые темы могут иметь дополнительные собственные настройки. При выборе такой темы рядом со списком появляется ссылка «Настройки темы».

Тема оформления для панели управления

В этой опции задается шаблон для админ-панели. Если опция стоит в положении «По-умолчанию», то используется основная тема.

Тема оформления для мобильных устройств

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

Тема оформления для планшетов

В этой опции, при необходимости, задается шаблон для планшетов. Если опция стоит в положении «По-умолчанию», то используется основная тема.

HTML редактор по-умолчанию

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

Показывать глубиномер

Разрешает или запрещает показ глубиномера (навигационная цепочка, дублирующее меню, «хлебные крошки», англ. Breadcrumbs) на сайте.

Сжимать HTML

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

Объединять CSS-файлы

Включение этой опции объединит в один все подключаемые CSS файлы на странице, закеширует результирующий файл по пути /cache/static/css/ и подключит его

Обратите внимание! В CMS не все CSS файлы подлежат такому кешированию.

Объединять JS-файлы

Включение этой опции объединит в один все подключаемые JavaScript файлы на странице, закеширует результирующий файл по пути /cache/static/js/ и подключит его

Обратите внимание! В CMS не все JavaScript файлы подлежат такому кешированию.

Абстрактный счётчик

В опции задаётся число, которое, если задано, будет добавляться как параметр при подключении js и css файлов. Например, вот так <script src=»/templates/default/js/jquery.js?80″ ></script>. Например, вы изменили у себя на сайте css или js файл и хотите, чтобы гарантированно у посетителей, которые ранее посещали ваш сайт, была актуальная его версия.

Безопасность движка

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

  1. File Scanner – плагин регулярно отслеживает изменения в системных файлах и папках. Если файл был изменен или удален, администратор сразу об этом узнает. В настройках можно исключить файлы, которые не нужно сканировать. Проверка запускается в ручном режиме или по расписанию.
  2. qCaptcha и reCAPTCHA – это проверочный код, который предлагается в формате вопрос-ответ. В качестве ответов указываются цифры, слова или выбирается графическое изображение. Все зависит от настроек. Расширение позволяет избежать автоматических регистраций, комментариев и так далее.
  3. Проверка номера телефона при регистрации – уникальное решение для идентификации новых пользователей. В большинстве случаев используется проверка по СМС, но за сообщения приходится платить. Данный плагин предлагает бесплатную альтернативу. При регистрации, пользователю приходит номер телефона, на который нужно позвонить. Звонок является бесплатным, как для администратора, так и для нового пользователя.

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

Неявные настройки

Подобные опции редактируются напрямую в файле конфигурации сайта

Внимание! Если у вас мало опыта, то не стоит редактировать этот файл самостоятельно.. Файл настроек сайта содержит обычный ассоциативный массив PHP в формате .

Файл настроек сайта содержит обычный ассоциативный массив PHP в формате .

  • root — относительный путь от корня домена. Если движок установлен в поддиректорию, то содержит имя директории, иначе знак слэша;
  • host — хост сайта;
  • upload_root — путь к директории загрузки файлов;
  • upload_host — путь к директории загрузки файлов вместе с именем хоста;
  • cache_root — относительный путь к директории кэша;
  • db_host, db_base, db_user, db_pass — реквизиты соединения с базой данных, db_prefix — префикс таблиц базы данных;
  • db_engine — движок таблиц базы данных;
  • ct_autoload — название контроллера главной страницы CMS;
  • ct_default — название контроллера по умолчанию, если имя контроллера из первой части пути не определено. По умолчанию content;
  • controllers_without_widgets — массив названий контроллеров, на страницах которых формировать виджеты не нужно. По умолчанию в массив входит только контроллер admin (Панель управления).

Назад к разделу Настройки сайта

Файл install.sql

В этом файле описываются все необходимые sql запросы, которые наполняют какие-либо таблицы или создают новые, необходимые вашему дополнению. В sql запросах префикс таблиц должен быть заменен на {#}. Например, если оригинальный запрос имеет такой вид:

INSERT INTO `cms_controllers` (`title`, `name`, `is_enabled`, `options`, `author`, `url`, `version`, `is_backend`) VALUES
('Микроформат Open Graph', 'opengraph', 1, '---\nenabled_ctypes:\nis_https_available: null\ndefault_image:\n', 'InstantMedia Team', 'http://www.instantmedia.ru/', '1.1.0', 1);

то в этом файле этот запрос должен выглядеть так:

INSERT INTO `{#}controllers` (`title`, `name`, `is_enabled`, `options`, `author`, `url`, `version`, `is_backend`) VALUES
('Микроформат Open Graph', 'opengraph', 1, '---\nenabled_ctypes:\nis_https_available: null\ndefault_image:\n', 'InstantMedia Team', 'http://www.instantmedia.ru/', '1.1.0', 1);

Обратите внимание, что в версиях InstantCMS выше 2.3.0 в этом файле нет необходимости писать sql запросы, добавляющие записи в таблицы cms_widgets и cms_controllers, достаточно указать в файле манифеста тип дополнения. При установке дополнения движок сам добавит нужные записи в эти таблицы на основе данных в файле манифеста и далее автоматически будет следить за версионностью при установке пакетов обновлений.

Ручной способ выплат

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

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


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

Отсюда еще одно понятие, такое как Пендинг (pending) — это время между заказом своей выплаты до того времени, когда деньги окажутся у нас на кошельке.

Разработчикам методов

Разработка методов API для ваших компонентов достаточно проста. Весь процесс разработки метода сводится к созданию специального экшена или хука, на ваш выбор.

Метод как экшен

Компонент InstantCMS API поддерживает только контроллера. Например, мы хотим создать экшен для метода API , который будет отдавать нам список неких записей. Механизм формирования названия экшена такой:

api_youcontroller_list_items

Файл экшена будет называться соответственно:

api_youcontroller_list_items.php

И располагаться по пути .

Далее создаётся код экшена стандартным способом, но с некоторыми обязательными свойствами:

api_youcontroller_list_items.php
class actionYoucontrollerApiYoucontrollerListItems extends cmsAction {
 
    /**
     * Блокировка прямого вызова экшена
     * обязательное свойство
     * @var boolean
     */
    public $lock_explicit_call = true;
    /**
     * Результат запроса
     * обязательное свойство
     * @var array
     */
    public $result;
    /**
     * Массив названий ячеек
     * которые нужно удалить из результирующего массива
     * необязательное свойство
     * @var array
     */
    public $unset_fields;
    /**
     * Флаг, обязующий проверять параметр sig запроса
     * sig привязан к домену сайта и к ip адресу посетителя
     * @var boolean
     */
    public $check_sig = false;
    /**
     * Флаг, обязующий проверять авторизацию пользователя
     * @var boolean
     */
    public $auth_required = false;
    /**
     * Флаг, обязующий проверять авторизацию пользователя
     * И принадлежность пользователя к административному доступу
     * @var boolean
     */
    public $admin_required = false;
    /**
     * Возможные параметры запроса
     * с правилами валидации
     * Если запрос имеет параметры, необходимо описать их здесь
     * Правила валидации параметров задаются по аналогии с полями форм
     * @var array
     */
    public $request_params = array();
    /**
     * Необязательный метод проверки запроса
     * В нём выполняются некий действия по валидации
     * возвращает либо false в случае успешной проверки
     * либо массив данных ошибки 
     */
    public function validateApiRequest() { return false; }
    /**
     * Основной метод работы экшена
     * Его задача заполнить свойство $this->result
     */
    public function run(){
        $this->result = array('items' => array());
    }
 
}

Метод как хук

Отличие это варианта лишь в расположении файла и именовании класса. Учитывая пример выше, в этом случае файл хука должен быть расположен по пути:

/system/controllers/youcontroller/hooks/api_youcontroller_list_items.php

А класс называться:

class onYoucontrollerApiYoucontrollerListItems extends cmsAction {}

Назад к разделу Компоненты

Что такое виджеты?

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

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

Динамическая схема шаблона может не поддерживаться выбранным вами . Из комплекта InstantCMS динамическую схему поддерживает только шаблон admincoreui.

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

  • меню,
  • простого текста,
  • списков контента,
  • вспомогательной информации.

На скриншоте ниже виджеты отмечены красными рамками:

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

Шаблон для расстановки виджетов можно переключить на этой же странице в падающем меню.

Виджеты разделяются на стандартные из комплекта InstantCMS и сторонние, от других разработчиков. Сторонние виджеты можно удалить из CMS нажав в списке виджетов справа на иконку удаления.

Вкладка «Безопасность»

В этой вкладке перечислены опции, влияющие на безопасность.

Разрешенные ip адреса для доступа в админку

В этом поле вы можете указать ip адреса, каждый с новой строки, которым будет разрешен доступ в админку. Это означает, что при заходе с других ip адресов движок будет отдавать 404 ошибку. Можно указывать как полные ip адреса, так и подсети, например так: 192.168.1.* Если по какой-то причине у вас сменился ip адрес и вы не можете попасть в админку, вам нужно любым способом (например по ftp) отредактировать файл /system/config/config.php, где строку:

'allow_ips' => 'тут будут ваши ip',

изменить вот так:

'allow_ips' => '',

и сохранить изменения.

Контроль изменения IP адреса при входе в админку

Этой опцией регулируется защита от спуфинга (изменению ip адреса посетителя) при заходе в панель управления. Доступны опции:

  • Нет. Защита выключена.
  • По изменению подсети. В этом случае сеть определяется по первым трём окетам ip адреса (ipv4).
  • Строго по ip адресу. В этом случае контроль изменения идёт строго по полному соответствию ip адреса.

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

Список специальных ссылок

Ссылка Цель / Действие Класс CSS
users/{user.id} Мой профиль profile
{messages:view} Мои сообщения messages messages-counter ajax-modal
{messages:notices} Уведомления info notices-counter ajax-modal
{moderation:panel} Модерация checklist
{moderation:user_panel} Материалы пользователя на модерации onchecklist
{moderation:draft} Черновики draft
{groups:my} Мои группы (клубы) group
{content:add} Создать контент add
{content:name} Категории контента
{content:trash} Корзина материалов basket
{content:private_list} Список приватных записей lock
comments Список комментариев
{admin:menu} Админка cpanel
users Пользователи group
{users:profile} Ссылка на профиль текущего авторизованного пользователя
{users:settings} Ссылка на редактирование профиля текущего авторизованного пользователя
{users:subscribers} Ссылка на список подписчиков текущего авторизованного пользователя
{users:subscriptions} Ссылка на список подписок текущего авторизованного пользователя
auth/login Войти ajax-modal key
auth/register Регистрация user_add
auth/logout Выход logout

Настройки виджета

При добавлении виджета на страницу в админке появляется всплывающее окно с формой его настройки. В этом окне содержится две вкладки – «Общие» и «Доступ». Виджет может добавить дополнительные вкладки с полями для установки собственных опций.

Для этого виджет должен иметь файл с описанием формы.

Файл формы называется и размещается в одной папке с основным файлом виджета (). Внутри должна быть описана форма, содержащая поля для установки опций виджета. Название класса формы зависит от типа виджета.

Для общих виджетов:

Например –

Для виджета компонента:

Например –

Внутри формы описываются один или несколько наборов полей (fieldsets). Каждый набор обязательно должен иметь заголовок, т.к. каждый набор превращается в отдельную вкладку в окне настройки виджета.

Названия полей должны указываться так: , например . Префикс обязателен!

Пример класса формы настроек виджета «Список комментариев», которую вы можете видеть на скриншоте выше:

class formWidgetCommentsListOptions extends cmsForm {
    public function init() {
        return array(
            array(
                'type' => 'fieldset',
                'title' => LANG_OPTIONS,
                'childs' => array(
                    new fieldCheckbox('options:show_avatars', array(
                        'title' => LANG_WD_COMMENTS_LIST_SHOW_AVATARS,
                        'default' => true,
                    )),
                    new fieldCheckbox('options:show_text', array(
                        'title' => LANG_WD_COMMENTS_LIST_SHOW_TEXT,
                        'default' => false,
                    )),
                    new fieldNumber('options:limit', array(
                        'title' => LANG_LIST_LIMIT,
                        'default' => 10,
                        'rules' => array(
                            array('required')
                        )
                    )),
                )
            ),
        );
    }
}

Варианты сайтов на InstantCMS

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

  1. Информационный портал – крупные проекты с большим количеством обзоров, новостей и других информационных материалов. Тематика таких ресурсов может быть любой. Структура состоит из многочисленных пунктов меню и каталогов с публикациями.
  2. Социальная сеть – страницы, предназначенные для общения, добавления профилей в друзья и обмена информацией. Один из самых сложных ресурсов, объединяющих в себе мощный функционал. Для реализации подобных проектов предусмотрен ряд модулей. Среди них «EmojiOne», «Уведомления о событиях друзей» и так далее.
  3. Форум – представляет собой интернет ресурс, с множеством тем для обсуждения, которые создают зарегистрированные посетители. Сообщения выводятся в виде комментариев под основной записью. Форум можно модернизировать при помощи плагинов отвечающих за структуру профиля, расширение количества смайлов и внешний вид комментариев.
  4. Визитка – один из самых простых ресурсов, который состоит из одной страницы. На ней представлено краткое описание компании, ее услуг и контактные данные. Такой ресурс может создать даже пользователь, не имеющий специальных навыков.
  5. Магазин – для торговли различными товарами InstantCMS предлагает множество инструментов. В их число входит корзина, фильтры, системы оплаты, каталоги, сравнительные характеристики, скидки и многое другое. Основными модулями для создания торговой площадки являются InstantShop и UCart.

С этим читают