Вы не зашли.
1 Подправил. Скачайте плагин заново.
2 Обратите внимание на пункт 6
3
... Если залогиниться, то отправляется....
Зарегистрированные пользователи не проходят проверку.
UPD - проверки на установленность плагинов в системе. Плагин перезалит. Ссылка http://ngcms.ru/forum/viewtopic.php?pid=44202#p44202
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;
}
То есть стили жестко переопределены (сброшены)
Лично я просто не пойму, что вы хотите? Подробную инструкцию, или ищите того кто сделает, или хотите узнать как это отразится на поисковой выдаче или сочуствия ради?
я даже не могу найти где в конфигах пароль к базе новый прописать
Лучше на новом домене произвести чистую установку и настройку NGCMS, а потом восстановить бекап БД. И далее смотреть и ликвидировать подобные ситуации http://ngcms.ru/forum/viewtopic.php?id=4086.
В NGCMS, если удаляете файл engine\conf\config.php, то cms считает, что она не установлена и при обращении к главной странице запускает установщик.
К хостеру обратитесь, некоторые из них подобные услуги бесплатно предлагают.
После строчки RewriteEngine On в htaccess - открывается не /category/magazine.html, а главная страница
Странно, тогда http://ngcms.ru/forum/viewtopic.php?pid=44479#p44479
Буду знать про 301 и 302. Тогда так проще
Redirect 301 /?magazine /category/magazine.html
В корне сайта есть файл 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.
Реальный пример.
Был сайт, делал его абсолютно статическим, т.е. обычные html странички. Потому что посчитал, что пока инфы нет, не видел смысла садить её на cms.
И потом как это бывает, возникла необходимость публиковать выполненные работы организацией. Еще правки различные в подвале. Было решено всё таки посадить на cms. И было несколько страниц, включая прайс-лист (хорошая такая портянка). Сделал 301 редирект для всех страниц, т.к. на статичном сайте категорий не было, а на cms уже были категории. ну и год в названии прайс-листа даже поменял.
Ниче нигде не просело. Как было по 10-15 человек в день на этом прайсе, так они и остались (сайт местной организации). Точную статистику ежедневно не смотрел. Что яндекс,что гугл всё нормально склеил, т.к. домен не менялся, не менялись приставки https. Два года подряд на этом прайсе только год менял, сейчас в cms просто редирект по id со старого адреса на новый (но это уже другая история).
А вот дубликаты страниц и одинаковые meta описания -- это то, чего действительно стоит остерегаться. Не усложняйте с seo, лучше продумайте детально структуру вашего сайта. А то не понятно, то ли категория, то ли посадочная страница. Тогда возможно появятся быстрые ссылки в поисковой выдаче яндекса.
Если есть какие-то ссылки свежие по этой тематике, то поделитесь, пожалуйста.
Тоже не совсем понимаю, для чего нужно сохранять старые адреса,если фактически по новым будут находиться страницы. Вы нам объясните. Просто интересно с точки зрения опыта. Может вы и правы.
Таких страниц как я понял будет ровно 10 штук?
Да проблемы то нет, чтобы сохранить старый адрес. Но ведь это дубли контента. Как потом с этим бороться?
Потому что urlhandler в NG cms ищет совпадения по регулярным выражениям в адресе (ссылке), предварительно отсекая в этой строке всё, что находится после знака вопроса, включая этот знак вопроса. То что urlhandler отсекает, если правильно помню, он передаёт в качестве параметра уже непосредственно плагинам, либо обработчикам статики, новостей и т.д. Если отсечь визуально, то и получается, что от адреса остается только главная страница.
Слово static, кстати, поэтому не с проста там. Ну и окончания там, на подобии .html.
А почему не получается ч/з htaccess? что в браузере отображается?
Решил посмотреть ближе ваш сайт - так у вас все страницы сделаны по такому принципу со знаком вопроса. А также meta description и keywords одинаковые причем на всех страницах. Интересно как поисковые роботы отличают эти страницы.
Так будет правильнее. Сразу после строки RewriteEngine On
RewriteCond %{QUERY_STRING} ^alopecia$ [NC]
RewriteRule (.*) /lechenie/lechenie-alopecii.html? [R=301,L]
Если редирект 301 (с сохранением ссылочной массы) не устраивает, то копайте код. Больше добавить/посоветовать/рекомендовать нечего.
Ошибка в том, что мне не известен адрес старой страницы для составления регулярки. Напишите адрес старой страницы и адрес новой страницы, на которую будет выполнена переадресация.
Если страниц несколько, то правильнее в htaccess все это дело прописать
RewriteCond %{QUERY_STRING} ^magazine=10$ [NC]
RewriteRule (.*) /products/nazvanie-tovara.html? [R=301,L]
Страница плагина: https://github.com/russsiq/ng-x_filter
Версия плагина 0.3.0 включает критические обновления
В текущей версии плагина 0.4.0 реализованы "ползунки": возможность выбора в интервале значений для доп. полей (от и до).
Такие поля должны быть созданы с опцией Тип поля в БД: int - только цифры
[hr /]
[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).
Ты, да я, да мы с тобой
Кавычки нам пригодились, если бы мы не использовали анонимную функцию, то нужны были бы:
$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 в уже существующем.
Ну а то.
1 return "phphighlight('" . $match[0] . "')"; - возвращает строку с найденной подстрокой, кавычки тут лишние, т.к. нам нужен возврат функции...
2а $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>
2б $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 сущности.
Стока суеты, когда уже всё написано было в этом топике http://ngcms.ru/forum/viewtopic.php?pid=44450#p44450
Читайте внимательно, специально жирным выделю
Либо при создании/редактировании новости ставьте галочку Отключить автоформатирование
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
);
Не понятно: зачем вы оборачиваете в <pre><code>, если есть bb [code].
Он автоматом добавит <pre>. А уже после этого js обработает ваш код, как видно на картинке такой используется.
Либо при создании/редактировании новости ставьте галочку Отключить автоформатирование
[code]$content = preg_replace_callback(
"/<code>(.*?)<\/code>/s",
function ($match) {
return phphighlight($match[1]);
},
$content
);[/code]