Page MenuHomeIn-Portal Phabricator

custom
No OneTemporary

File Metadata

Created
Sat, Sep 20, 12:50 PM
Index: branches/1.0.x/custom/units/helpers/sample_helper.php
===================================================================
--- branches/1.0.x/custom/units/helpers/sample_helper.php (revision 12300)
+++ branches/1.0.x/custom/units/helpers/sample_helper.php (revision 12301)
@@ -1,12 +1,14 @@
<?php
+ defined('FULL_PATH') or die('restricted access!');
+
/**
* Sample helper contains methods used in different classes
*
*/
class SampleHelper extends kHelper
{
}
\ No newline at end of file
Index: branches/1.0.x/custom/units/helpers/helpers_config.php
===================================================================
--- branches/1.0.x/custom/units/helpers/helpers_config.php (revision 12300)
+++ branches/1.0.x/custom/units/helpers/helpers_config.php (revision 12301)
@@ -1,12 +1,14 @@
<?php
+defined('FULL_PATH') or die('restricted access!');
+
$config = Array (
'Prefix' => 'custom-helpers',
'EventHandlerClass' => Array ('class' => 'kEventHandler', 'file' => '', 'build_event' => 'OnBuild'),
'RegisterClasses' => Array (
Array ('pseudo' => 'SampleHelper', 'class' => 'SampleHelper', 'file' => 'sample_helper.php', 'build_event' => '', 'require_classes' => 'kHelper'),
),
);
\ No newline at end of file
Index: branches/1.0.x/custom/units/widgets/widgets_config.php
===================================================================
--- branches/1.0.x/custom/units/widgets/widgets_config.php (revision 12300)
+++ branches/1.0.x/custom/units/widgets/widgets_config.php (revision 12301)
@@ -1,189 +1,191 @@
<?php
/**
* Sample config file for widgets
*
* @author dmitrya
* @package Development Kit
*/
- $config = Array(
+defined('FULL_PATH') or die('restricted access!');
+
+ $config = Array(
'Prefix' => 'widget',
'ItemClass' => Array ('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'),
'ListClass' => Array ('class' => 'kDBList', 'file'=> '', 'build_event' => 'OnListBuild'),
'EventHandlerClass' => Array ('class' => 'WidgetEventHandler', 'file' => 'widget_eh.php', 'build_event' => 'OnBuild'),
'TagProcessorClass' => Array ('class' => 'WidgetTagProcessor', 'file' => 'widget_tp.php', 'build_event' => 'OnBuild'),
'AutoLoad' => true,
'QueryString' => Array (
1 => 'id',
2 => 'Page',
3 => 'event',
4 => 'mode',
),
'RewriteListener' => 'WidgetRewriteListener',
'IDField' => 'WidgetId',
'StatusField' => Array ('Status'),
'TableName' => TABLE_PREFIX.'Widgets',
/*
'ForeignKey' => 'ParentId', // field title in TableName, linking record to a parent
'ParentTableKey' => 'ParentId', // id (or other key) field title in parent's table
'ParentPrefix' => 'parent',
'AutoDelete' => true, // delete these items when parent is being deleted
'AutoClone' => true, // clone these items when parent is being cloned
*/
'TitlePresets' => Array (
'default' => Array (
'new_status_labels' => Array ('widget' => '!la_title_AddingWidget!'),
'edit_status_labels' => Array ('widget' => '!la_title_EditingWidget!'),
'new_titlefield' => Array ('widget' => '!la_title_NewWidget!'),
),
'widget_list' => Array (
'prefixes' => Array ('widget_List'), 'format' => '#section_label#',
'toolbar_buttons' => Array ('new_item', 'edit', 'delete', 'approve', 'decline', 'export', 'import', 'view', 'dbl-click',),
),
'widget_edit' => Array (
'prefixes' => Array ('widget'), 'format' => '#widget_status# - #widget_titlefield#',
'toolbar_buttons' => Array ('select', 'cancel', 'reset_edit', 'prev', 'next'),
),
),
'PermSection' => Array('main' => 'custom:widgets'),
'Sections' => Array (
'custom:widgets' => Array (
'parent' => 'custom',
'icon' => 'custom:widgets',
'label' => 'la_title_Widgets',
'url' => Array ('t' => 'custom/widgets/widget_list', 'pass' => 'm'),
'permissions' => Array ('view', 'add', 'edit', 'delete'),
'priority' => 1,
'type' => stTREE,
),
),
'TitleField' => 'Title', // field, used in bluebar when editing existing item
// Use %1$s for local table name with prefix, %2$s for calculated fields
'ListSQLs' => Array ( // key - special, value - list select sql
'' => 'SELECT %1$s.* %2$s
FROM %1$s',
),
'ItemSQLs' => Array (
'' => 'SELECT %1$s.* %2$s
FROM %1$s',
),
'ListSortings' => Array (
'' => Array (
// 'ForcedSorting' => Array ('Priority' => 'desc'),
'Sorting' => Array ('Title' => 'asc'),
)
),
'Fields' => Array (
'WidgetId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
'Title' => Array ('type' => 'string', 'not_null' => '1', 'default' => '', 'required' => true, 'max_len' => 255),
'Description' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => null),
'Email' => Array(
'type' => 'string', 'formatter' => 'kFormatter',
'regexp'=> '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i',
'sample_value' => 'email@domain.com',
'not_null' => 1, 'default' => '',
'error_msgs' => Array ('invalid_format' => '!la_invalid_email!')
),
'Type' => Array (
'type' => 'int',
'formatter' => 'kOptionsFormatter', 'use_phrases' => 1,
'options' => Array (
1 => 'la_opt_Default',
2 => 'la_opt_Custom',
),
'not_null' => 1,
'default' => 1,
'required' => 1,
),
'Phone' => Array (
'type' => 'string', 'formatter' => 'kFormatter',
'default' => '', 'using_fck' => 1, 'not_null' => 1),
'Qty' => Array ('type' => 'double', 'required' => 0, 'not_null' => 1, 'default' => 0),
'Status' => Array (
'type' => 'int', 'formatter' => 'kOptionsFormatter',
'options' => array (1 => 'la_Active', 2 => 'la_Pending', 0 => 'la_Disabled'),
'use_phrases' => 1, 'not_null' => 1, 'default' => 2,
),
'CreatedOn' => Array (
'type' => 'int', 'formatter' => 'kDateFormatter',
'time_format' => '', 'input_time_format' => '', 'default'=>'#NOW#', 'not_null' => true),
'Good' => Array (
'type' => 'int', 'formatter' => 'kOptionsFormatter',
'options' => Array(1 => 'la_Yes', 0 => 'la_No'),
'use_phrases' => 1, 'not_null' => 1, 'default' => 0
),
'BirthTime' => Array (
'type' => 'int', 'formatter' => 'kDateFormatter',
'date_format' => '', 'input_date_format' => '',
'default' => null
),
'Image' => Array(
'type' => 'string', 'formatter' => 'kUploadFormatter',
'max_size' => MAX_UPLOAD_SIZE, // in Bytes !
'file_types' => '*.jpg;*.gif;*.png', 'files_description'=>'!la_hint_ImageFiles!',
'upload_dir' => '/system/user_files/', // relative to project's home
'as_image' => true, 'thumb_width' => 100, 'thumb_height' => 100,
'multiple' => false, // false or max number of files - will be stored as serialized array of paths
'direct_links' => false, // use direct file urls or send files through wrapper (requires mod_mime_magic)
'required' => 1, 'default' => null
),
'DataFile' => Array(
'type' => 'string', 'formatter'=>'kUploadFormatter',
'max_size' => MAX_UPLOAD_SIZE, // in Bytes !
'file_types' => '*.*',
'files_description' => '!la_hint_AllFiles!',
'upload_dir' => '/system/user_files/', // relative to project's home
'as_image' => false,
'multiple' => 5, // false or max number of files - will be stored as serialized array of paths
'direct_links' => true, // use direct file urls or send files through wrapper (requires mod_mime_magic)
'default' => null
),
),
'Grids' => Array (
'Default' => Array (
// 'Icons' => Array ('default' => 'icon16_custom.gif'),
'Fields' => Array (
'WidgetId' => Array ('title' => 'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter'),
'Title' => Array ('title' => 'la_col_Name', 'data_block' => 'grid_delete_td'),
'Image' => Array ('title' => 'la_col_Image', 'data_block' => 'grid_image_td'),
'Type' => Array ('title' => 'la_col_Type', 'filter_block' => 'grid_options_filter'),
'Status' => Array ('title' => 'la_col_Status', 'filter_block' => 'grid_options_filter'),
'Good' => Array ('title' => 'la_col_Good'),
'Qty' => Array ('title' => 'la_col_Qty', 'header_block' => 'grid_column_title_no_sorting', 'filter_block' => 'grid_float_range_filter'),
'Email' => Array ('title' => 'la_col_Email'),
'Phone' => Array ('title' => 'la_col_Phone'),
'CreatedOn' => Array ('title' => 'la_col_CreatedOn', 'filter_block' => 'grid_date_range_filter'),
'Description' => Array ('title' => 'la_col_Description'),
// 'BirthTime' => Array ('title' => 'la_col_BirthTime', 'filter_block' => 'grid_date_range_filter'),
),
),
),
'ConfigMapping' => Array (
'PerPage' => 'Comm_Perpage_Widgets',
'ShortListPerPage' => 'Comm_Perpage_Widgets_Short',
),
);
Index: branches/1.0.x/custom/units/widgets/widget_eh.php
===================================================================
--- branches/1.0.x/custom/units/widgets/widget_eh.php (revision 12300)
+++ branches/1.0.x/custom/units/widgets/widget_eh.php (revision 12301)
@@ -1,243 +1,245 @@
<?php
+ defined('FULL_PATH') or die('restricted access!');
+
/**
* Widgets Event Handler (sample)
*
*/
class WidgetEventHandler extends kDBEventHandler {
/**
* Allows to override standart permission mapping
*
*/
function mapPermissions()
{
parent::mapPermissions();
$permissions = Array (
'OnItemBuild' => Array ('self' => true),
'OnCustomEvent' => Array ('self' => true),
);
$this->permMapping = array_merge($this->permMapping, $permissions);
}
/**
* Permission exceptions
*
* @param kEvent $event
*/
function CheckPermission(&$event)
{
$skip_permissions_check_events = Array (
'OnAnotherCustomEvent',
);
if (in_array($event->Name, $skip_permissions_check_events)) {
return true;
}
return parent::CheckPermission($event);
}
/**
* Set custom query for the list
*
* @param kEvent $event
*/
function OnCustomEvent(&$event)
{
$object =& $event->getObject();
/* @var $object kDBList */
}
/**
* Set custom query for the list
*
* @param kEvent $event
*/
function SetCustomQuery(&$event)
{
parent::SetCustomQuery($event);
$object =& $event->getObject();
/* @var $object kDBList */
# identifying event based on special and setting filter
if ($event->Special == 'custom-special') {
// $object->addFilter('primary_filter', '%1$s.Status = '.STATUS_DISABLED);
}
}
/**
* Before new item created
*
* @param kEvent $event
*/
function OnBeforeItemCreate(&$event)
{
parent::OnBeforeItemCreate($event);
}
/**
* Before existing item updated
*
* @param kEvent $event
*/
function OnBeforeItemUpdate(&$event)
{
parent::OnBeforeItemUpdate($event);
}
/**
* Before item deleted
*
* @param kEvent $event
*/
function OnBeforeItemDelete(&$event)
{
parent::OnBeforeItemDelete($event);
}
/**
* After item loaded
*
* @param kEvent $event
*/
function OnBeforeItemLoad(&$event)
{
parent::OnBeforeItemLoad($event);
}
/**
* After new item created
*
* @param kEvent $event
*/
function OnAfterItemCreate(&$event)
{
parent::OnAfterItemCreate($event);
}
/**
* After existing item updated
*
* @param kEvent $event
*/
function OnAfterItemUpdate(&$event)
{
parent::OnAfterItemUpdate($event);
}
/**
* After item deleted
*
* @param kEvent $event
*/
function OnAfterItemDelete(&$event)
{
parent::OnAfterItemDelete($event);
}
/**
* After item loaded
*
* @param kEvent $event
*/
function OnAfterItemLoad(&$event)
{
parent::OnAfterItemLoad($event);
}
/**
* Builds/parses widget part of url
*
* @param int $rewrite_mode Mode in what rewrite listener was called. Possbile two modes: REWRITE_MODE_BUILD, REWRITE_MODE_PARSE.
* @param string $prefix Prefix, that listener uses for system integration
* @param Array $params Params, that are used for url building or created during url parsing.
* @param Array $url_parts Url parts to parse (only for parsing).
* @param bool $keep_events Keep event names in resulting url (only for building).
* @return bool Return true to continue to next listener; return false (when building) not to rewrite given prefix; return false (when parsing) to stop processing at this listener.
*/
function WidgetRewriteListener($rewrite_mode = REWRITE_MODE_BUILD, $prefix, &$params, &$url_parts, $keep_events = false)
{
if ($rewrite_mode == REWRITE_MODE_BUILD) {
if ($params['t'] == 'widgets/widget_detail') {
// this is default template for this prefix, so don't add it to resulting url
$params['pass_template'] = false;
}
$mod_rewrite_helper =& $this->Application->recallObject('ModRewriteHelper');
/* @var $mod_rewrite_helper kModRewriteHelper */
$processed_params = $mod_rewrite_helper->getProcessedParams($prefix, $params, $keep_events);
if ($processed_params === false) {
return '';
}
$ret = Array ('', '');
if ($processed_params[$prefix . '_id'] > 0) {
// add id
$sql = 'SELECT Title
FROM ' . TABLE_PREFIX . 'Widgets
WHERE WidgetId = ' . $processed_params[$prefix . '_id'];
$ret[0] .= 'widgets/' . $this->Conn->GetOne($sql) . '/';
} elseif ($processed_params[$prefix . '_Page'] > 1) {
// add page, only when ID is missing
$ret[1] .= $processed_params[$prefix . '_Page'] . '/';
}
$ret[0] = rtrim($ret[0], '/');
$ret[1] = rtrim($ret[1], '/');
return array_map('mb_strtolower', $ret);
}
if ($rewrite_mode == REWRITE_MODE_PARSE) {
if ($url_parts[0] == 'widgets') {
$sql = 'SELECT WidgetId
FROM ' . TABLE_PREFIX . 'Widgets
WHERE Title = ' . $this->Conn->qstr($url_parts[1]);
$id = $this->Conn->GetOne($sql);
$to_parse = $url_parts;
if ($id > 0) {
// id found
$params[$prefix . '_id'] = $id;
$to_parse = array_slice($to_parse, 2); // cut off first two parts - "widgets/<widget+name>"
}
$template = implode('/', $to_parse);
if ($template) {
// let others guess what template is
return true;
}
// template missing -> set default
$params['t'] = 'widgets/widget_detail';
return false;
}
}
return true;
}
}
\ No newline at end of file
Index: branches/1.0.x/custom/units/widgets/widget_tp.php
===================================================================
--- branches/1.0.x/custom/units/widgets/widget_tp.php (revision 12300)
+++ branches/1.0.x/custom/units/widgets/widget_tp.php (revision 12301)
@@ -1,20 +1,22 @@
<?php
+ defined('FULL_PATH') or die('restricted access!');
+
/**
* Widgets Tag Processor (sample)
*
*/
class WidgetTagProcessor extends kDBTagProcessor {
/**
* Custom tag to output "Hello World!"
*
* @param Array $params
* @return string
*/
function NewTag($params)
{
return 'Hello world!';
}
}
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/sections_config.php
===================================================================
--- branches/1.0.x/custom/units/sections/sections_config.php (revision 12300)
+++ branches/1.0.x/custom/units/sections/sections_config.php (revision 12301)
@@ -1,87 +1,88 @@
<?php
/**
* Custom-sections prefix
*
* @author dmitrya
* @package Custom (Development Kit)
*/
- $config = Array (
+defined('FULL_PATH') or die('restricted access!');
+
+ $config = Array (
'Prefix' => 'custom-sections',
'ConfigPriority' => 2,
# Event handler class used for HOOKing to existing events (ie. )
'EventHandlerClass' => Array ('class' => 'CustomEventHandler', 'file' => 'custom_eh.php', 'build_event' => 'OnBuild'),
# Defined to draw new sections (if any) in left nav. tree, normally each unit has it's own Tag Processor
'TagProcessorClass' => Array ('class' => 'kDBTagProcessor', 'file' => '', 'build_event' => 'OnBuild'),
# Extend/override already existing classes (ie. Event Handlers, Tag Processors, Helpers)
'RegisterClasses' => Array (
# extend default User core/units/users/users_tag_processor.php / users_event_handler.php
// Array ('pseudo' => 'u_TagProcessor', 'class' => 'EUserTagProcessor', 'file' => 'e_user_tp.php'),
// Array ('pseudo' => 'u_EventHandler', 'class' => 'EUserEventHandler', 'file' => 'e_user_eh.php'),
# extend default Product classes /in-commerce/units/products/products_tag_processor.php / products_event_handler.php
// Array ('pseudo' => 'p_TagProcessor', 'class' => 'EProductTagProcessor', 'file' => 'e_product_tp.php'),
// Array ('pseudo' => 'p_EventHandler', 'class' => 'EProductEventHandler', 'file' => 'e_product_eh.php'),
# extend default Link /in-link/units/links/link_tag_processor.php / links_event_handler.php
// Array ('pseudo' => 'l_TagProcessor', 'class' => 'ELinkTagProcessor', 'file' => 'e_link_tp.php'),
// Array ('pseudo' => 'l_EventHandler', 'class' => 'ELinkEventHandler', 'file' => 'e_link_eh.php'),
),
# Replace/substiture any admin default templates with custom ones
'ReplacementTemplates' => Array (
# replace default image block with custom template
// 'incs/image_blocks' => 'custom/incs/image_blocks',
# replace default edit link template
// 'in-links/links/links_edit' => 'custom/links/links_edit',
# replace default edit category template
// 'categories/categories_edit' => 'custom/categories/categories_edit',
),
# Hooks to events that may call any other events
'Hooks' => Array (
# hook to category OnAfterConfigRead event called to customize category configuration settings
/*Array (
'Mode' => hAFTER,
'Conditional' => false,
'HookToPrefix' => 'c',
'HookToSpecial' => '*',
'HookToEvent' => Array ('OnAfterConfigRead'),
'DoPrefix' => '',
'DoSpecial' => '*',
'DoEvent' => 'OnModifyCategoriesConfig',
),*/
),
'PermSection' => Array ('main' => 'custom', 'email' => 'custom:configuration_email'),
# New sections in left navigation
'Sections' => Array (
/*'custom' => Array (
'parent' => 'in-portal:root',
'icon' => 'custom',
'label' => 'la_title_Custom',
'url' => Array ('t' => 'index', 'pass' => 'm'),
'permissions' => Array ('view'),
'priority' => 2.4,
'container' => true,
'type' => stTREE,
),*/
),
-
);
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/e_link_eh.php
===================================================================
--- branches/1.0.x/custom/units/sections/e_link_eh.php (revision 12300)
+++ branches/1.0.x/custom/units/sections/e_link_eh.php (revision 12301)
@@ -1,187 +1,188 @@
<?php
+ defined('FULL_PATH') or die('restricted access!');
+
/**
* Extends default LinksEventHandler class
*
*/
class ELinkEventHandler extends LinksEventHandler {
/**
* Allows to override standart permission mapping
*
*/
function mapPermissions()
{
parent::mapPermissions();
$permissions = Array (
# admin
'OnCustomEvent1' => Array ('self' => true),
# front
'OnCustomEvent2' => Array ('self' => true),
);
$this->permMapping = array_merge($this->permMapping, $permissions);
}
/**
* Permission exceptions
*
* @param kEvent $event
*/
function CheckPermission(&$event)
{
$skip_permissions_check_events = Array (
'OnAnotherCustomEvent',
);
if ( in_array($event->Name, $skip_permissions_check_events) ) {
return true;
}
return parent::CheckPermission($event);
}
/**
* Updates structure config
*
* @param kEvent $event
*/
function OnAfterConfigRead(&$event)
{
parent::OnAfterConfigRead($event);
# 1. Regular Fields from
$fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); #get regular fields
// $fields['Status']['default'] = 1; #add/edit configuration (make default = 1)
$this->Application->setUnitOption($event->Prefix, 'Fields', $fields); #save fields
# 2. Virtual Fields from /in-link/units/links/links_config.php
$virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); #get virtual fields
// $virtual_fields['UserName']['default'] = ''; #add/edit configuration
$this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); #save virtual fields
}
/**
* Sets custom query for the list
*
* @param kEvent $event
*/
function SetCustomQuery(&$event)
{
parent::SetCustomQuery($event);
$object =& $event->getObject();
/* @var $object kDBList */
# identifying event based on special and setting filter
if ( $event->Special == 'custom-special' ) {
// $object->addFilter('primary_filter', '%1$s.Status = ' . STATUS_DISABLED);
}
# identifying event based not admin condition and setting filter
if ( !$this->Application->IsAdmin() ) {
// $object->addFilter('status_filter', '%1$s.Status = ' . STATUS_ACTIVE);
}
}
/**
* Before new item created
*
* @param kEvent $event
*/
function OnBeforeItemCreate(&$event)
{
parent::OnBeforeItemCreate($event);
}
/**
* Before existing item updated
*
* @param kEvent $event
*/
function OnBeforeItemUpdate(&$event)
{
parent::OnBeforeItemUpdate($event);
}
/**
* Before item deleted
*
* @param kEvent $event
*/
function OnBeforeItemDelete(&$event)
{
parent::OnBeforeItemDelete($event);
}
/**
* After item loaded
*
* @param kEvent $event
*/
function OnBeforeItemLoad(&$event)
{
parent::OnBeforeItemLoad($event);
}
/**
* After new item created
*
* @param kEvent $event
*/
function OnAfterItemCreate(&$event)
{
parent::OnAfterItemCreate($event);
}
/**
* After existing item updated
*
* @param kEvent $event
*/
function OnAfterItemUpdate(&$event)
{
parent::OnAfterItemUpdate($event);
}
/**
* After item deleted
*
* @param kEvent $event
*/
function OnAfterItemDelete(&$event)
{
parent::OnAfterItemDelete($event);
}
/**
* After item loaded
*
* @param kEvent $event
*/
function OnAfterItemLoad(&$event)
{
parent::OnAfterItemLoad($event);
}
-
}
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/e_user_eh.php
===================================================================
--- branches/1.0.x/custom/units/sections/e_user_eh.php (revision 12300)
+++ branches/1.0.x/custom/units/sections/e_user_eh.php (revision 12301)
@@ -1,187 +1,188 @@
<?php
+ defined('FULL_PATH') or die('restricted access!');
+
/**
* Extends default UsersEventHandler class
*
*/
class EUserEventHandler extends UsersEventHandler {
/**
* Allows to override standart permission mapping
*
*/
function mapPermissions()
{
parent::mapPermissions();
$permissions = Array (
# admin
'OnCustomEvent1' => Array ('self' => true),
# front
'OnCustomEvent2' => Array ('self' => true),
);
$this->permMapping = array_merge($this->permMapping, $permissions);
}
/**
* Permission exceptions
*
* @param kEvent $event
*/
function CheckPermission(&$event)
{
$skip_permissions_check_events = Array (
'OnAnotherCustomEvent',
);
if ( in_array($event->Name, $skip_permissions_check_events) ) {
return true;
}
return parent::CheckPermission($event);
}
/**
* Updates structure config
*
* @param kEvent $event
*/
function OnAfterConfigRead(&$event)
{
parent::OnAfterConfigRead($event);
# 1. Regular Fields from /core/units/users/users_config.php
$fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); #get regular fields
// $fields['Status']['default'] = 1; #add/edit configuration (make default = 1)
$this->Application->setUnitOption($event->Prefix, 'Fields', $fields); #save regular fields
# 2. Virtual Fields from /core/units/users/users_config.php
$virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); #get virtual fields
// $virtual_fields['FullName']['default'] = ''; #add/edit configuration
$this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); #save virtual fields
}
/**
* Sets custom query for the list
*
* @param kEvent $event
*/
function SetCustomQuery(&$event)
{
parent::SetCustomQuery($event);
$object =& $event->getObject();
/* @var $object kDBList */
# identifying event based on special and setting filter
if ( $event->Special == 'custom-special' ) {
// $object->addFilter('primary_filter', '%1$s.Status = ' . STATUS_DISABLED);
}
# identifying event based not admin condition and setting filter
if ( !$this->Application->IsAdmin() ) {
// $object->addFilter('status_filter', '%1$s.Status = ' . STATUS_ACTIVE);
}
}
/**
* Before new item created
*
* @param kEvent $event
*/
function OnBeforeItemCreate(&$event)
{
parent::OnBeforeItemCreate($event);
}
/**
* Before existing item updated
*
* @param kEvent $event
*/
function OnBeforeItemUpdate(&$event)
{
parent::OnBeforeItemUpdate($event);
}
/**
* Before item deleted
*
* @param kEvent $event
*/
function OnBeforeItemDelete(&$event)
{
parent::OnBeforeItemDelete($event);
}
/**
* After item loaded
*
* @param kEvent $event
*/
function OnBeforeItemLoad(&$event)
{
parent::OnBeforeItemLoad($event);
}
/**
* After new item created
*
* @param kEvent $event
*/
function OnAfterItemCreate(&$event)
{
parent::OnAfterItemCreate($event);
}
/**
* After existing item updated
*
* @param kEvent $event
*/
function OnAfterItemUpdate(&$event)
{
parent::OnAfterItemUpdate($event);
}
/**
* After item deleted
*
* @param kEvent $event
*/
function OnAfterItemDelete(&$event)
{
parent::OnAfterItemDelete($event);
}
/**
* After item loaded
*
* @param kEvent $event
*/
function OnAfterItemLoad(&$event)
{
parent::OnAfterItemLoad($event);
}
-
}
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/e_product_eh.php
===================================================================
--- branches/1.0.x/custom/units/sections/e_product_eh.php (revision 12300)
+++ branches/1.0.x/custom/units/sections/e_product_eh.php (revision 12301)
@@ -1,188 +1,189 @@
<?php
+ defined('FULL_PATH') or die('restricted access!');
+
/**
* Extends/overrides methods of default ProductsEventHandler class
*
*/
class EProductEventHandler extends ProductsEventHandler {
/**
* Allows to override standart permission mapping
*
*/
function mapPermissions()
{
parent::mapPermissions();
$permissions = Array (
# admin
'OnCustomEvent1' => Array ('self' => true),
# front
'OnCustomEvent2' => Array ('self' => true),
);
$this->permMapping = array_merge($this->permMapping, $permissions);
}
/**
* Permission exceptions
*
* @param kEvent $event
*/
function CheckPermission(&$event)
{
$skip_permissions_check_events = Array (
'OnAnotherCustomEvent',
);
if ( in_array($event->Name, $skip_permissions_check_events) ) {
return true;
}
return parent::CheckPermission($event);
}
/**
* Updates structure config
*
* @param kEvent $event
*/
function OnAfterConfigRead(&$event)
{
parent::OnAfterConfigRead($event);
# 1. Regular Fields from /in-commerce/units/products/products_config.php
$fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); #get regular fields
// $fields['Status']['default'] = 1; #add/edit field configuration (make default = 1)
$this->Application->setUnitOption($event->Prefix, 'Fields', $fields); #save regular fields
# 2. Virtual Fields from /in-commerce/units/products/products_config.php
$virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); #get virtual fields
// $virtual_fields['Qty']['default'] = 1; #add/edit field configuration
$this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); # save virtual fields
}
/**
* Sets custom query for the list
*
* @param kEvent $event
*/
function SetCustomQuery(&$event)
{
parent::SetCustomQuery($event);
$object =& $event->getObject();
/* @var $object kDBList */
# identifying event based on special and setting filter
if ( $event->Special == 'custom-special' ) {
// $object->addFilter('primary_filter', '%1$s.Status = '.STATUS_DISABLED);
}
# identifying event based not admin condition and setting filter
if ( !$this->Application->IsAdmin() ) {
// $object->addFilter('status_filter', '%1$s.Status = '.STATUS_ACTIVE);
}
}
/**
* Before new item created
*
* @param kEvent $event
*/
function OnBeforeItemCreate(&$event)
{
parent::OnBeforeItemCreate($event);
}
/**
* Before existing item updated
*
* @param kEvent $event
*/
function OnBeforeItemUpdate(&$event)
{
parent::OnBeforeItemUpdate($event);
}
/**
* Before item deleted
*
* @param kEvent $event
*/
function OnBeforeItemDelete(&$event)
{
parent::OnBeforeItemDelete($event);
}
/**
* After item loaded
*
* @param kEvent $event
*/
function OnBeforeItemLoad(&$event)
{
parent::OnBeforeItemLoad($event);
}
/**
* After new item created
*
* @param kEvent $event
*/
function OnAfterItemCreate(&$event)
{
parent::OnAfterItemCreate($event);
}
/**
* After existing item updated
*
* @param kEvent $event
*/
function OnAfterItemUpdate(&$event)
{
parent::OnAfterItemUpdate($event);
}
/**
* After item deleted
*
* @param kEvent $event
*/
function OnAfterItemDelete(&$event)
{
parent::OnAfterItemDelete($event);
}
/**
* After item loaded
*
* @param kEvent $event
*/
function OnAfterItemLoad(&$event)
{
parent::OnAfterItemLoad($event);
}
-
}
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/e_link_tp.php
===================================================================
--- branches/1.0.x/custom/units/sections/e_link_tp.php (revision 12300)
+++ branches/1.0.x/custom/units/sections/e_link_tp.php (revision 12301)
@@ -1,55 +1,56 @@
<?php
+ defined('FULL_PATH') or die('restricted access!');
+
/**
* Extends default LinkTagProcessor class
*
*/
class ELinkTagProcessor extends LinkTagProcessor {
/**
* Adding custom processing to existing Field method
*
* @param Array $params
* @return string
*/
function FormattedField($params)
{
// get from parent
$o = parent::Field($params);
// do some custom stuff here
$o = trim($o);
return $o;
}
/**
* Variantion of overriding Field method for Link
*
* @param Array $params
* @return string
*/
function Field($params)
{
$object =& $this->getObject($params);
/* @var $object kDBItem */
$o = '';
// do some custom stuff here
if ( $object->isLoaded() ) {
$o = $object->GetField($this->SelectParam($params, 'name,field') ); #field Formatter applied
// $o = $object->GetDBField($this->SelectParam($params, 'name,field') ); #field Formatter NOT applied
}
// in case if no data found
if ($o != '') {
$this->Application->Parser->DataExists = true;
}
return $o;
}
-
}
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/e_user_tp.php
===================================================================
--- branches/1.0.x/custom/units/sections/e_user_tp.php (revision 12300)
+++ branches/1.0.x/custom/units/sections/e_user_tp.php (revision 12301)
@@ -1,38 +1,38 @@
<?php
+ defined('FULL_PATH') or die('restricted access!');
+
/**
* Extends default UsersTagProcessor class
*
*/
class EUserTagProcessor extends UsersTagProcessor {
/**
* Returns formated user address
*
* @param Array
* @return string
*/
function PrintFormattedUserAddress($param)
{
$object =& $event->getObject();
/* @var $object kDBItem */
$ret = '';
$newline = '<br/>';
if ($object->isLoaded()) {
$ret = $object->GetField('Street') ? $object->GetField('Street') . $newline : '';
$ret .= $object->GetField('Street2') ? $object->GetField('Street2') . $newline : '';
$ret .= $object->GetField('City') ? $object->GetField('City') . ', ' : '';
$ret .= $object->GetField('State') ? $object->GetField('State') . ' ' : '';
$ret .= $object->GetField('Zip') ? $object->GetField('Zip') . $newline : '';
$ret .= $object->GetField('Country');
}
return $ret;
}
-
-
}
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/custom_eh.php
===================================================================
--- branches/1.0.x/custom/units/sections/custom_eh.php (revision 12300)
+++ branches/1.0.x/custom/units/sections/custom_eh.php (revision 12301)
@@ -1,37 +1,39 @@
<?php
+ defined('FULL_PATH') or die('restricted access!');
+
/**
* Custom event handler class
*
*/
class CustomEventHandler extends kEventHandler {
/**
* Connection to database
*
* @var kDBConnection
* @access public
*/
var $Conn;
function CustomEventHandler()
{
parent::kEventHandler();
$this->Conn =& $this->Application->GetADODBConnection();
}
/**
* [HOOK] Modify config stored in "categories_config.php" without extending CategoriesEventHandler class
*
* @param kEvent $event
*/
function OnModifyCategoriesConfig(&$event)
{
# get Fields configuration from /core/units/categories/categories_config.php
$fields = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'Fields');
# set configuration fields
$this->Application->setUnitOption($event->MasterEvent->Prefix, 'Fields', $fields);
}
}
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/e_product_tp.php
===================================================================
--- branches/1.0.x/custom/units/sections/e_product_tp.php (revision 12300)
+++ branches/1.0.x/custom/units/sections/e_product_tp.php (revision 12301)
@@ -1,26 +1,28 @@
<?php
+ defined('FULL_PATH') or die('restricted access!');
+
/**
* Extends/overrides methods of default ProductsTagProcessor class
*
*/
class EProductTagProcessor extends ProductsTagProcessor {
/**
* Adding custom processing to existing Field method
*
* @param Array $params
* @return string
*/
function Field($params)
{
$o = parent::Field($params);
// do some custom stuff here
$o = trim($o);
return $o;
}
}
\ No newline at end of file

Event Timeline