Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#126 Re: Запросы на адаптацию » Адаптация шаблонов. WordPress шаблоны. » 2019-11-26 07:31:59

newbi, и сколько нынче шаблон стоит, если не секрет? Вы покупаете или продаёте?

#127 Re: Запросы плагинов » Как прикрутить reCAPTCHA » 2019-03-04 23:48:41

1 Подправил. Скачайте плагин заново.
2 Обратите внимание на пункт 6
3

lord_maloy пишет:

... Если залогиниться, то отправляется....

Зарегистрированные пользователи не проходят проверку.

UPD - проверки на установленность плагинов в системе. Плагин перезалит. Ссылка http://ngcms.ru/forum/viewtopic.php?pid=44202#p44202

#128 Re: Бесплатные шаблоны » Шаблон BestGames » 2019-02-26 07:46:38

1 В ад.панели проверить Настройка системы >> Новости >> Использовать bb-коды в новостях и комментариях
2 В браузере просмотреть код элемента, который по вашему мнению не обрабатывается как вы ожидаете.
3 В файле \templates\BestGames\css\grid.css в самом начале

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
}

То есть стили жестко переопределены (сброшены)

#129 Re: "А как сделать..." » Перенос на новые домены » 2019-02-11 23:57:20

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

A Sh пишет:

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

Лучше на новом домене произвести чистую установку и настройку NGCMS, а потом восстановить бекап БД. И далее смотреть и ликвидировать подобные ситуации http://ngcms.ru/forum/viewtopic.php?id=4086.

В NGCMS, если удаляете файл engine\conf\config.php, то cms считает, что она не установлена  и при обращении к главной странице запускает установщик.

#130 Re: "А как сделать..." » Перенос на новые домены » 2019-02-11 19:43:40

К хостеру обратитесь, некоторые из них подобные услуги бесплатно предлагают.

#131 Re: "А как сделать..." » Адрес страницы в формате rezon.ru/?magazine » 2019-02-03 14:21:36

vl пишет:

После строчки  RewriteEngine On в htaccess - открывается не /category/magazine.html, а главная страница

Странно, тогда http://ngcms.ru/forum/viewtopic.php?pid=44479#p44479

#132 Re: "А как сделать..." » Адрес страницы в формате rezon.ru/?magazine » 2019-02-03 13:57:58

Буду знать про 301 и 302. Тогда так проще

Redirect 301 /?magazine /category/magazine.html

#133 Re: "А как сделать..." » Адрес страницы в формате rezon.ru/?magazine » 2019-02-01 22:40:30

В корне сайта есть файл index.php? после этих строк

// /////////////////////////////////////////////////////////// //
// You may modify variable $systemAccessURL here (for hacks)   //
// /////////////////////////////////////////////////////////// //

вставляете

if (preg_match('#\/\?([a-z]*)$#', $_SERVER['REQUEST_URI'], $new_url)) {
    $systemAccessURL .= '/none/'.$new_url[1].'.html';
}

Будет происходить редирект 302, например, со страницы /?magazine на страницу /category/magazine.html. При этом категория определяется автоматом, важно, чтобы alt_name был такой же. Ну а на странице /category/magazine.html уже в head автоматом проставляется нужная каноническая ссылка.

Тогда не нужно ничего писать в htaccess.

#134 Re: "А как сделать..." » Адрес страницы в формате rezon.ru/?magazine » 2019-02-01 19:02:43

Реальный пример.

Был сайт, делал его абсолютно статическим, т.е. обычные html странички. Потому что посчитал, что пока инфы нет, не видел смысла садить её на cms.

И потом как это бывает, возникла необходимость публиковать выполненные работы организацией. Еще правки различные в подвале. Было решено всё таки посадить на cms. И было несколько страниц, включая прайс-лист (хорошая такая портянка). Сделал 301 редирект для всех страниц, т.к. на статичном сайте категорий не было, а на cms уже были категории. ну и год в названии прайс-листа даже поменял.

