CMSimple_XH 1.4

Меняем глобальные переменные

Например, следующий код меняет «title» данной страницы на ‹превед медвед!›

Оглавление:
  1. CMSimple_XH интеграция скриптов
  2. Безопасность CMSimple_XH
  3. Плагины для Cmsimple

(При использовании кода, уберите кавычки, вокруг начального #, так: #СMSimple…)

[php]#CMSimple $GLOBALS[‘cf’][‘site’][‘title’]=’превед медвед!’; #[/php]

Таким образом, в CMSimple_XH можно изменить почти все переменные!

Взгляните на файлы config.php и languages/en.php.
Их глобальные переменные определены в верхней части файла cms.php.

(При использовании кода, уберите кавычки, вокруг начального #, так: #СMSimple…)

CMSimple_XH интеграция скриптов

Здесь даются краткие указания и основные принципы, интеграции скриптов в CMSimple_XH.
Однако, это не руководство в том, как делать аддоны и плагины для CMSimple_XH, используемых со стандартным загрузчиком плагинов (pluginloader) системы.

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

Конфликт переменных

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

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

Вызов скрипта из меню

Допустим, вы хотите, чтобы при нажатии на пункт MyScript, главного меню, управление передавалось вашему внешнему скрипту.

Вы можете просто поместить вызов вашего скрипта в шаблон, прямо после <?php echo content();?>.
И, выполняя проверку, передавать ему управление:
<?php if(@$u[$s]=="MyScript") include ($pth['folder']['base']."scriptsfolder/index.php");?>
Где scriptsfolder — имя папки вашего скрипта.

$u[$s] — URL-адрес страницы.

Чтобы создать URL, указанный выше, вы должны создать страницу с таким именем, выделить тегом <h1> соответствующий текст (<h1>MyScript</h1> в HTML-файле content.htm ). Вы можете сделать это и для страницы второго уровня (H2), например: MyLevel1heading:MyScript.

Кроме того, вы можете вставить ваш скрипт в файлы index.php, cms.php, functions.php или иные, до того, как система выводит шаблон с контентом. Даже, если вызов делается при помощи CMSimple Scripting, все должно работать.

Но все, что выводит внешний скрипт, он должен выводить в переменную $c[$s] (или, в случае CMSimple Scripting, в переменную $content). Тогда будет корректно работать ссылка Версия для печати CMSimple.

Главное, чтобы ваш внешний скрипт не печатал HTML-теги HEAD и BODY. Если вы пишете в системные переменные $c[$s] и $content, вы должны изменить все ваши print-ы и echo-и, так, чтобы они выводили поток в эти переменные, иначе вы не сможете использовать буферные функции для вывода в переменные (см. http://www.php.net/function.ob-get-contents ).

Парсинг URL страницы

Чтобы внутренняя навигация была доступна внешнему скрипту, модифицируйте его, чтобы он передавал имя/URL страницы, в ответ на GET или POST запросы.

Все ссылки во внешнем скрипте должны быть преобразованы, так например, <a href="index.php"> должна стать <a href="index.php?<?php echo @$u[$s]?;>">

Во всех формах, используемых скриптом, вставьте перед submit: <input type="hidden" name="selected" value="<?php echo @$u[$s];?>">

Многостраничные скрипты

Простая и безопасная интеграция внешних скриптов из нескольких файлов, это модификация их так, чтобы все были определены как функции, с использованием имен их файлов, например:
<a href="password.php"> should be changed to <a href="?<?php echo @$u[$s]?;>&function=password"?>

В верхней части, интегрируемого скрипта index.php-файле, вы можете определить файл, который будет вставляться для этой функции:
<?php if ($function=='password')include("password.php");else if ($function=='mailbox')include("mailbox.php");else {// REST OF index.php } ?>

В форме, вы должны также добавить скрытые поля ввода с функцией:
<input type="hidden" name="selected" value="<?php echo @$u[$s];?>"><input type="hidden" name="function" value="<?php echo @$function;?>">

.htaccess

Пользователи Apache, пожалуйста убедитесь, что /cmsimple/config.php защищена в .htaccess файле!

к меню ↑

Безопасность CMSimple_XH

Уязвимости CMSimple_XH

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

Кроме этого, если у вас была установлена старая версия системы, проверьте ваш сайт, на наличие посторонних файлов.

Проверьте корень вашего сайта (там должен быть только родной файл index.php), а также, папку ваш_сайт/downloads/. Найдя, подозрительные файлы переименуйте или удалите их (это могут быть любые .php и .htm файлы, например: img.php, admin_upgrade.php, update.php, update.htm, jamo.php). Обратите внимание также на субпапки внутри ваш_сайт/downloads/, которых вы не создавали, например ваш_сайт/downloads/mb/.

Баги CMSimple_XH

Баги в CMSimple_XH — отсутствуют, просим, информацию об обнаруженных вами багах сообщить на форуме русской поддержки CMSimple.

к меню ↑

Плагины для Cmsimple

Запуск плагинов

Для того, чтобы запустить любой плагин в CMSimple, как правило, нужно сделать 2 следующих шага:

1) Скачать понравившийся плагин и, распаковав, поместить папку с плагином в каталог сайта plugins.

2) Создать новую страницу тегами h1,h2 или h3, например <h1> Мой новый плагин </h1> и в самое её начало поместить строку вида: #.CMSimple $output.= GBlist();.# (зависит от конкретного плагина и берется из его документации).

Если все сделали правильно, то щелкнув по ссылке Мой новый плагин, вы увидите его. Кроме того, название плагина будет в выпадающем списке админки прямо под строкой с админскими ссылками.

Гостевая GBook

Член комьюнити CMSimple Michael Svarrer написал бесплатный плагин гостевой, защищенной капчей и имеющей множество полезных функций, например:

  • Простая инсталляция
  • Индивидуальные настройки: настройка формата времени и даты, капчи,
    дополнительные поля (например email), дополнительные функции для ваших друзей,
    автоматическое разбиение гостевой на страницы, уведомление вас по почте о новой записи,
  • Создание многоязыковой гостевой (по одной для каждого языка)
  • Хорошая совместимость с прочими плагинами