NG CMS |
Обновлено: 23.08.2017 - 08:06
Универсальная платформа, позволяющая легко создавать и поддерживать профессиональные веб-сайты практически любого уровня сложности. Большинством функций CMS сможет управлять человек, обладающий элементарными навыками работы с офисными приложениями. Продвинутые пользователи с помощью документации смогут организовать интернет проект со своими уникальными возможностями.
Нажмите на картинку для увеличения
Технические требования
Next Generation CMS не требовательна к ресурсам и способна функционировать на большинстве современных российских и зарубежных хостинг-площадках.
Требования к программной конфигурации сервера таковы:
1) Операционная система Linux, FreeBSD, Windows
2) Apache 1.3 и выше
3) PHP 4.3 и выше
4) MySQL 4 и выше
Дополнительные требования, необходимые для успешной работы некоторых функций:
1) Apache mod_rewrite
2) GD 2.x библиотека
3) Модуль XML для PHP
История развития
В октябре 2008, один из разработчиков 2z-project CMS решил основать новую ветку проекта. С этого момента (6 октября 2008 года) Next Generation CMS ответвился от 2z-project CMS и стал отдельной, самостоятельной CMS.
11 ноября 2008 вышел первый релиз NGCMS (0.9.0 Release).
Функциональные возможности и модули
Система управления сайтами Next Generation CMS позволяет создавать информационные системы различного уровня - от простых сайтов с минимальным контентом до сложных веб-систем, порталов, торговых площадок и СМИ, позволяет реализовать Интернет-проекты различных направлений и любого уровня сложности.
Сайт на основе системы Next Generation CMS позволяет использовать любые графические и анимационные элементы, дизайнерские решения любого уровня сложности.
За последний год для NGCMS было написано множество новых плагинов, среди которых:
- auth_loginza :: Вход через OpenID
- who_online :: Кто онлайн
- Вывод ссылок mainlink.ru и setlinks.ru
- elka :: Условные блоки, на определенных страницах
- breadcrumbs :: «Хлебные крошки»
- pm :: Личные сообщения
- newsvotes :: Опросы в новостях
- show_comments :: Управление комментариями
- addnews :: Добавление новостей с сайта
- fgallery :: фотогалерея на файлах
- weather :: Плагин "Прогноз погоды"
- statistic :: Статистика сайта
- private_content :: Закрытый контент + статусы пользователей
- qrcode :: QRcode
- На форуме выложено около 50 шаблонов, разных тематик.
Общее количество плагинов разной направленности - 100.
Разработчики имеют возможность создавать дополнительные модули самостоятельно.
Интеграция со сторонними разработками
Next Generation CMS позволяет выполнить интеграцию с популярными форумными веб-приложениями. (vBulletin, PunBB, phpBB) Данные интеграции позволяют выполнять одновременный вход как на сайт, так и на форум. Кроме того, реализуется односторонняя, одновременная регистрация на сайте и форуме.
Сторонние разработки позволяют вывести на страницах сайта список последних сообщений с форума. (Существуют решения для Punbb, vBulletin, SMF, IP.Board, phpBB, AEF)
Быстродействие и нагрузка
На сервере Pentium D 2.8 GHz и выделенными для сайта ~100MB RAM получается нагрузка менее 10% на 50k хитов (считаемых счетчиками; реальных - 60-80k) в сутки.
Теоретически, это означает, что если выделить под сайт полностью такой сервер, то 1-1.5m (считаемых счетчиками) хитов точно будет держать.
В CMS используется продвинутая система кэширования, которая позволяет уменьшить общее количество запросов к БД, не урезая функциональных возможностей системы.
Минимальное количество запросов к БД: 4 шт.
Время генерации страницы: не более 0.1 сек.
Внешний вид, шаблонная система, usability

Интерфейс административной части сайта не перегружен лишними элементами. На большинстве страниц используется постраничная навигация, сортировка и фильтрация элементов списка. В Next Generation CMS максимально сокращено число необходимых действий для завершения типовых операций (создание/редактирование новостей, настройка CMS, настройка плагинов).

