Вернуться   Форум системы управления сайтом Handy.CMS > Handy.CMS 3.1 > Общие положения, новости системы

Закрытая тема
 
Опции темы Опции просмотра
  #1  
Старый 22.08.2009, 04:17
Аватар для Handy.CMS
Handy.CMS Handy.CMS вне форума
Администратор
 
Регистрация: 25.07.2009
Сообщений: 170
Handy.CMS отключил(а) отображение уровня репутации
По умолчанию Выпущен Handy.CMS 3.1 build 2002

Изменения и нововведение в билде 2002

1. Модуль "Формы" - добавлен валидатор полей форм
В модуль "Формы" встроен валидатор проверок полей формы. Администратор может создать собственные валидаторы. Валидаторы базируются на соответствие введенного пользователем значения формы регекс выражению.


2. Модуль "Формы" - добавлены обязательные для заполнения поля
В модуль "Формы" добавлена возможность указания обязательных для заполнения пользователем полей.


3. Модуль "Формы" - изменен принцип валидации значений
Валидация поля используется в двух ситуациях:
- "Контроль обязательных к заполнению данных". Производится при статусе поля "обязательно для заполнения". Проверки: заполненность данных; валидация, в случае наличия валидатора.
- "Проверка на ошибочность заполнения поля пользователем": Производится при отсутствии статуса "обязательно для заполнения". Проверки: валидация данных, в случае заполнения поля пользователем и наличии валидатора.

4. Добавлена возможность логизирования запросов к БД
Для возможности оптимизации работы модулей разработчиками и выявления медленных запросов к БД введена возможность логизирования запросов. Для активиации лога к базе данных, необходимо в модуле определить функцию debugAvalible()

PHP код:
public function debugAvalible () {
 return 
true;

Для активации лога БД в системе, в config.ini установить параметр sql_debug_log=on

5. Улучшена работа с БД на хостингах с ограниченными ресурсами
Для площадок с ограниченными ресурсами введена возможность использования непостоянных соединений с БД (по-умолчанию включены постоянные соединения). Для активации опции необходимо установить параметр db_pconnect=N в config.ini

6. Исправлено отображение пути установки
В 3-ем шаге инсталляции исправлено некорректное отображение путей к папкам, расположенным в публичной директории.

7. Парсинг переменной {theme}
Добавлен парсинг переменной {theme} в шаблонах видов модулей, хранящей в себе путь к теме текущего шалобна.

8. Откорректировано добавление шаблонов в систему
Ранее, при добавлении шаблона, идентичного по содержанию (дубликат), существующему в системе, но отличному по названию, система удаляла дубликат. По просьбе пользователей данная функция была отключена. Теперь при попытке загрузки в систему шаблона аналогичного по содержанию, но с отличным названием, выводится предупреждение с просьбой изменить содержимое шаблона.


9. Расширены возможности ввода параметров вида модуля
Добавлена возможность указания условий WHERE для вида модуля, при его привязке к странице.
Синтаксис:
PHP код:
forms.form_id:forms.reserved<>"true"|forms.form_id<>1@form_id=form_name=Выберите форму
Условия для WHERE: forms.reserved<>"true"|forms.form_id<>1 (часть между двоеточием и @).
При наличии нескольких услвовий, необходимо использовать разделитель условий - вертикальный слеш |
Примеры:
1) Выбрать все формы:
PHP код:
forms.form_id@form_id=form_name=Выберите форму

2) Выбрать все формы, кроме форм с типом reserved
PHP код:
forms.form_id:forms.reserved<>"true"@form_id=form_name=Выберите форму
2) Выбрать все формы, кроме форм с типом reserved и id которых не равен 1
PHP код:
forms.form_id:forms.reserved<>"true"|forms.form_id<>1@form_id=form_name=Выберите форму
__________________
Команда Handy.CMS
  #2  
Старый 23.09.2009, 22:11
Аватар для Handy.CMS
Handy.CMS Handy.CMS вне форума
Администратор
 
Регистрация: 25.07.2009
Сообщений: 170
Handy.CMS отключил(а) отображение уровня репутации
По умолчанию

10. Модуль "Формы" - возможность использования другими модулям

Модуль "Формы" претерпел революционные изменения, теперь его могут использовать другие модули в собственных целях. Это сделано для удобства создания различных форм и анкет внешними разработчиками и автоматизации профессов проверки, заполнения и отправки данных из форм.

