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