Для пользователей есть возможность обустроить интерфейс согласно своим собственным предпочтениям. Для этого используется шаблонная система, которая позволяет настроить внешний вид как страниц самого сайта, так и его административной части.
Заключение
На сегодняшний день Next Generation CMS является довольно перспективной,
бесплатной системой управления сайтами. Ее широкая функциональность и доступность позволяет, создать готовый сайт всего за несколько часов, а в дальнейшем с легкостью его обновлять и поддерживать.
Установка плагинов
Устанавливать плагины очень просто, но я заметил что эту страницу посещают по запросу "как добавлять новые плагины в next generation cms" и решил рассказать подробно как это делается.
Мы будем работать в операционной системе GNU/Linux, так как она наиболее распространённая на веб-серверах.
1. Переходим в папку плагинов NG CMS:
cd /var/www/engine/plugins (у меня сайты лежат в /var/www).
2. Скачиваем сюда выбранный плагин, например, complain:
wget https://ngcms.ru/uploads/files/components/complain_0_06.zip
3. Сделайте папку complain и разархивируйте туда плагин:
mkdir complain
cd complain
unzip complain_0_06.zip
4. Поменяйте права доступа к плагину:
chmod -R 755 complain .
5. Прочитайте справку Readme по данному плагину.
6. Вставьте плагин в нужное место на сайте:
[isplugin complain]
{plugin_название}
[/isplugin]
Теги [isplugin] [/isplugin] нужны для того чтобы строка {plugin_название} не отображалась если плагин выключен.
Решение некоторых проблем
Вывод блока только на первых страницах категорий.
Для этой цели нужно создать плагин hide_in_catzpages. Авторы плагина: https://ngcms.ru/forum/viewtopic.php?pid=36117#p36117
В /engine/plugins создать папку hide_in_catzpages
В ней файл hide_in_catzpages.php с содержимым:
<?php
if (!defined('NGCMS')) die ('HAL');
add_act('index', 'hide_in_catzpages');
function hide_in_catzpages()
{
global $template, $CurrentHandler;
if( ($CurrentHandler['handlerName'] == 'by.category') && isset($CurrentHandler['params']['page']) ) {
$template['regx']["'\[hide_in_catzpages\](.*?)\[/hide_in_catzpages\]'si"] = '';
} else {
$template['regx']["'\[hide_in_catzpages\](.*?)\[/hide_in_catzpages\]'si"] = '\\1';
}
//var_dump ($CurrentHandler);
}
и файл version:
ID: hide_in_catzpages
Name: Скрыть текст внутри постранички в категориях
Version: 1.0
Acts: index
File: hide_in_catzpages.php
Type: plugin
Description:
Author:
Author_URI:
Title:
Information:
Preinstall: default_no
Включаем плагин в админке и вставляем его в шаблон news.table.tpl:
[hide_in_catzpages]
{{ category.info }} (описание категории)
[/hide_in_catzpages].
Пример news.table.tpl:
{% if (handler == 'by.category') %}
<div class="c_line">
<div class="c_line_c">
<span>Жанр: </span>
{{ category.name }}
</div>
</div><!--/cline-->
<br>
{% if category.icon.purl %}<img src="{{ category.icon.purl }}"/><br/>{% endif %}
{% endif %}
{% for entry in data %}
{{ entry }}
{% else %}
{{ engineMSG('commin', lang['msgi_no_news']) }}
{% endfor %}
{{ pagination }}
Нужно закрыть все BBcode-ссылки тегом noindex:
В файле /engine/includes/classes/parse.class.php
заменить
array_push($rdest, "<a ".(implode(" ", $outkeys)).">".$alt.'</a>');
на
array_push($rdest, "<noindex><a ".(implode(" ", $outkeys))." rel=\"nofollow\">".$alt.'</a></noindex>');
Восстановление пароля администратора
update ng_users set pass=md5(md5('pass')) where id = 1
Если не заходит, нужно удалить кэш браузера.
Проблемы с кодировкой, кракозябры в админпанели
В начало .htaccess добавить:
DefaultLanguage ru
AddDefaultCharset windows-1251
php_value default_charset "cp1251"
DirectoryIndex index.php
Редирект (redirect) для внешних ссылок
В файле /engine/includes/classes/parse.class.php
находим строку
$outkeys [] = 'src="'.$urlREF.'"';заменяем на
$chek_url = parse_url($keys['href']);В корне сайта создаем папку go и два файла:
if ($chek_url['host'] != 'ваш_сайт.домён')
$outkeys [] = 'href="https://ваш_сайт/go/?'.((!$keys['href'])?$alt:$keys['href']).'"';
else
$outkeys [] = 'href="'.((!$keys['href'])?$alt:$keys['href']).'"';
.htaccess
DirectoryIndex : index.php
RewriteEngine Off
index.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Подождите.</title>
<meta http-equiv="refresh" content="6; url=<?=$_SERVER['QUERY_STRING']?>">
<script type="text/javascript">
//<![CDATA[
// Fix Mozilla bug: 209020
if ( navigator.product == 'Gecko' )
{
navstring = navigator.userAgent.toLowerCase();
geckonum = navstring.replace( /.*gecko\/(\d+)/, "$1" );
setTimeout("moz_redirect()",1500);
}
function moz_redirect()
{
var url_bit = "<?=$_SERVER['QUERY_STRING']?>";
window.location = url_bit.replace( new RegExp( "&", "g" ) , '&' );
}
//>
</script>
</head><body>
<div id="redirectwrap"><center>
<noindex>
<h4><b>наш нубо сайт</b></h4>
<p>Все что дальше этой страницы - не наш сайт, ответственности за файлы мы не несем</p>
<p>Вы перешли по внешней ссылке, возможно вы скачиваете файл. Подождите 5 секунды или : </p>
<p class="redirectfoot">(<a href="<?=$_SERVER['QUERY_STRING']?>">нажмите сюда, если не хотите ждать</a>)</p></noindex>
</center>
</div>
</body></html>
NG CMS обрезает длинные материалы
При создании длинного материала, NG CMS обрезает кусок материала, который якобы не поместился.
Чтобы исправить это, нужно войти в базы данных, таблицу ng_news > поле content и поменять значение "type" TEXT поля content на LONGTEXT:

