Форма комментария по умолчанию, содержит поля: имя, электронная почта, домашная страница, тему и комментарии.
Электронную почту и домашнюю страницу можно отключить в настройках типа контента. Кроме того, можно добавить новые поля к форме и изменить некоторые свои параметры отображения. Но для более продвинутого оформления нужно копать глубже.
В Drupal 7 есть функция hook_form_alter для внесения изменений в форму, прежде чем она отобразится, но эта функция будет вызываться для каждой формы генерируемой Drupal. Поэтому, я предложу использовать функцию hook_form_FORM_ID_alter, так как она вызывается только для конкретной формы с идентификатором form_id. Плюс эта функция вызывается после всех функций переопределения, так что вы будете знать, что ваши изменения не будут отменены в другом месте. Нам остается узнать только form_id формы комментария.
Записки khekkly
12 сентября, 2011
06 сентября, 2011
Откат php 5.3.8 до 5.2.7 с поддержкой cgi на CentOS
Добавляем репу Atomic
Устанавливаем плагин для yum, который нам позволит устанавливать более старые версии продуктов
Сначала необходимо удалить уже установленную php, проверяем
Если что-то вывелось, удалим
Устанавливаем php
Совет: c centos.alt.ru php лучше не ставить — он собран с fpm и fastggi не работает с isp, поэтому ставим из atomic php.
Без установки реп, можно скачать сами пакеты и установить их через rpm:
Открываем www6.atomicorp.com/channels/atomic/centos/5/x86_64/RPMS/
Скачиваем пакеты
wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh
Устанавливаем плагин для yum, который нам позволит устанавливать более старые версии продуктов
yum install yum-allowdowngrade
Сначала необходимо удалить уже установленную php, проверяем
rpm -qa | grep php-
Если что-то вывелось, удалим
yum erase php-*
Устанавливаем php
yum --allow-downgrade -enablerepo=atomic install php-5.2.17и все зависимые модули: cli, common, gd, mbstring, mysql, pdo, xml. Если какая-то репа нам мешает, отключаем ее через -disablerepo=[reponame]
Совет: c centos.alt.ru php лучше не ставить — он собран с fpm и fastggi не работает с isp, поэтому ставим из atomic php.
Без установки реп, можно скачать сами пакеты и установить их через rpm:
Открываем www6.atomicorp.com/channels/atomic/centos/5/x86_64/RPMS/
Скачиваем пакеты
- php-5.2.17-1.el5.art.x86_64.rpm
- php-cli-5.2.17-1.el5.art.x86_64.rpm
- php-common-5.2.17-1.el5.art.x86_64.rpm
- php-devel-5.2.17-1.el5.art.x86_64.rpm
- php-gd-5.2.17-1.el5.art.x86_64.rpm
- php-imap-5.2.17-1.el5.art.x86_64.rpm
- php-mbstring-5.2.17-1.el5.art.x86_64.rpm
- php-mysql-5.2.17-1.el5.art.x86_64.rpm
- php-pdo-5.2.17-1.el5.art.x86_64.rpm
- php-xml-5.2.17-1.el5.art.x86_64.rpm
Устанавливаем:
rpm --oldpackage -Uvh php*
с разрешением всех проблем в зависимостях.
Проверяем версию php
Не забудьте рестарнуть apache
Проверяем версию php
php -v PHP 5.2.17 (cli) (built: Jan 7 2011 10:39:29) Copyright (c) 1997-2010 The PHP Group
Не забудьте рестарнуть apache
service httpd restart
Восстановите php.ini, содержимое прошлого сохранено в файле /etc/php.ini.rpmsave
30 июня, 2011
Ошибки в логах с open_basedir - File() is not within the allowed path(s)
Вчера наткнулся на проблему, что в error лог записывались следующие ошибки:
Оказалось, что проблема в eAccelerator (версия – 0.9.6.1). Для решения проблемы качаем исходники eAccelerator (eaccelerator-0.9.6.1.tar.bz2), открываем файл eaccelerator.c строка 867:
Было:
Diff:
Заново компилируем eAccelerator и устанавливаем
PHP Warning: require(): open_basedir restriction in effect. File() is not within the allowed path(s);
PHP Warning: Unknown: open_basedir restriction in effect. File() is not within the allowed path(s);
PHP Warning: Unknown: open_basedir restriction in effect. File() is not within the allowed path(s);
Оказалось, что проблема в eAccelerator (версия – 0.9.6.1). Для решения проблемы качаем исходники eAccelerator (eaccelerator-0.9.6.1.tar.bz2), открываем файл eaccelerator.c строка 867:
Было:
if (php_check_open_basedir(realname TSRMLS_CC)) {
Стало:if (php_check_open_basedir(p->realfilename TSRMLS_CC)) {
Diff:
--- eaccelerator.c 2010-06-01 00:21:14.000000000 +0400
+++ eaccelerator.c 2011-06-30 15:24:37.277788184 +0400
@@ -864,7 +864,7 @@
EACCELERATOR_PROTECT();
if (p != NULL && p->op_array != NULL) {
/* only restore file when open_basedir allows it */
- if (php_check_open_basedir(realname TSRMLS_CC)) {
+ if (php_check_open_basedir(p->realfilename TSRMLS_CC)) {
return NULL;
}
EAG(class_entry) = NULL;
+++ eaccelerator.c 2011-06-30 15:24:37.277788184 +0400
@@ -864,7 +864,7 @@
EACCELERATOR_PROTECT();
if (p != NULL && p->op_array != NULL) {
/* only restore file when open_basedir allows it */
- if (php_check_open_basedir(realname TSRMLS_CC)) {
+ if (php_check_open_basedir(p->realfilename TSRMLS_CC)) {
return NULL;
}
EAG(class_entry) = NULL;
Заново компилируем eAccelerator и устанавливаем
phpize && ./configure && make && make install
service httpd restart
service httpd restart
10 июня, 2010
Установка Radiant CMS под Windows
Нетривиальная задача, превратилась в головоломку.
32-bit Windows
Radiant не работает с последней сборкой Ruby 1.9.1 p378 (RC2). Для стабильной работы лучше использовать Ruby 1.8.7 p249 (RC2) скачать можно Ruby 1.8.7-p249 RubyInstaller Windows.
26 февраля, 2010
01 ноября, 2009
3 аспекта документирования
Всем известна стандартная мантра программирования «Документируй свой код!» (хотя некоторые разработчики, как оказывается, все еще не следуют ей). Первое, что приходит на ум PHP-программисту, как только речь заходит о документировании кода — это PHP DocBlocks.
DocBlocks — это система для обеспечения последовательности в ваших комментариях и благодатная почва для автоматического создания документации. К тому же, DocBlock, по своей природе, основан на принципах документирования API конкретных функций, классов и т.д., и в этом плане — это превосходная, очень удобная система.
Проблема же заключается в том, что документирование API-функций и их параметров, а также классов, и других аналогичных вещей — это только один из трех важных типов документации, которые необходимы.
В реальности же, слишком много PHP программистов ограничиваются лишь написанием DocBlock'ов, и считают, что их требования по документированию кода полностью выполнены. Используете ли вы PHP DocBlocks или нет, попробуйте сделать так, чтобы убедиться, что вы смогли охватить все три аспекта документирования вашего проекта:
DocBlocks — это система для обеспечения последовательности в ваших комментариях и благодатная почва для автоматического создания документации. К тому же, DocBlock, по своей природе, основан на принципах документирования API конкретных функций, классов и т.д., и в этом плане — это превосходная, очень удобная система.
Проблема же заключается в том, что документирование API-функций и их параметров, а также классов, и других аналогичных вещей — это только один из трех важных типов документации, которые необходимы.
В реальности же, слишком много PHP программистов ограничиваются лишь написанием DocBlock'ов, и считают, что их требования по документированию кода полностью выполнены. Используете ли вы PHP DocBlocks или нет, попробуйте сделать так, чтобы убедиться, что вы смогли охватить все три аспекта документирования вашего проекта:
- «Описание реализации» — рассказывает о том, с чего программисту следует начать для выполнения задачи, и как все устроено на высоком уровне.
- Документация API, которая описывает каждый класс и функции в деталях.
- Встроенные комментарии, которые описывают сам код.
Делаем простой Аудит сайта
Такой аудит можно встретить на любом сайте конторы строгающей сайты, в процессе поиска работы, одна из таких контор дала тестовое задание на создание такой программы.
Столкнулся впервые, но ничего, и не такое кушали, гуглим.
Столкнулся впервые, но ничего, и не такое кушали, гуглим.
Подписаться на:
Сообщения (Atom)