0

Шаблон полного отображения в списке объектов NetCat CMS

При работе с системой управления контентом NetCat CMS может возникнуть потребность вывести данные полного отображения объекта, используя функцию nc_objects_list(), она же s_list_class(). Изначально функция расчитана на вывод информации списка, а не отдельного объекта.

Решение, в данном случае, очень простое — в компоненте, в поле «Объект в списке» нужно вписать код:

<? /* данные из полного отображения объекта */ ?>
<? include_once (
    $nc_core->CLASS_TEMPLATE_FOLDER
    . $cc_env['Class_ID']
    . ($cc_env['Class_Template_ID'] ? "/" . $cc_env['Class_Template_ID'] : "")
    . "/RecordTemplateFull.html"
); ?>

В результате, вместо отображения объекта из списка, будет выведено содержимое поля полного отображения объекта.

Такой же подход может быть полезен при желании использовать одинаковый шаблон при выводе объекта списка и полного отображения объекта.

2

AJAX-авторизация в CMS NetCat

AJAX-авторизация в CMS NetCatПопулярная отечественная CMS NetCat имеет в своём составе модуль «Личный кабинет», который, помимо прочего, позволяет организовать регистрацию и авторизацию пользователей на сайте. Авторизация нас как раз и интересует, а именно организация ajax-авторизации, без назойливой перезагрузки страницы, которая инициируется отправкой формы с данными.

Готового решения для этого у системы управления контентом NetCat пока ещё нет, но его можно легко реализовать стандартными средствами. Ниже представлена инструкция по шагам.

1. Макет дизайна и форма авторизации

На этом шаге нам нужно расширить стандартную форму авторизации. Форма может находится в настройках модуля «Личный кабинет» — «Форма авторизации», а может быть выведена непосредственно в макете дизайна. Рассмотрим ситуацию, когда форма выведена в макете.

Continue Reading

1

Полная замена переносов строк в JavaScript при помощи PHP

Для передачи данных посредствам AJAX или других JavaScript-функций, иногда требуется избавиться от переносов строк. Как показала практика, просто удалить или заменить командные символы возврата и новой строки, \r и \n, недостаточно.

Приведу наиболее полную последовательность «нежелательных» символов для замены, и их обработку через PHP-функцию str_replace():

// массив спецсимволов для замены
$search = array(PHP_EOL, chr(10), chr(13), '\r' , '\n', '\t', '\x0B', '\0');
// на что заменять
$replace = '';
// текст с переносами строк
$sometext = '...';
// функция замены переноса строк
$newtext = str_replace($search , $replace, $sometext);

При желании можно заменять символы не на пустую строку, а на уникальный флаг, например %newline%, или HTML-тег <br />. Тогда процесс станет обратимым и переносы возможно будет восстановить.

2

Установка Apache 2, PHP 5 и MySQL в Ubuntu

Любой сайт начинается с сервера и в этой статье я расскажу как быстро и без лишних хлопот установить полноценный локальный сервер Apache 2. Пошаговые инструкции помогут лучше понять назначение каждой части комплекта разработчика.

Установка сервера Apache 2

В терминале запускаем процесс установки apache2 из стандартных репозиториев:

sudo apt-get install apache2

Чтобы сервер заработал следует выполнить стандартную команду перезагрузки процесса:

sudo service apache2 restart

Теперь, если перейти по ссылке http://localhost будет отображаться приветственный текст, вроде такого:

It works!

This is the default web page for this server.

The web server software is running but no content has been added, yet.

Continue Reading

0

Установка PHP 5.4 в Ubuntu

Самая свежая версия PHP 5.4 может понадобиться для перспективного тестирования готовых наработок. Установка довольно проста, если связка Apache, PHP, MySQL уже есть.

Нам нужно добавить репозиторий с самой свежей версией PHP 5.4:

sudo add-apt-repository ppa:ondrej/php5

Далее обновим наши данные и просто установим PHP 5.4, как обычный пакет:

sudo apt-get update
sudo apt-get install php5 libapache2-mod-php5

0

Синтаксическая проверка PHP-файла на ошибки без его выполнения

Порой, даже самые простые задачи рядового программиста на PHP могут требуют к себе внимания. В этот раз речь пойдёт о синтаксической проверке php-файла перед его подключением.

Пример из жизни — динамически подключаемые php-файлы через функцию include(), если файл содержит ошибку — получим 500 ошибку сервера, которая весьма сурова для нашего кода. До версии PHP 5.0.4 можно было обойтись функцией php_check_syntax(), чтобы проверить файл перед его подключением, но в последующих версиях её нет, поэтому, казалось бы, остаётся только один простой способ проверки через командную строку:

php -l имя_файла

В php-реализации получается примерно так:

function php_check_syntax($file, &$error) {
  // анализируем файл
  exec("php -l ".$file, $error, $code);
  // ошибок нет
  if ($code == 0) {
    return true;
  }
  // ошибки есть
  return false;
}

Но, этот способ практически бесполезен для отечественных хостингов, т.к. функции exec() и shell_exec() возглавляют небезопасный список php-функций и их просто отключают. Так поступает masterhost и многие другие.

Найти другой функционал синтаксической проверки файлов на базе стандартных решений — не получилось, — поэтому будет магия! А поможет нам победить непослушный код — функция token_get_all() и функция eval().
Continue Reading

1

Полноценный модуль php5-gd для Debian и Ubuntu

По умолчанию PHP функции imageantialias() и imagerotate() отключены в модуле gd.so для Debian и его производных. Сделано это ради обеспечения стабильности и безопасности. Задумка может и благая, но раз мы ищем решение этой проблемы, значит оно того стоит. Например Drupal не захочет работать с урезанным модулем.

По сути достаточно пересобрать PHP и установить новый полноценный пакет php5-gd. Сделать это совсем не сложно, хотя описание будет достаточно подробное. Собирать будем из исходников, что само по себе интересно =)

Далее все действия производятся в рутовом терминале или в обычном через команду sudo. Для наглядности буду писать без sudo. Continue Reading