Часто задаваемые вопросы по CNCat 4.3
Как вставить PHP-код на страницу?
-
Можно создать файлы _top.php и _bottom.php в корневой папке каталога. Эти файлы будут исполняться и подключаться соответственно в начале и в конце всех пользовательских страниц каталога.
-
Можно воспользоваться механизмом баннеров (файл /cncat_config/banners.php) см. раздел «Баннеры».
Как вывести фильтры по столбцам (с версии 4.3)?
Нужно править шаблоны. Файл common.tpl, шаблоны filt*. В шаблоне filtval доступна переменная {$CNCAT[filtval][_number]}. В ней содержится порядковый номер значения фильтра (начиная с 1). Таким образом, чтобы вывести значения фильтров построчно по два в строке нужно написать примерно так:
{TEMPLATE filtval (FILTVAL[id,title])}
<input type="checkbox" name="f{$CNCAT[filtval][id]}"
value="1" id="f{$CNCAT[filtval][id]}" onclick="form.submit()"
{if $CNCAT[filtval][_checked]}checked="checked"{endif} />
<label for="f{$CNCAT[filtval][id]}">{$CNCAT[filtval][title]}</label>
{IF $CNCAT[filtval][_number]%2==0}
<br>
{ENDIF}
{/TEMPLATE}
Здесь будет ставиться <br> после каждого второго значения фильтра. Ну а оформить это в табличку - уже дело техники :)
Баннеры
Управление баннерами через интерфейс администратора
В версии 4.1.1 появилась возможность управлять баннерами через веб-интерфейс. Включить отображение баннеров, добавить, изменить и управлять их размещением можно в разделе Администрирование - Элементы каталога - Баннеры (см. документацию).
Управление баннерами через PHP-файл
Если необходимо - можно задавать содержимое баннеров в отдельном PHP-файле. Как это делается описано ниже.
Как включить баннеры?
Сначала включите опцию «Отображать баннеры» (Настройки – Каталог – Основные настройки).
Затем найдите в папке /cncat_config/ файл banners.default.php и скопируйте его в banners.php.
Перейдите в каталог – баннеры включены.
Как изменить код баннера?
Коды баннеров задаются в файле /cncat_config/banners.php.
Каждый баннер описывается следующим образом:
$CNCAT["banner"]["идентификатор_баннера"] =<<<CNCAT_40_BANNER код баннера CNCAT_40_BANNER; |
Вы можете просто поменять код для нужных баннеров, а для ненужных – удалить.
Всего по умолчанию предусмотрено семь баннеров, идентификаторы которых перечислены ниже:
-
page_top – баннер в верхней части страницы;
-
page_left – баннер в левой части страницы;
-
page_right – баннер в правой части страницы;
-
page_bottom – баннер в нижней части страницы;
-
items_top – баннер перед блоком ссылок;
-
items_middle – баннер в середине блока ссылок;
-
items_bottom – баннер после блока ссылок.
Код баннера может содержать любой HTML-текст кроме строки «CNCAT_40_BANNER».
Также код баннера можно задавать как обычную строку, например:
$CNCAT["banner"]["идентификатор_баннера"] = "код баннера"; |
В таком случае необходимо экранировать двойные кавычки символом «\», например:
$CNCAT["banner"]["page_top"] = "ООО \"Каталог-строй\" – строим каталоги."; |
Как добавить свой баннер?
Если местоположение стандартных семи баннеров Вас не устраивает – можно либо изменить положение одного из них, либо добавить свой.
Если нужно добавить новый баннер – придумайте для него идентификатор, например «my_banner». Далее опишите код этого баннера аналогично стандартному.
Затем добавьте баннер в нужное место темы оформления, например так:
{$CNCAT[banner][my_banner]} |
Как менять баннеры в зависимости от текущей категории?
В файле banners.php можно вставлять произвольный PHP-код, который будет выводить баннеры в зависимости от текущей категории.
Идентификатор каждой категории отображается в разделе «Управление категориями» интерфейса администратора.
Получить идентификатор текущей выбранной категории можно следующим образом:
$cid = $CNCAT["page"]["cid"]; |
Далее выводим баннер в зависимости от категории, например:
if ($cid==10) { $CNCAT["banner"]["идентификатор_баннера"] =<<<CNCAT_40_BANNER код баннера для категории 10 CNCAT_40_BANNER; } else { $CNCAT["banner"]["идентификатор_баннера"] =<<<CNCAT_40_BANNER код баннера для остальных категорий CNCAT_40_BANNER; } |
См. также «Как получить информацию о текущей категории».
API
Как получить информацию о текущей категории?
Информация о текущей категории хранится в массиве $CNCAT[“page”][“cat”]. Значения элементов массива перечислены ниже:
id |
Идентификатор категории. Также доступен через переменную $CNCAT[“page”][“cid”] |
id_full |
Идентификаторы родительских категорий и текущей категории, разделенные символом «/», например «311/69/206» (311 – корень, 206 – текущая категория). |
parent_id |
идентификатор родительской категории. Для корневой категории равен «-1». |
child_id_list |
Список идентификаторов дочерних категорий (в строку через запятую), например «15,23,53» |
title |
Название категории |
path |
Часть пути URL для текущей категории, например «business» (без «/» в начале и в конце строки) |
path_full |
Полный путь URL для текущей категории, например «auto/business» (без «/» в начале и в конце строки) |
url |
URL текущей категории, например «/cncat/auto/business/» |
item_count |
Количество ссылок в категории |
item_count_full |
Количество ссылок в категории, включая ссылки в дочерних категориях |
is_link |
Показывает, является ли категория ссылкой |
image_mime |
MIME-код для картинки категории. Пустая строка, если картинки нет. |
meta_keywords |
Ключевые слова для тега META keywords |
meta_descr |
Описание для тега META description |
Итеграция с сервисами (Sape, 1ps и др.)
Как вставить код Sape.ru на страницы каталога?
Для вставки ссылок Sape выполните следующие действия.
1. Скачайте zip-архив с кодом для Sape и распакуйте его в корневую папку сайта каталога, согласно инструкции. Не забудьте выставить права 777 на папку.
2. Код инициализации нужно вставить в конец файла /cncat_config/config.php, например:
Код:
<?php // Common config settings // All settings in this file will override the settings loaded from database $CNCAT["config"]["alogin"] = "admin"; $CNCAT["config"]["apassword"] = "xxx"; $CNCAT["config"]["db"]["host"]="localhost"; $CNCAT["config"]["db"]["password"]=""; $CNCAT["config"]["db"]["name"]="xxx"; $CNCAT["config"]["db"]["prefix"]="cncat4_"; $CNCAT["config"]["db"]["charset"]="utf8"; ?>
<?php if (!defined('_SAPE_USER')){ define('_SAPE_USER', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); } require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); $sape = new SAPE_client(); ?> |
3. Код отображения ссылок следует добавлять как баннеры. Предлагаемый код следует немного изменить. Вместо:
Код:
<? echo $sape->return_links($n); ?> |
нужно писать:
Код:
<? echo $GLOBALS["sape"]->return_links($n); ?> |
здесь $n - количество отображаемых ссылок в этом блоке (см. инструкцию Sape).
Рекомендуем скачать последнюю версию CNCat 4.1.1, в которой управление баннерами реализовано через административный интерфейс. Не забудьте, поставить галочку <Поддержка PHP> в настройках баннера.
Если у Вас версия CNCat 4.1 и ниже, ознакомьтесь с инструкцией по их установке здесь: Баннеры
Пример вставки кода Sape для CNCat 4.1 и ниже, в файле banners.php:
Код:
$CNCAT["banner"]["page_top"] = $GLOBALS["sape"]->return_links($n); |
Как добавить каталог в 1ps.ru?
Добавление в 1ps.ru требует следующих условий:
1. Отсутствие картинки с числом;
2. Только одна категория, выбираемая из выпадающего списка.
Рассмотрим, как это сделать.
1. В разделе "Администрирование - Настройки - Ссылки" установите название и значение скрытого параметра. Например, название: "secretcode", значение: "12345". Этот параметр заменяет ввод картинки с числом.
2. В том же разделе установите флажок "Использовать добавление без CAPTCHA для роботов".
3. Сохраните установленные параметры.
4. Перейдите по ссылке www.server.com/cncat_bot_add.php?secretcode=12345, где www.server.com - адрес Вашего каталога. Обратите внимание, что название скрипта не cncat_add.php, а cncat_bot_add.php. После знака вопроса указывается название скрытого параметра, затем знак "=", затем значение скрытого параметра. По этой ссылке должна открыться простая форма без картинки и с одним выпадающим списком для выбора категории.
5. Проверьте функционирование формы добавления.
6. Если всё в порядке - можно регистрировать приведенную выше ссылку на форму добавления на 1ps.ru.
Как использовать RECAPTCHA при добавлении ссылок и статей
См. инструкцию на форуме.
Общие вопросы
Как сменить пароль администратора?
1. Найдите в файле cncat_config/config.php строку $CNCAT["config"]["apassword"] = "...";
2. Замените ее на $CNCAT["config"]["apassword"] = md5("новыйпароль");
Как сменить префикс файлов "cncat_" на другой?
Изменить можно префикс файлов и папок в файле cncat_init.php (префикс файла cncat_init.php изменять нельзя).
Для изменения префикса нужно:
- Переименовать файлы и папки, задав новый префикс.
- В файле cncat_init.php найти: $CNCAT["system"]["dir_prefix"] = "cncat_";
и вместо "cncat_" подставить свое значение. - После изменения префикса требуется вручную изменить префикс в условиях mod_rewrite в файле .htaccess
Также можно изменить только названия папок. Для изменения названий папок в файле cncat_init.php найти и задать необходимые значения:
$CNCAT["system"]["dir_admin"] =
$CNCAT["system"]["dir_prefix"]."admin/";
$CNCAT["system"]["dir_engine"] =
$CNCAT["system"]["dir_prefix"]."engine/";
$CNCAT["system"]["dir_product"] =
$CNCAT["system"]["dir_prefix"]."links/";
$CNCAT["system"]["dir_config"] =
$CNCAT["system"]["dir_prefix"]."config/";
$CNCAT["system"]["dir_export"] =
$CNCAT["system"]["dir_prefix"]."export/";
$CNCAT["system"]["dir_manual"] =
$CNCAT["system"]["dir_prefix"]."manual/";