Блоки TWIG
1. Блок только на главной
при условии что у вас на главной новости
{% if isHandler('news:main') %}
только на главной
{% endif %}
2. Блок всюду кроме главной
при условии что у вас на главной новости
{% if not isHandler('news:main') %}
всюду, кроме главной
{% endif %}
3. Блок только на страничках категорий
{% if isHandler('news:by.category') %}
на всех страничках категориий
{% endif %}
4. Блок только на страничках полных новостей
{% if isHandler('news:news') %}
на всех страничках с полными новостями
{% endif %}
5. Блок только на страничке определенной категории
Код:
{% if isCategory('some_cat') %}
Блок на страничке со списком новостей из категории some_cat
{% endif %}
6. Блок показывать всюду кроме определенной категории
Код:
{% if not isCategory('some_cat') %}
Блок не показывается на страничке со списком новостей из категории some_cat
{% endif %}
7. Блок показывать всюду кроме определенного плагина
Код:
{% if not isHandler('tags') %}
Блок показывать всюду кроме определенного плагина (tags)
{% endif %}
8. Блок на страничке определенной полной новости или полных новостей определенной категории
{% if isHandler('news:news') and handler.params.altname == 'altname_novosti' %}
блок на страничке новости с альтнеймом = altname_novosti
{% endif %}
9. Блок только на страничках поиска
{% if isHandler('search') %}
Блок только на страничках поиска
{% endif %}
10. Блок только на страничках плагина календар/архив
(как я понял, новости в опр промежуток времени)
{% if isHandler('news:by.year') %}
новости за год
{% endif %}
{% if isHandler('news:by.month') %}
новости за месяц
{% endif %}
{% if isHandler('news:by.day') %}
новости в за день
{% endif %}
{% if isHandler('news:by.year|news:by.month') %}
новости за год или за месяц
{% endif %}
{% if isHandler('news:by.year|news:by.day') %}
новости за год или за день
{% endif %}
{% if isHandler('news:by.month|news:by.day') %}
новости за месяц или за день
{% endif %}
{% if isHandler('news:by.year|news:by.month|news:by.day') %}
новости за год или за месяц или за день
{% endif %}
11. Блок только на страничках регистрации/ввода пароля и т.д.
{% if isHandler('core:login') %}
на странице входа
{% endif %}
{% if isHandler('core:registration') %}
на странице рег
{% endif %}
{% if isHandler('core:lostpassword') %}
на странице востановления пасса
{% endif %}
12. Блок только на страничке плагина тегов
Код:
{% if isHandler('tags') %}
на странице тегов
{% endif %}
13. Блок только на страничке профиля
Код:
{% if isHandler('uprofile:show') %}
только на страничке профиля
{% endif %}
{% if isHandler('uprofile:edit') %}
только на страничке редактированния профиля
{% endif %}
14. Блок только на статике
Код:
{% if isHandler('static') %}
только на статике
{% endif %}
15. Блок всюду кроме статики
Код:
{% if not isHandler('static') %}
кроме статики
{% endif %}
16. Блок только на страничке ошибки
Код:
{% if not isSet(handler) %}
На странице с ошибкой 404
{% endif %}
17. Блок на страничке иных плагинов и т.д. может что-то забыл....
Код:
{% if handler.pluginName == 'pluginname' %}
выводимый контент
{% endif %}
18. Блок только в одной категории и только на страницах этой категории
{% if isHandler('news') and handler.params.category == 'javabooks' %}
выводимый контент
{% endif %}
19. Блок везде кроме отдельной категории и страниц этой категории
{% if isHandler('news') and handler.params.category == 'javabooks' %}
выводимый контент
{% endif %}
20. Блок на страничке ПОЛНОЙ новости с главной категорией soft
{% if (news.categories.list[0]['alt'] == 'soft') %}
выводимый контент
{% endif %}
21. Блок везде кроме определённой полной новости:
{% if not isNews('pravoobladateljam') %}
страница pravoobladateljam
{% endif %}
22. Вывод блока на главной без постраничек:
{% if isHandler('news:main') and (handler.params.page < 2) %}
только на главной без её постраничек
{% endif %}
Спасибо, Neo !
------------------------
ТРИО теплый пол отзыв
Заработок на сокращении ссылок
Earnings on reducing links
Код PHP на HTML сайты
Категория: Динамический контент, CMS/CMF
Лицензия:
GPL2
Размер архива исходников: 1112 Kb
Дата последних изменений в проекте: 2012
Язык программирования:
PHP, JavaScript
Сайт проекта
Скачать NG CMS 0.9.3
Комментарии |