Для использования формы из модуля, необходимо:
1) Установить системное имя формы и статус зарезервированности в таблице forms: значения полей reserved="true" и form_type="системное_имя_на_латинице"

Теперь форма может быть вызвана любым модулем.
Она также стала недоступна для удаления, а также прикрепления ее к странице.

Для вызова формы и получение ее содержимого используется функция:




PHP код:
self::getFormContents($form_type=false$show_title=false
, где
  • form_type - системное имя формы на латинице (значение поля form_type из таблицы базы данных forms)
  • show_title - отображение названия формы на странице true / false
Для автоматической проверки значений формы и отправки письма:

PHP код:
self::checkFormContents($form_type=false$show_title=false$text



Значения первых двух переменных аналогичны self::getFormContents
  • $text - текст, добавляемый к письму, при отправке формы
В случае, если у формы установлено одно или несколько полей с системным именем email, оно заполнено пользователем, на данные адреса также будут отправлены письма с данными из формы. Это удобно, в случае, если необходимо уведомлять об успешной отправке формы не только администратора, но и пользователя, дублируя ему информацию.


11. Модуль "Формы" - добавлена возможность валидации полей формы модулем

В случае, если возможностей встроенных правил валидации полей не хватает, в поле field_validation таблицы form_fields можно указать название модуля, который будет вызван для проверки корректности заполненности поля.

Для осуществления проверки у данного модуля должна быть определена функция проверки:
PHP код:
public function fieldValidation($field_type$field_value){
 return array (
validate => true [,message => ""]);
 
 


  • $field_type - передается системное имя поля (значение поля form_type из таблицы базы данных forms)
  • $field_value - передается заполненное пользователем значение
Функция должна вернуть массив, содержащий обязательный ключ validate с значением true - если поле прошло валидацию, false - если не прошло.

Ключ message - опционален и содержит текст сообщения об ошибке, который выводится пользователю, в случае если поле не прошло валидацию.



Пример использования:

PHP код:
private $city_title;
public function 
fieldValidation($field_type$field_value){
  
// Если не передано название поля или у поля пустое значение
  
if($field_type==NULL || $field_value==NULL$callback['validate'] = false;
  
// Устанавливаем первичный флаг валидации
  
$callback['validate'] = true;
  if(
$field_type=="city_title") {
   
$contents $this->database->sqlParse("SELECT city_title FROM cities WHERE city_title=?"$field_value);
   if(
$contents[0]==NULL$callback['validate'] = true;
   else 
$callback['validate'] = false;
  }
  
$callback['message'] = "Город <b>".htmlspecialchars($field_value)."</b> уже есть в базе.";
  return 
$callback;
 }
public function 
onExecute($param_str) {
  
// Подгружаем управляющий модуль "Формы"
  
$forms handyCore::loadExtension 'ext.forms' );
 if(
$_POST) {
    
// Текст, добавляемый перед данными из формы
        
$text "Добавленный город:\n";
        
// $form_data хранит значения всех заполненных пользователем полей, 
        // при этом к полям, имеющим системное имя можно обращаться как к ключу
        // $form_data[form_type]
        
$form_data $forms->checkFormContents("cities",  true$text);
        
// Присваиваем значение системного поля city_title переменной
     
$this->city_title $form_data['city_title']
  if(
$form_data['form_data']['form_fields']!=NULL) {
   
// Действия модуля с формой
      // Например внесение данных в БД
      
$this->database ->sqlParse('INSERT INTO cities SET city_title=?'$this->city_title);
     }
   } else {
 if(
$form_data $forms->getFormContents("cities"true))){
     } else 
$error "cities_form_not_found";    
   }
   return array (
    
'form' => $form_data['contents'], 
 
'template' => 'users_registration.tpl'
 
'error' => $error
 
);

12. Возможность работы системы на 64-bit машинах
Добавлена возможность работы системы на серверах 64-bit

Список будет пополняться
__________________
Команда Handy.CMS
  #3  
Старый 30.09.2009, 20:14
Аватар для Handy.CMS
Handy.CMS Handy.CMS вне форума
Администратор
 
Регистрация: 25.07.2009
Сообщений: 170
Handy.CMS отключил(а) отображение уровня репутации
По умолчанию

13. Получение значение и внесение изменений в значения настроек модулей
Добавлены функции self::setExtSettings($array[,$ext=false]) и self::getExtSettings([$ext=false])) для более удобного получения настроек из модуля и внесение настроек в модуль.




PHP код:
self::setExtSettings($ext$array
, где
  • $ext - системное имя модуля (по-умолчанию - имя вызывающего модуля), необходимо указывать, только если мы хотим получить настройки не текущего модуля (не того, из которого происходит вызов метода).
  • $array - массив со значениями, в котором ключ элемента массива соответствует значению поля extensions_settings_id таблицы БД extensions_settings, а значение - новому значению свойства
PHP код:
self::getExtSettings($ext
, где
  • $ext - системное имя модуля (по-умолчанию - имя вызывающего модуля), необходимо указывать, только если мы хотим получить настройки не текущего модуля (не того, из которого происходит вызов метода).
Таблица extensions_settings содержит следующие поля:
  • extensions_settings_id - уникальное ID, устанавливается автоматически
  • extension_sysname - системное название модуля, которому принадлежит поле
  • setting_name -системное название поля (буквы латинского алфавита, цифры, символ подчеркивания и дефис)
  • setting_title - Название поля, для вывода в шаблоне
  • setting_value - Значение поля
  • setting_dim - тип поля для вывода в шаблоне (сантиметры, пиксели, кг и т.п.), если присутствует.


Пример использования:

Код модуля:
PHP код:
// Устанавливаем значение сеттингов
$this->setExtSettings("subscribe"$_POST['extensions_settings_id']);
// Получаем значение сеттингов
$settings $this->getExtSettings("subscribe");
$this -> smarty -> assign ('subscribe_settings'$settings); 
Код шаблона:
PHP код:
<table border="0" cellpadding="0" cellspacing="0" width="100%">
 {
section loop=$subscribe_settings name=i} <tr>
 <
td nowrap>{$subscribe_settings[i].setting_title|escape}</td>
 <
td><img src="$theme/p.gif" width=10 height=1></td>
 <
td width="100%"><input type="text" name="extensions_settings_id[{$subscribe_settings[i].extensions_settings_id}]" value="{$subscribe_settings[i].setting_value|escape}class="input100persent" /></td>
 </
tr>
 {/
section}
 </
table
__________________
Команда Handy.CMS
  #4  
Старый 05.10.2009, 23:46
Аватар для Handy.CMS
Handy.CMS Handy.CMS вне форума
Администратор
 
Регистрация: 25.07.2009
Сообщений: 170
Handy.CMS отключил(а) отображение уровня репутации
По умолчанию

14. Права доступупа на robots.txt
В систему прав доступа добавлено событие - "Редактирование robots.txt", для возможности запрета изменения robots.txt младшими администраторами и "случайного" запрета сайта к индексации.
__________________
Команда Handy.CMS
  #5  
Старый 07.10.2009, 00:27
Аватар для Handy.CMS
Handy.CMS Handy.CMS вне форума
Администратор
 
Регистрация: 25.07.2009
Сообщений: 170
Handy.CMS отключил(а) отображение уровня репутации
По умолчанию

15. Макросы
Обработчики макросов перенесы в отдельные файлы, для удобства их создания и редактирования. Теперь, для того чтобы создать макрос, необходимо:
1) написать название его тега и пространства имен, если есть в XML-файле списке макросов (см. документацию), например:
PHP код:
<rule>
   <namespace>
active</namespace>
   <
tag>form</tag>
</
rule
2) создать файл с обработчиком в папке /handy_framework/lib/replaceprocessor/macros_тип_макроса. При этом название файла должно формироваться следующим образом: название_тега.php или название_пространства_имен_название_тега.php, например:
htmleditor.php | тег: htmleditor, пространство имен не задано
active_form.php тег: form, пространство имен: active
active.php | тег: не задан, прострнанство имен: active
Типы макросов:
admin - шаблоны административного интерфейса (папка: macros_admin, XML-обработчик: rules.xml)
public - шаблоны публичной части проекта (папка: macros_public, XML-обработчик: macros.xml)
ext - шаблоны публичной части модулей (папка: macros_ext, XML-обработчик: ext_macros.xml)
__________________
Команда Handy.CMS
  #6  
Старый 11.10.2009, 11:59
Аватар для Handy.CMS
Handy.CMS Handy.CMS вне форума
Администратор
 
Регистрация: 25.07.2009
Сообщений: 170
Handy.CMS отключил(а) отображение уровня репутации
По умолчанию

16. Улучшена работа антиспам фильтра для форм.
Улучшена работа базового антиспам фильтра для форм, не требующего наличия captcha в форме.
__________________
Команда Handy.CMS
  #7  
Старый 03.11.2009, 18:39
Аватар для Handy.CMS
Handy.CMS Handy.CMS вне форума
Администратор
 
Регистрация: 25.07.2009
Сообщений: 170
Handy.CMS отключил(а) отображение уровня репутации
По умолчанию

17. Модуль "Формы", информация о пользователе
В модуль "Формы" добавлена передача администратору информации о пользователе, который отправил форму.
На почту вместе с запросом направляется следующая информация по пользователю:
- Реферер (адрес страницы-источника посетителя)
- IP адрес пользователя
- Броузер пользователя
__________________
Команда Handy.CMS
  #8  
Старый 05.11.2009, 02:13
Аватар для Handy.CMS
Handy.CMS Handy.CMS вне форума
Администратор
 
Регистрация: 25.07.2009
Сообщений: 170
Handy.CMS отключил(а) отображение уровня репутации
По умолчанию

18. Управление свойствами страницы из модулей
Получить доступ к свойствам страницы, например, meta-данным теперь можно через функцию:
PHP код:
handyCore::loadExtension 'ext.sitemanager' )->getPageSettings([$key]); 
, где $key - название свойства.
При этом, если не обозначить название конкретного свойства, Вы получите весь массив свойств.
Для того, чтобы установить значение свойства, используется функция:


PHP код:
handyCore::loadExtension 'ext.sitemanager' )->setPageSettings($key$value); 
, где
  • $key - название свойства;
  • $value - значение, которое нужно установить.
Примечательно, что массив свойств не ограничен, соответственно можно добавлять свои свойства.

На данный момент базовые модули системы используются свойства: meta_title, meta_keywords, meta_description, которые отвечают за вывод META-тегов конкретной страницы. В случае, если страница динамически формируется модулем, из модуля можно установить свойства META для данной страницы.
__________________
Команда Handy.CMS
  #9  
Старый 07.11.2009, 17:33
Аватар для Handy.CMS
Handy.CMS Handy.CMS вне форума
Администратор
 
Регистрация: 25.07.2009
Сообщений: 170
Handy.CMS отключил(а) отображение уровня репутации
По умолчанию

19. Возможность установки времени показа формы
Добавлена возможность установки интервала, в который должна отображаться форма.
__________________
Команда Handy.CMS
  #10  
Старый 11.11.2009, 02:50
Аватар для Handy.CMS
Handy.CMS Handy.CMS вне форума
Администратор
 
Регистрация: 25.07.2009
Сообщений: 170
Handy.CMS отключил(а) отображение уровня репутации
По умолчанию

20. Русские даты в Smarty
Система автоматически переводит названия месяцев в датах в русский эквивалент, в соответствии с установленным в системе форматом дат.
Однако иногда для форматирования удобно выводить части даты отдельно и для этого нужно воспользоваться модификатором форматирования даты шаблонизатора smarty - date_format. Проблема заключается в том, что исходная версия smarty не предусматривает русских дат.
Мы модифицировали код smarty и теперь шаблонизатор поддерживает русские даты месяцев. Для указания русского формата дат, необходимо указать модификатор даты:
  • %b_RU - дата в нижнем регистре;
  • %B_RU - дата в верхнем регистре.
__________________
Команда Handy.CMS
Закрытая тема

Метки
2001

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выпущен Handy.CMS 3.1. build 2006 Handy.CMS Общие положения, новости системы 15 25.02.2010 23:40
Выпущен Handy.CMS 3.1. build 2005 Handy.CMS Общие положения, новости системы 0 29.01.2010 17:23
Выпущен Handy.CMS 3.1 build 2004 Handy.CMS Общие положения, новости системы 0 27.01.2010 00:12
Ошибки в 3.1 build 2002 lightcyber Ошибки и недоработки 7 21.01.2010 13:11
Выпущен Handy.CMS 3.1. build 2001 Handy.CMS Общие положения, новости системы 0 18.08.2009 22:58


Часовой пояс GMT +4, время: 13:21.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2003-2010 Форум системы управления сайтом Handy.CMS