Ниче нигде не просело. Как было по 10-15 человек в день на этом прайсе, так они и остались (сайт местной организации). Точную статистику ежедневно не смотрел. Что яндекс,что гугл всё нормально склеил, т.к. домен не менялся, не менялись приставки https. Два года подряд на этом прайсе только год менял, сейчас в cms просто редирект по id со старого адреса на новый (но это уже другая история).

А вот дубликаты страниц и одинаковые meta описания -- это то, чего действительно стоит остерегаться. Не усложняйте с seo, лучше продумайте детально структуру вашего сайта. А то не понятно, то ли категория, то ли посадочная страница. Тогда возможно появятся быстрые ссылки в поисковой выдаче яндекса.

Если есть какие-то ссылки свежие по этой тематике, то поделитесь, пожалуйста.

#135 Re: "А как сделать..." » Адрес страницы в формате rezon.ru/?magazine » 2019-02-01 08:19:00

Тоже не совсем понимаю, для чего нужно сохранять старые адреса,если фактически по новым будут находиться страницы. Вы нам объясните. Просто интересно с точки зрения опыта. Может вы и правы.

#137 Re: "А как сделать..." » Адрес страницы в формате rezon.ru/?magazine » 2019-01-31 23:28:27

Да проблемы то нет, чтобы сохранить старый адрес. Но ведь это дубли контента. Как потом с этим бороться?

#138 Re: "А как сделать..." » Адрес страницы в формате rezon.ru/?magazine » 2019-01-31 22:53:16

Потому что urlhandler в NG cms ищет совпадения по регулярным выражениям в адресе (ссылке), предварительно отсекая в этой строке всё, что находится после знака вопроса, включая этот знак вопроса. То что urlhandler отсекает, если правильно помню, он передаёт в качестве параметра уже непосредственно плагинам, либо обработчикам статики, новостей и т.д. Если отсечь визуально, то и получается, что от адреса остается только главная страница.

Слово static, кстати, поэтому не с проста там. Ну и окончания там, на подобии .html.

А почему не получается ч/з htaccess? что в браузере отображается?

Решил посмотреть ближе ваш сайт - так у вас все страницы сделаны по такому принципу со знаком вопроса. А также meta description и keywords одинаковые причем на всех страницах. Интересно как поисковые роботы отличают эти страницы.

#139 Re: "А как сделать..." » Адрес страницы в формате rezon.ru/?magazine » 2019-01-31 14:28:46

Так будет правильнее. Сразу после строки RewriteEngine On

RewriteCond %{QUERY_STRING} ^alopecia$ [NC]
RewriteRule (.*) /lechenie/lechenie-alopecii.html? [R=301,L]

Если редирект 301 (с сохранением ссылочной массы) не устраивает, то копайте код. Больше добавить/посоветовать/рекомендовать нечего.

#140 Re: "А как сделать..." » Адрес страницы в формате rezon.ru/?magazine » 2019-01-31 13:29:47

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

#141 Re: "А как сделать..." » Адрес страницы в формате rezon.ru/?magazine » 2019-01-31 00:56:22

Если страниц несколько, то правильнее в htaccess все это дело прописать

RewriteCond %{QUERY_STRING} ^magazine=10$ [NC]
RewriteRule (.*) /products/nazvanie-tovara.html? [R=301,L]

#142 Страницы плагинов » x_filter - фильтр записей » 2019-01-28 05:30:39

rusiq
Ответов: 24

Страница плагина: https://github.com/russsiq/ng-x_filter

Версия плагина 0.3.0 включает критические обновления

В текущей версии плагина 0.4.0 реализованы "ползунки": возможность выбора в интервале значений для доп. полей (от и до).

Такие поля должны быть созданы с опцией Тип поля в БД: int - только цифры

[hr /]
preview.png
[hr /]

## Фильтр записей для NG CMS

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

Плагин поддерживает дополнительные поля типа **Текстовый** (`input`) и **Выбор значения** (`select`).

Для полей типа `input` создается выборка (дополнительный SQL-запрос) всех возможных значений и отображается в виде выпадающего списка. Данный запрос можно кешировать, установив время в настройках плагина.

### Подготовка к подключению

Перед включением плагина `x_filter`:

1. Установите и включите плагин `xfields`.
2. Создайте необходимые дополнительные поля.
3. При создании дополнительных полей выбирайте опцию:
    - *Режим сохранения данных:* **Персональное поле в БД**.

### Подключение

1. Скачайте архив с плагином и распакуйте содержимое в папку *\engine\plugins\x_filter* вашей CMS.
2. Установите и включите плагин в панели управления.

Для отображения формы фильтра на сайте разместите переменную `{{ x_filter_form }}` в шаблоне **main.tpl**, например в боковой панели:

```html
<aside id="sidebar">
{% if pluginIsActive('x_filter') %}
    <div class="block">
        {{ x_filter_form }}
    </div>
{% endif %}
</aside>
```

Для отображения виджета на сайте используйте функцию вызова `{{ callPlugin('x_filter.widget', {...}) }}` в шаблоне **main.tpl**, например в боковой панели:

```html
<aside id="sidebar">
{% if pluginIsActive('x_filter') %}
    <div class="block">
    {{ callPlugin('x_filter.widget', {
        'page': 1,
        'showNumber': 8,
        'order': 'id_desc',
        'search': 'Какой-нибудь поисковый запрос',
        'catid': 6,
        'skipcat': '2,4',
        'x_price': 179000,
        'x_color': 'красный',
        'cache': true,
        'cacheExpire': 60,
        'template': 'default',
        'extractEmbeddedItems': true
    }) }}
    </div>
{% endif %}
</aside>
```

### Доступные переменные в шаблонах

#### Шаблон плагина `filter_form.tpl`

- `{{ plugin_link }}` - ссылка на главную страницу плагина
- `{{ catid }}` - `id` текущей категории
- `{{ search }}` - поисковое слово, если было заполнено пользователем
- `{{ catlist }}` - выпадающий список категорий сайта
- `{{ order }}` - порядок сортировки результатов фильтрации
- `{{ x_имя_доп_поля }}` - выводит выпадающий список существующих значений дополнительного поля текущей категории

#### Шаблон сайта `news.table.tpl`

- `{{ count }}` - количество отфильтрованных записей
- `{{ data }}` - массив отфильтрованных записей
- `{{ pages }}` - информация о страницах:
    - `{{ pages.current }}` - номер текущей страницы
    - `{{ pages.total }}` - количество страниц
- `{{ pagination }}` - HTML-код постраничной навигации

Примерная структура шаблона `news.table.tpl` с выводом количества отфильтрованных новостей:

```html
{% if (pluginIsActive('x_filter') and isHandler('x_filter')) %}
    <h2>{{ lang['x_filter:page_title'] }} <small class="float-right text-muted">{{ count }}</small></h2>
    <hr>
{% endif %}

{% for entry in data %}
    {{ entry }}
{% else %}
    <div class="alert alert-info">{{ lang['msgi_no_news'] }}</div>
{% endfor %}

{{ pagination }}
```

#### Шаблон виджета `widget.tpl`

- `{{ count }}` - количество отфильтрованных записей
- `{{ entries }}` - массив отфильтрованных записей

Примерная структура шаблона `widget.tpl` с выводом количества отфильтрованных новостей:

```html
{% for entry in entries %}
    {{ entry }}
{% endfor %}
```

#### Шаблон виджета `entries.tpl`

- `{{ count }}` - количество отфильтрованных записей
- `{{ entries }}` - массив отфильтрованных записей

Примерная структура шаблона `entries.tpl` с извлеченным изображением:

```html
<article>
    <a href="{{ news.url.full }}">{{ news.title|truncateHTML(70,'...') }}</a>
    <span>{{ news.author.name }}, {{ news.categories.masterText }}</span>
    <span>{{ p.xfields.price.value }}</span>
    <div class="article-img" style="overflow: hidden;">
        {% if (news.embed.imgCount > 0) %}
            <img src="{{ news.embed.images[0] }}" width="315" height="161"/>
        {% else %}
            <img src="{{ tpl_url }}/img/img-none.png" width="315" height="161"/>
        {% endif %}
    </div>
</article>
```

### Дополнительно можно настроить:

- категории, которые следует скрывать из выпадающего списка категорий, формируемом переменной `{{ catlist }}`
- возможность выбора из всех категорий (в списке категорий будет установленное по умолчанию значение "- все -")
- порядок вывода новостей и их количество на странице
- расположение шаблона (шаблон сайта / шаблон плагина)
- опциональное встраивание на страницу файла CSS из шаблона
- опциональное встраивание на страницу файла JavaScript из шаблона
- возможность задания страницам фильтра канонической ссылки
- возможность запрета индексации страниц фильтра поисковыми роботами

### Лицензия

`ng-x_filter` - программное обеспечение с открытым исходным кодом, распространяющееся по лицензии [MIT](LICENSE).

#145 Re: Вопросы функционирования системы в целом » Что это: return "phphighlight('" . $match[0] . "')"; ? » 2019-01-20 02:21:46

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

$content = preg_replace_callback(
	"/<code>(.*?)<\/code>/s",
	'phphighlight',
	$content
);

Но тогда функция phphighlight в файле engine\includes\inc\functions.inc.php выглядела бы не так

function phphighlight($content = '') {

	$f = array('<br>', '<br />', '<p>', '<', '>', '&', '|', '"', '$', '\', ''', ' ', '\"');
	$r = array("\n", "\n", "\n", '<', '>', '&', '\|', '"', '$', '', '\'', '', '"');
	$content = str_replace($f, $r, $content);
	$content = highlight_string($content, true);

	return $content;
}

Атак

function phphighlight(array $match) {
	$f = array('<br>', '<br />', '<p>', '<', '>', '&', '|', '"', '$', '\', ''', ' ', '\"');
	$r = array("\n", "\n", "\n", '<', '>', '&', '\|', '"', '$', '', '\'', '', '"');
	$content = str_replace($f, $r, $match[1]);
	$content = highlight_string($content, true);

	return $content;
}

А $match[1] используем, потому что функция highlight_string, выполняя `подсветку кода` оборачивает его в тег code. Но ведь нам не нужно вложеный тег code в уже существующем.

#147 Re: Вопросы функционирования системы в целом » Что это: return "phphighlight('" . $match[0] . "')"; ? » 2019-01-19 17:40:43

Ну так растите дальше и выше

1 return "phphighlight('" . $match[0] . "')"; - возвращает строку с найденной подстрокой, кавычки тут лишние, т.к. нам нужен возврат функции...
$match[0]

<code>body {
background-color: #fff;
margin: 0;
padding: 0;
height: auto !important;
min-height: 100%;
font: normal 11px/14px Tahoma, sans-serif;
color: #666;
}</code>

$match[1]

body {
background-color: #fff;
margin: 0;
padding: 0;
height: auto !important;
min-height: 100%;
font: normal 11px/14px Tahoma, sans-serif;
color: #666;
}

Отключаете автоформатирование, используете плагин для TinyMCE и ничего не случится с безопасностью. Т.к. плагин переводит содержимое pre code в html сущности.

#148 Re: Вопросы функционирования системы в целом » Что это: return "phphighlight('" . $match[0] . "')"; ? » 2019-01-19 16:20:58

Стока суеты, когда уже всё написано было в этом топике http://ngcms.ru/forum/viewtopic.php?pid=44450#p44450

#149 Re: Вопросы функционирования системы в целом » Что это: return "phphighlight('" . $match[0] . "')"; ? » 2019-01-19 15:05:04

Читайте внимательно, специально жирным выделю
Либо при создании/редактировании новости ставьте галочку Отключить автоформатирование

#150 Re: Тестирование версий » NGCMG версии 0.9.5 [Release Candidate 2][GIT 20170215] » 2019-01-19 07:36:11

7 Неверно оборачивает теги <code> при включенной опции Разрешить использовать HTML теги создания/редактирования новости. Файл engine\includes\classes\parse.class.php строки 475-482 заменить на строки

$content = preg_replace_callback(
	"/<code>(.*?)<\/code>/s",
	function ($match) {
		return phphighlight($match[1]);
	},
	$content
);

Подвал раздела

Работает на FluxBB