Index: releases/1.2.1/units/helpers/sample_helper.php =================================================================== --- releases/1.2.1/units/helpers/sample_helper.php (revision 0) +++ releases/1.2.1/units/helpers/sample_helper.php (revision 16085) @@ -0,0 +1,14 @@ + 'custom-helpers', + + 'EventHandlerClass' => Array ('class' => 'kEventHandler', 'file' => '', 'build_event' => 'OnBuild'), + + 'RegisterClasses' => Array ( + Array ('pseudo' => 'SampleHelper', 'class' => 'SampleHelper', 'file' => 'sample_helper.php', 'build_event' => ''), + ), + ); \ No newline at end of file Property changes on: releases/1.2.1/units/helpers/helpers_config.php ___________________________________________________________________ Added: cvs2svn:cvs-rev + 1.1.2.1 Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/units/widgets/widgets_config.php =================================================================== --- releases/1.2.1/units/widgets/widgets_config.php (revision 0) +++ releases/1.2.1/units/widgets/widgets_config.php (revision 16085) @@ -0,0 +1,225 @@ + '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 => 'PerPage', + 4 => 'event', + 5 => 'mode', + ), + + // in case, when one method does everything + 'RewriteListener' => 'WidgetRewriteListener', + + // in case, when building and parsing is done by separate methods +// 'RewriteListener' => Array ('WidgetRewriteBuilder', 'WidgetRewriteParser'), + + '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 +*/ + + // used to build editing links in admin grids + 'AdminTemplatePath' => 'widgets', + 'AdminTemplatePrefix' => 'widget_', + + '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', + 'label' => 'la_tab_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'), + ) + ), + + 'CalculatedFields' => array( + '' => array( + 'VirtualActionField' => '%1$s.WidgetId', + ) + ), + + 'VirtualFields' => Array ( + 'VirtualActionField' => Array ('type' => 'string', 'default' => ''), + ), + + 'Fields' => Array ( + 'WidgetId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), + 'Title' => Array ( + 'type' => 'string', 'max_len' => 255, + 'required' => 1, 'default' => '', 'not_null' => 1, + ), + '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#', + ), + '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;*.jpeg;*.gif;*.png;*.bmp', 'files_description' => '!la_hint_ImageFiles!', + 'upload_dir' => '/system/user_files/', // relative to project's home + 'as_image' => true, 'thumb_format' => 'resize:100x100', + '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) + 'filename_prefix' => '', + 'filename_suffix' => '', + 'storage_engine' => StorageEngine::HASH, + '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' => 'column:la_fld_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter'), + 'Title' => Array ('title' => 'column:la_fld_Name', 'data_block' => 'grid_custom_td'), + 'Image' => Array ('data_block' => 'grid_image_td', 'filter_block' => 'grid_empty_filter', 'width' => 120), + 'Type' => Array ('filter_block' => 'grid_options_filter'), + 'Status' => Array ('filter_block' => 'grid_options_filter'), + 'Good' => Array ('filter_block' => 'grid_like_filter'), + 'Qty' => Array ('header_block' => 'grid_column_title_no_sorting', 'filter_block' => 'grid_range_filter'), + 'Email' => Array ('filter_block' => 'grid_like_filter'), + 'Phone' => Array ('filter_block' => 'grid_like_filter'), + 'CreatedOn' => Array ('filter_block' => 'grid_date_range_filter'), + 'Description' => Array ('filter_block' => 'grid_like_filter'), + 'VirtualActionField' => Array ('title' => 'column:la_fld_Action', 'data_block' => 'grid_delete_td'), + ), + ), + ), + + /*'ConfigMapping' => Array ( + 'PerPage' => 'Perpage_Widgets', + 'ShortListPerPage' => 'Perpage_Widgets_Short', + ),*/ +); \ No newline at end of file Property changes on: releases/1.2.1/units/widgets/widgets_config.php ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/units/widgets/widget_eh.php =================================================================== --- releases/1.2.1/units/widgets/widget_eh.php (revision 0) +++ releases/1.2.1/units/widgets/widget_eh.php (revision 16085) @@ -0,0 +1,319 @@ + Array ('self' => true), + 'OnCustomEvent' => Array ('self' => true), + ); + + $this->permMapping = array_merge($this->permMapping, $permissions); + } + + /** + * Checks user permission to execute given $event + * + * @param kEvent $event + * @return bool + * @access public + */ + public function CheckPermission(kEvent $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 */ + + } + + /** + * Apply any custom changes to list's sql query + * + * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() + */ + protected function SetCustomQuery(kEvent $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); + } + } + + /** + * Occurs before creating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemCreate(kEvent $event) + { + parent::OnBeforeItemCreate($event); + + } + + /** + * Occurs before updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemUpdate(kEvent $event) + { + parent::OnBeforeItemUpdate($event); + + } + + /** + * Occurs before deleting item, id of item being + * deleted is stored as 'id' event param + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemDelete(kEvent $event) + { + parent::OnBeforeItemDelete($event); + + + } + + /** + * Occurs before loading item, 'id' parameter + * allows to get id of item being loaded + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemLoad(kEvent $event) + { + parent::OnBeforeItemLoad($event); + + + } + + + /** + * Occurs after creating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemCreate(kEvent $event) + { + parent::OnAfterItemCreate($event); + + + } + + /** + * Occurs after updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemUpdate(kEvent $event) + { + parent::OnAfterItemUpdate($event); + + + } + + /** + * Occurs after deleting item, id of deleted item + * is stored as 'id' param of event + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemDelete(kEvent $event) + { + parent::OnAfterItemDelete($event); + + + } + + /** + * Loads user images + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemLoad(kEvent $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) { + return $this->WidgetRewriteBuilder($rewrite_mode, $prefix, $params, $url_parts, $keep_events); + } + + if ($rewrite_mode == REWRITE_MODE_PARSE) { + return $this->WidgetRewriteParser($rewrite_mode, $prefix, $params, $url_parts); + } + + return true; + } + + /** + * 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 WidgetRewriteBuilder($rewrite_mode = REWRITE_MODE_BUILD, $prefix, &$params, &$url_parts, $keep_events = false) + { + $template = $this->Application->getPhysicalTemplate($params['t']); + + if ( $template == 'widgets/widget_detail' ) { + // this is default template for this prefix, so don't add it to resulting url + $params['pass_template'] = false; + } + + $rewrite_processor = $this->Application->recallObject('kRewriteUrlProcessor'); + /* @var $rewrite_processor kRewriteUrlProcessor */ + + $processed_params = $rewrite_processor->getProcessedParams($prefix, $params, $keep_events); + + if ( $processed_params === false ) { + return ''; + } + + $ret = Array ('', ''); + + $filename = isset($params[$prefix . '_filename']) ? $params[$prefix . '_filename'] : $this->Application->GetVar($prefix . '_filename'); + unset($params[$prefix . '_filename']); + + if ( $processed_params[$prefix . '_id'] > 0 ) { + // add id + if ( !$filename ) { + $sql = 'SELECT Title + FROM ' . TABLE_PREFIX . 'Widgets + WHERE WidgetId = ' . $processed_params[$prefix . '_id']; + $filename = $this->Conn->GetOne($sql); + } + + $ret[0] .= 'widgets/' . $filename . '/'; + } + 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); + } + + /** + * 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). + * @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 WidgetRewriteParser($rewrite_mode = REWRITE_MODE_BUILD, $prefix, &$params, &$url_parts) + { + $widget_id = 0; + $widget_filename = ''; + $widget_index = array_search('widgets', $url_parts); + + if ( $widget_index !== false && isset($url_parts[$widget_index + 1]) ) { + $widget_filename = $url_parts[$widget_index + 1]; + } + + $rewrite_processor = $this->Application->recallObject('kRewriteUrlProcessor'); + /* @var $rewrite_processor kRewriteUrlProcessor */ + + if ( $widget_filename ) { + $sql = 'SELECT WidgetId + FROM ' . TABLE_PREFIX . 'Widgets + WHERE Title = ' . $this->Conn->qstr($widget_filename); + $widget_id = $this->Conn->GetOne($sql); + + if ( $widget_id ) { + $params[$this->Prefix . '_id'] = $widget_id; + $params[$this->Prefix . '_filename'] = $widget_filename; + $params['pass'][] = $this->Prefix; + + $rewrite_processor->partParsed('widgets'); + $rewrite_processor->partParsed($widget_filename); + } + } + + if ( $widget_id && !$rewrite_processor->moreToParse() ) { + // widget was last url part - use default template + $params['t'] = 'widgets/widget_detail'; + } + + return true; + } +} \ No newline at end of file Property changes on: releases/1.2.1/units/widgets/widget_eh.php ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/units/widgets/widget_tp.php =================================================================== --- releases/1.2.1/units/widgets/widget_tp.php (revision 0) +++ releases/1.2.1/units/widgets/widget_tp.php (revision 16085) @@ -0,0 +1,66 @@ +getObject($params); + /* @var $object kDBList */ + + $edit_template = $this->Application->getUnitOption($this->Prefix, 'AdminTemplatePath') . '/' . $this->Application->getUnitOption($this->Prefix, 'AdminTemplatePrefix') . 'edit'; + + $url_params = Array ( + 'm_opener' => 'd', + $this->Prefix.'_mode' => 't', + $this->Prefix.'_event' => 'OnEdit', + $this->Prefix.'_id' => $object->GetID(), + 'pass' => 'all,'.$this->Prefix, + 'no_pass_through' => 1, + ); + + return $this->Application->HREF($edit_template, '', $url_params); + } + + + /** + * Creates link to an item including only it's id + * + * @param Array $params + * @return string + * @access protected + */ + protected function ItemLink($params) + { + $object = $this->getObject($params); + /* @var $object kDBItem */ + + $params['pass'] = 'm,' . $this->Prefix; + $params[$object->Prefix . '_id'] = $object->GetID(); + $params[$object->Prefix . '_filename'] = $object->GetDBField('Title'); + + return $this->Application->ProcessParsedTag('m', 'Link', $params); + } + +} \ No newline at end of file Property changes on: releases/1.2.1/units/widgets/widget_tp.php ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/units/sections/links/e_link_eh.php =================================================================== --- releases/1.2.1/units/sections/links/e_link_eh.php (revision 0) +++ releases/1.2.1/units/sections/links/e_link_eh.php (revision 16085) @@ -0,0 +1,215 @@ + Array ('self' => true), + 'OnCustomEvent2' => Array ('self' => true), + ); + + $this->permMapping = array_merge($this->permMapping, $permissions); + } + + /** + * Checks user permission to execute given $event + * + * @param kEvent $event + * @return bool + * @access public + */ + public function CheckPermission(kEvent $event) + { + $skip_permissions_check_events = Array ( + 'OnAnotherCustomEvent', + ); + + if ( in_array($event->Name, $skip_permissions_check_events) ) { + return true; + } + + return parent::CheckPermission($event); + } + + /** + * Occurs, when config was parsed, allows to change config data dynamically + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterConfigRead(kEvent $event) + { + parent::OnAfterConfigRead($event); + + # 1. Regular Fields from /in-link/units/links/links_config.php + $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); #get regular fields +// $fields['Status']['default'] = STATUS_ACTIVE; #add/edit configuration (make default = STATUS_ACTIVE) + $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 + } + + /** + * Apply any custom changes to list's sql query + * + * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() + */ + protected function SetCustomQuery(kEvent $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->isAdminUser ) { +// $object->addFilter('status_filter', '%1$s.Status = ' . STATUS_ACTIVE); + } + } + + /** + * Makes reciprocal check on link, when it is created + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemCreate(kEvent $event) + { + parent::OnBeforeItemCreate($event); + + + } + + /** + * Makes reciprocal check on link, when it is updated + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemUpdate(kEvent $event) + { + parent::OnBeforeItemUpdate($event); + + + } + + /** + * Occurs before deleting item, id of item being + * deleted is stored as 'id' event param + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemDelete(kEvent $event) + { + parent::OnBeforeItemDelete($event); + + + } + + /** + * Occurs before loading item, 'id' parameter + * allows to get id of item being loaded + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemLoad(kEvent $event) + { + parent::OnBeforeItemLoad($event); + + + } + + + /** + * Sets values for import process + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemCreate(kEvent $event) + { + parent::OnAfterItemCreate($event); + + + } + + /** + * Occurs after updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemUpdate(kEvent $event) + { + parent::OnAfterItemUpdate($event); + + + } + + /** + * Occurs after deleting item, id of deleted item + * is stored as 'id' param of event + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemDelete(kEvent $event) + { + parent::OnAfterItemDelete($event); + + + } + + /** + * Occurs after loading item, 'id' parameter + * allows to get id of item that was loaded + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemLoad(kEvent $event) + { + parent::OnAfterItemLoad($event); + + + } + + } \ No newline at end of file Property changes on: releases/1.2.1/units/sections/links/e_link_eh.php ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/units/sections/links/e_link_tp.php =================================================================== --- releases/1.2.1/units/sections/links/e_link_tp.php (revision 0) +++ releases/1.2.1/units/sections/links/e_link_tp.php (revision 16085) @@ -0,0 +1,28 @@ + Array ('self' => true), + 'OnCustomEvent2' => Array ('self' => true), + ); + + $this->permMapping = array_merge($this->permMapping, $permissions); + } + + /** + * Checks user permission to execute given $event + * + * @param kEvent $event + * @return bool + * @access public + */ + public function CheckPermission(kEvent $event) + { + $skip_permissions_check_events = Array ( + 'OnAnotherCustomEvent', + ); + + if ( in_array($event->Name, $skip_permissions_check_events) ) { + return true; + } + + return parent::CheckPermission($event); + } + + /** + * Occurs, when config was parsed, allows to change config data dynamically + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterConfigRead(kEvent $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 + } + + /** + * Apply any custom changes to list's sql query + * + * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() + */ + protected function SetCustomQuery(kEvent $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->isAdminUser ) { +// $object->addFilter('status_filter', '%1$s.Status = ' . STATUS_ACTIVE); + } + } + + /** + * Set's new unique resource id to user + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemCreate(kEvent $event) + { + parent::OnBeforeItemCreate($event); + + + } + + /** + * Checks state against country + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemUpdate(kEvent $event) + { + parent::OnBeforeItemUpdate($event); + + + } + + /** + * Occurs before deleting item, id of item being + * deleted is stored as 'id' event param + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemDelete(kEvent $event) + { + parent::OnBeforeItemDelete($event); + + + } + + /** + * Occurs before loading item, 'id' parameter + * allows to get id of item being loaded + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemLoad(kEvent $event) + { + parent::OnBeforeItemLoad($event); + + + } + + + /** + * Redirects user after successful registration to confirmation template (on Front only) + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemCreate(kEvent $event) + { + parent::OnAfterItemCreate($event); + + + } + + /** + * Occurs after updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemUpdate(kEvent $event) + { + parent::OnAfterItemUpdate($event); + + + } + + /** + * Occurs after deleting item, id of deleted item + * is stored as 'id' param of event + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemDelete(kEvent $event) + { + parent::OnAfterItemDelete($event); + + + } + + /** + * Loads user images + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemLoad(kEvent $event) + { + parent::OnAfterItemLoad($event); + + + } + + } \ No newline at end of file Property changes on: releases/1.2.1/units/sections/users/e_user_eh.php ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/units/sections/users/e_user_tp.php =================================================================== --- releases/1.2.1/units/sections/users/e_user_tp.php (revision 0) +++ releases/1.2.1/units/sections/users/e_user_tp.php (revision 16085) @@ -0,0 +1,37 @@ +getObject($params); + /* @var $object kDBItem */ + + $ret = ''; + $newline = '
'; + + 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 Property changes on: releases/1.2.1/units/sections/users/e_user_tp.php ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/units/sections/sections_config.php =================================================================== --- releases/1.2.1/units/sections/sections_config.php (revision 0) +++ releases/1.2.1/units/sections/sections_config.php (revision 16085) @@ -0,0 +1,130 @@ + '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' => 'users/e_user_tp.php'), +// Array ('pseudo' => 'u_EventHandler', 'class' => 'EUserEventHandler', 'file' => 'users/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' => 'products/e_product_tp.php'), +// Array ('pseudo' => 'p_EventHandler', 'class' => 'EProductEventHandler', 'file' => 'products/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' => 'links/e_link_tp.php'), +// Array ('pseudo' => 'l_EventHandler', 'class' => 'ELinkEventHandler', 'file' => 'links/e_link_eh.php'), + + # extend default Category /core/units/categories/categories_tag_processor.php / categories_event_handler.php +// Array ('pseudo' => 'c_TagProcessor', 'class' => 'ECategoryTagProcessor', 'file' => 'categories/e_category_tp.php'), +// Array ('pseudo' => 'c_EventHandler', 'class' => 'ECategoryEventHandler', 'file' => 'categories/e_category_eh.php'), + + # extend default Article /in-news/units/articles/article_tag_processor.php / articles_event_handler.php +// Array ('pseudo' => 'n_TagProcessor', 'class' => 'EArticleTagProcessor', 'file' => 'articles/e_article_tp.php'), +// Array ('pseudo' => 'n_EventHandler', 'class' => 'EArticleEventHandler', 'file' => 'articles/e_article_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 OnAfterCacheRebuild event of "adm" prefix (tiggered when unit cache is rebuild and stored) called + # to override cloned sub-items (ie. register extended classes for cloned unit configs such as n-img, n-rev) + /*Array ( + 'Mode' => hAFTER, + 'Conditional' => false, + 'HookToPrefix' => 'adm', + 'HookToSpecial' => '*', + 'HookToEvent' => Array ('OnAfterCacheRebuild'), + 'DoPrefix' => '', + 'DoSpecial' => '*', + 'DoEvent' => 'OnOverrideClonedSubItems', + ),*/ + + # 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' => 'conf_custom', + 'label' => 'la_title_Custom', + 'url' => Array ('t' => 'index', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 2.4, + 'container' => true, + 'show_mode' => smDEBUG, + 'type' => stTREE, + ), + + 'custom:setting_folder' => Array ( + 'parent' => 'in-portal:system', + 'icon' => 'conf_custom', + 'label' => 'la_title_Custom', + 'use_parent_header' => 1, + 'url' => Array ('t' => 'index', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 3.6, + 'container' => true, + 'show_mode' => smDEBUG, + 'type' => stTREE, + ), + + 'custom:configuration_custom' => Array ( + 'parent' => 'custom:setting_folder', + 'icon' => 'custom', + 'label' => 'la_tab_ConfigOutput', + 'url' => Array('t' => 'config/config_universal', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array('view', 'edit'), + 'priority' => 50, + 'type' => stTREE, + ), + ), + + ); \ No newline at end of file Property changes on: releases/1.2.1/units/sections/sections_config.php ___________________________________________________________________ Added: cvs2svn:cvs-rev + 1.1.2.4 Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/units/sections/products/e_product_eh.php =================================================================== --- releases/1.2.1/units/sections/products/e_product_eh.php (revision 0) +++ releases/1.2.1/units/sections/products/e_product_eh.php (revision 16085) @@ -0,0 +1,215 @@ + Array ('self' => true), + 'OnCustomEvent2' => Array ('self' => true), + ); + + $this->permMapping = array_merge($this->permMapping, $permissions); + } + + /** + * Checks user permission to execute given $event + * + * @param kEvent $event + * @return bool + * @access public + */ + public function CheckPermission(kEvent $event) + { + $skip_permissions_check_events = Array ( + 'OnAnotherCustomEvent', + ); + + if ( in_array($event->Name, $skip_permissions_check_events) ) { + return true; + } + + return parent::CheckPermission($event); + } + + /** + * Occurs, when config was parsed, allows to change config data dynamically + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterConfigRead(kEvent $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'] = STATUS_ACTIVE; #add/edit field configuration (make default = STATUS_ACTIVE) + $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 + } + + /** + * Apply any custom changes to list's sql query + * + * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() + */ + protected function SetCustomQuery(kEvent $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->isAdminUser ) { +// $object->addFilter('status_filter', '%1$s.Status = '.STATUS_ACTIVE); + } + } + + /** + * Sets default processing data for subscriptions + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemCreate(kEvent $event) + { + parent::OnBeforeItemCreate($event); + + + } + + /** + * Moves item to preferred category, updates item hits + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemUpdate(kEvent $event) + { + parent::OnBeforeItemUpdate($event); + + + } + + /** + * Occurs before deleting item, id of item being + * deleted is stored as 'id' event param + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemDelete(kEvent $event) + { + parent::OnBeforeItemDelete($event); + + + } + + /** + * Occurs before loading item, 'id' parameter + * allows to get id of item being loaded + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemLoad(kEvent $event) + { + parent::OnBeforeItemLoad($event); + + + } + + /** + * Set new price to ProductsPricing + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemCreate(kEvent $event) + { + parent::OnAfterItemCreate($event); + + + } + + /** + * Occurs after updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemUpdate(kEvent $event) + { + parent::OnAfterItemUpdate($event); + + + } + + /** + * Occurs after deleting item, id of deleted item + * is stored as 'id' param of event + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemDelete(kEvent $event) + { + parent::OnAfterItemDelete($event); + + + } + + /** + * Occurs after loading item, 'id' parameter + * allows to get id of item that was loaded + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemLoad(kEvent $event) + { + parent::OnAfterItemLoad($event); + + + } + + } \ No newline at end of file Property changes on: releases/1.2.1/units/sections/products/e_product_eh.php ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/units/sections/products/e_product_tp.php =================================================================== --- releases/1.2.1/units/sections/products/e_product_tp.php (revision 0) +++ releases/1.2.1/units/sections/products/e_product_tp.php (revision 16085) @@ -0,0 +1,28 @@ +Application->getUnitOption($event->Prefix, 'Fields'); +// $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); + + // 2. calculated fields +// $calculated_fields = $this->Application->getUnitOption($event->Prefix, 'CalculatedFields'); +// $this->Application->setUnitOption($event->Prefix, 'CalculatedFields', $calculated_fields); + } + + /** + * Prefills all fields on front-end + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemCreate(kEvent $event) + { + parent::OnBeforeItemCreate($event); + + + } + + /** + * Sets correct rating value + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemUpdate(kEvent $event) + { + parent::OnBeforeItemUpdate($event); + + + } + + /** + * Occurs before deleting item, id of item being + * deleted is stored as 'id' event param + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemDelete(kEvent $event) + { + parent::OnBeforeItemDelete($event); + + + } + + /** + * Occurs before loading item, 'id' parameter + * allows to get id of item being loaded + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemLoad(kEvent $event) + { + parent::OnBeforeItemLoad($event); + + + } + + + /** + * Updates item review counter + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemCreate(kEvent $event) + { + parent::OnAfterItemCreate($event); + + + } + + /** + * Occurs after updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemUpdate(kEvent $event) + { + parent::OnAfterItemUpdate($event); + + + } + + /** + * Occurs after deleting item, id of deleted item + * is stored as 'id' param of event + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemDelete(kEvent $event) + { + parent::OnAfterItemDelete($event); + + + } + + /** + * Occurs after loading item, 'id' parameter + * allows to get id of item that was loaded + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemLoad(kEvent $event) + { + parent::OnAfterItemLoad($event); + + + } + +} Property changes on: releases/1.2.1/units/sections/reviews/e_review_eh.php ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/units/sections/categories/e_category_eh.php =================================================================== --- releases/1.2.1/units/sections/categories/e_category_eh.php (revision 0) +++ releases/1.2.1/units/sections/categories/e_category_eh.php (revision 16085) @@ -0,0 +1,213 @@ + Array ('self' => true), + 'OnCustomEvent2' => Array ('self' => true), + ); + + $this->permMapping = array_merge($this->permMapping, $permissions); + } + + /** + * Checks user permission to execute given $event + * + * @param kEvent $event + * @return bool + * @access public + */ + public function CheckPermission(kEvent $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 + * @return void + * @access protected + */ + protected function OnAfterConfigRead(kEvent $event) + { + parent::OnAfterConfigRead($event); + + # 1. Regular Fields from /core/units/categories/categories_config.php + $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); #get regular fields +// $fields['Status']['default'] = STATUS_ACTIVE; #add/edit configuration (make default = STATUS_ACTIVE) + $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); #save fields + + # 2. Virtual Fields from /core/units/categories/categories_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 + } + + /** + * Apply any custom changes to list's sql query + * + * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() + */ + protected function SetCustomQuery(kEvent $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->isAdminUser ) { +// $object->addFilter('status_filter', '%1$s.Status = ' . STATUS_ACTIVE); + } + } + + /** + * Sets correct status for new categories created on front-end + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemCreate(kEvent $event) + { + parent::OnBeforeItemCreate($event); + + + } + + /** + * Sets correct status for new categories created on front-end + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemUpdate(kEvent $event) + { + parent::OnBeforeItemUpdate($event); + + + } + + /** + * Occurs before deleting item, id of item being + * deleted is stored as 'id' event param + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemDelete(kEvent $event) + { + parent::OnBeforeItemDelete($event); + + + } + + /** + * Occurs before loading item, 'id' parameter + * allows to get id of item being loaded + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemLoad(kEvent $event) + { + parent::OnBeforeItemLoad($event); + + + } + + /** + * Occurs after creating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemCreate(kEvent $event) + { + parent::OnAfterItemCreate($event); + + + } + + /** + * Occurs after updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemUpdate(kEvent $event) + { + parent::OnAfterItemUpdate($event); + + + } + + /** + * Occurs after deleting item, id of deleted item + * is stored as 'id' param of event + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemDelete(kEvent $event) + { + parent::OnAfterItemDelete($event); + + + } + + /** + * Removes this item and it's children (recursive) from structure dropdown + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemLoad(kEvent $event) + { + parent::OnAfterItemLoad($event); + + + } + + } Property changes on: releases/1.2.1/units/sections/categories/e_category_eh.php ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/units/sections/categories/e_category_tp.php =================================================================== --- releases/1.2.1/units/sections/categories/e_category_tp.php (revision 0) +++ releases/1.2.1/units/sections/categories/e_category_tp.php (revision 16085) @@ -0,0 +1,28 @@ + Array ('self' => true), + 'OnCustomEvent2' => Array ('self' => true), + ); + + $this->permMapping = array_merge($this->permMapping, $permissions); + } + + /** + * Checks user permission to execute given $event + * + * @param kEvent $event + * @return bool + * @access public + */ + public function CheckPermission(kEvent $event) + { + $skip_permissions_check_events = Array ( + 'OnAnotherCustomEvent', + ); + + if ( in_array($event->Name, $skip_permissions_check_events) ) { + return true; + } + + return parent::CheckPermission($event); + } + + /** + * Occurs, when config was parsed, allows to change config data dynamically + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterConfigRead(kEvent $event) + { + parent::OnAfterConfigRead($event); + + # 1. Regular Fields from /in-news/units/articles/articles_config.php + $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); #get regular fields +// $fields['Status']['default'] = STATUS_ACTIVE; #add/edit configuration (make default = STATUS_ACTIVE) + $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); #save fields + + # 2. Virtual Fields from /in-news/units/articles/articles_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 + } + + /** + * Filters out archived articles + * + * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() + */ + protected function SetCustomQuery(kEvent $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->isAdminUser ) { +// $object->addFilter('status_filter', '%1$s.Status = ' . STATUS_ACTIVE); + } + } + + /** + * Create missing excerpt + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemCreate(kEvent $event) + { + parent::OnBeforeItemCreate($event); + + + } + + /** + * Create missing excerpt + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemUpdate(kEvent $event) + { + parent::OnBeforeItemUpdate($event); + + + } + + /** + * Occurs before deleting item, id of item being + * deleted is stored as 'id' event param + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemDelete(kEvent $event) + { + parent::OnBeforeItemDelete($event); + + + } + + /** + * Occurs before loading item, 'id' parameter + * allows to get id of item being loaded + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemLoad(kEvent $event) + { + parent::OnBeforeItemLoad($event); + + + } + + /** + * Sets values for import process + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemCreate(kEvent $event) + { + parent::OnAfterItemCreate($event); + + + } + + /** + * Occurs after updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemUpdate(kEvent $event) + { + parent::OnAfterItemUpdate($event); + + + } + + /** + * Occurs after deleting item, id of deleted item + * is stored as 'id' param of event + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemDelete(kEvent $event) + { + parent::OnAfterItemDelete($event); + + + } + + /** + * Occurs after loading item, 'id' parameter + * allows to get id of item that was loaded + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemLoad(kEvent $event) + { + parent::OnAfterItemLoad($event); + + + } + + } Property changes on: releases/1.2.1/units/sections/articles/e_article_eh.php ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/units/sections/custom_eh.php =================================================================== --- releases/1.2.1/units/sections/custom_eh.php (revision 0) +++ releases/1.2.1/units/sections/custom_eh.php (revision 16085) @@ -0,0 +1,36 @@ +Application->registerClass('EReviewEventHandler', dirname(__FILE__) . '/reviews/e_review_eh.php', 'n-rev_EventHandler'); + } + + /** + * [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 Property changes on: releases/1.2.1/units/sections/custom_eh.php ___________________________________________________________________ Added: cvs2svn:cvs-rev + 1.1.2.1 Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/units/.htaccess =================================================================== --- releases/1.2.1/units/.htaccess (revision 0) +++ releases/1.2.1/units/.htaccess (revision 16085) @@ -0,0 +1 @@ +deny from all \ No newline at end of file Property changes on: releases/1.2.1/units/.htaccess ___________________________________________________________________ Added: svn:eol-style + LF Index: releases/1.2.1/admin_templates/widgets/widget_edit.tpl =================================================================== --- releases/1.2.1/admin_templates/widgets/widget_edit.tpl (revision 0) +++ releases/1.2.1/admin_templates/widgets/widget_edit.tpl (revision 16085) @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + +
+
+ + \ No newline at end of file Property changes on: releases/1.2.1/admin_templates/widgets/widget_edit.tpl ___________________________________________________________________ Added: svn:eol-style + LF Index: releases/1.2.1/admin_templates/widgets/widget_list.tpl =================================================================== --- releases/1.2.1/admin_templates/widgets/widget_list.tpl (revision 0) +++ releases/1.2.1/admin_templates/widgets/widget_list.tpl (revision 16085) @@ -0,0 +1,140 @@ + + + + + + + + + + + + +
+ + + + + + +
+ +
+
+ + + + + alt=""/>
+
+ + + Delete + + + + ', this.href);"> + + + + + + \ No newline at end of file Property changes on: releases/1.2.1/admin_templates/widgets/widget_list.tpl ___________________________________________________________________ Added: svn:eol-style + LF Index: releases/1.2.1/admin_templates/img/toolbar/dummy =================================================================== Property changes on: releases/1.2.1/admin_templates/img/toolbar/dummy ___________________________________________________________________ Added: cvs2svn:cvs-rev + 1.1.2.1 Index: releases/1.2.1/admin_templates/img/icons/icon46_custom.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: releases/1.2.1/admin_templates/img/icons/icon46_custom.png ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Index: releases/1.2.1/admin_templates/img/icons/icon24_conf_custom.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: releases/1.2.1/admin_templates/img/icons/icon24_conf_custom.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: releases/1.2.1/admin_templates/img/icons/icon46_conf_custom.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: releases/1.2.1/admin_templates/img/icons/icon46_conf_custom.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: releases/1.2.1/admin_templates/img/icons/icon24_custom.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: releases/1.2.1/admin_templates/img/icons/icon24_custom.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: releases/1.2.1/admin_templates/img/logo_bg.gif =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: releases/1.2.1/admin_templates/img/logo_bg.gif ___________________________________________________________________ Added: cvs2svn:cvs-rev + 1.1.2.1 Added: svn:mime-type + application/octet-stream Index: releases/1.2.1/install/install_order.txt =================================================================== --- releases/1.2.1/install/install_order.txt (revision 0) +++ releases/1.2.1/install/install_order.txt (revision 16085) @@ -0,0 +1 @@ +203 \ No newline at end of file Property changes on: releases/1.2.1/install/install_order.txt ___________________________________________________________________ Added: cvs2svn:cvs-rev + 1.1.2.1 Added: svn:eol-style + LF Index: releases/1.2.1/install/module_info.xml =================================================================== --- releases/1.2.1/install/module_info.xml (revision 0) +++ releases/1.2.1/install/module_info.xml (revision 16085) @@ -0,0 +1,6 @@ + + + Custom + Development Kit + modules/custom/install/img/icon_development_kit.gif + \ No newline at end of file Property changes on: releases/1.2.1/install/module_info.xml ___________________________________________________________________ Added: svn:eol-style + LF Index: releases/1.2.1/install/upgrades.php =================================================================== --- releases/1.2.1/install/upgrades.php (revision 0) +++ releases/1.2.1/install/upgrades.php (revision 16085) @@ -0,0 +1,65 @@ +dependencies = Array ( + '1.0.0' => Array ('Core' => '5.0.0'), + '1.0.1' => Array ('Core' => '5.0.1'), + '1.0.2-B1' => Array ('Core' => '5.0.2-B1'), + '1.0.2-B2' => Array ('Core' => '5.0.2-B2'), + '1.0.2-RC1' => Array ('Core' => '5.0.2-RC1'), + '1.0.2' => Array ('Core' => '5.0.2'), + '1.0.3-B1' => Array ('Core' => '5.0.3-B1'), + '1.0.3-RC1' => Array ('Core' => '5.0.3-RC1'), + '1.0.3' => Array ('Core' => '5.0.3'), + '1.0.4-B1' => Array ('Core' => '5.0.4-B1'), + '1.0.4' => Array ('Core' => '5.0.4'), + '1.1.0-B1' => Array ('Core' => '5.1.0-B1'), + '1.1.0-B2' => Array ('Core' => '5.1.0-B2'), + '1.1.0-RC1' => Array ('Core' => '5.1.0-RC1'), + '1.1.0' => Array ('Core' => '5.1.0'), + '1.1.1-B1' => Array ('Core' => '5.1.1-B1'), + '1.1.1-RC1' => Array ('Core' => '5.1.1-RC1'), + '1.1.1' => Array ('Core' => '5.1.1'), + '1.1.2-B1' => Array ('Core' => '5.1.2-B1'), + '1.1.2-RC1' => Array ('Core' => '5.1.2-RC1'), + '1.1.2' => Array ('Core' => '5.1.2'), + '1.1.3-B1' => Array ('Core' => '5.1.3-B1'), + '1.1.3-B2' => Array ('Core' => '5.1.3-B2'), + '1.1.3' => Array ('Core' => '5.1.3'), + '1.2.0-B1' => Array ('Core' => '5.2.0-B1'), + '1.2.0-B2' => Array ('Core' => '5.2.0-B2'), + '1.2.0-B3' => Array ('Core' => '5.2.0-B3'), + '1.2.0-RC1' => Array ('Core' => '5.2.0-RC1'), + '1.2.0' => Array ('Core' => '5.2.0'), + '1.2.1-B1' => Array ('Core' => '5.2.1-B1'), + '1.2.1-B2' => Array ('Core' => '5.2.1-B2'), + '1.2.1-RC1' => Array ('Core' => '5.2.1-RC1'), + '1.2.1' => Array ('Core' => '5.2.1'), + ); + } + } Property changes on: releases/1.2.1/install/upgrades.php ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/install/install_schema.sql =================================================================== --- releases/1.2.1/install/install_schema.sql (revision 0) +++ releases/1.2.1/install/install_schema.sql (revision 16085) @@ -0,0 +1,17 @@ +CREATE TABLE Widgets ( + WidgetId int(11) NOT NULL AUTO_INCREMENT, + Title varchar(255) NOT NULL DEFAULT '', + Description text, + Email varchar(255) NOT NULL DEFAULT '', + `Type` tinyint(4) NOT NULL DEFAULT '1', + Phone varchar(50) NOT NULL DEFAULT '', + Qty double NOT NULL DEFAULT '0', + `Status` tinyint(4) NOT NULL DEFAULT '2', + CreatedOn int(10) unsigned DEFAULT NULL, + Good tinyint(4) NOT NULL DEFAULT '0', + BirthTime int(10) unsigned DEFAULT NULL, + Image text, + DataFile text, + PRIMARY KEY (WidgetId) +); + Property changes on: releases/1.2.1/install/install_schema.sql ___________________________________________________________________ Added: cvs2svn:cvs-rev + 1.4.2.1 Added: svn:eol-style + LF Index: releases/1.2.1/install/upgrades.sql =================================================================== --- releases/1.2.1/install/upgrades.sql (revision 0) +++ releases/1.2.1/install/upgrades.sql (revision 16085) @@ -0,0 +1,72 @@ +# ===== v 1.0.0 ===== + +# ===== v 1.0.1 ===== +UPDATE Modules SET LoadOrder = 10 WHERE `Name` = 'Custom'; + +# ===== v 1.0.2-B1 ===== +ALTER TABLE Widgets CHANGE CreatedOn CreatedOn INT(11) NULL DEFAULT NULL; +UPDATE Modules SET TemplatePath = 'custom/' WHERE Name = 'Custom'; + +# ===== v 1.0.2-B2 ===== + +# ===== v 1.0.2-RC1 ===== + +# ===== v 1.0.2 ===== + +# ===== v 1.0.3-B1 ===== + +# ===== v 1.0.3-RC1 ===== + +# ===== v 1.0.3 ===== + +# ===== v 1.0.4-B1 ===== + +# ===== v 1.0.4 ===== + +# ===== v 1.1.0-B1 ===== +UPDATE Modules SET Path = 'modules/custom/' WHERE `Name` = 'Custom'; + +# ===== v 1.1.0-B2 ===== + +# ===== v 1.1.0-RC1 ===== + +# ===== v 1.1.0 ===== + +# ===== v 1.1.1-B1 ===== + +# ===== v 1.1.1-RC1 ===== + +# ===== v 1.1.1 ===== + +# ===== v 1.1.2-B1 ===== + +# ===== v 1.1.2-RC1 ===== + +# ===== v 1.1.2 ===== + +# ===== v 1.1.3-B1 ===== + +# ===== v 1.1.3-B2 ===== + +# ===== v 1.1.3 ===== + +# ===== v 1.2.0-B1 ===== + +# ===== v 1.2.0-B2 ===== + +# ===== v 1.2.0-B3 ===== + +# ===== v 1.2.0-RC1 ===== + +# ===== v 1.2.0 ===== + +# ===== v 1.2.1-B1 ===== + +# ===== v 1.2.1-B2 ===== +UPDATE Modules +SET ClassNamespace = 'Intechnic\\InPortal\\Modules\\Custom' +WHERE `Name` = 'Custom'; + +# ===== v 1.2.1-RC1 ===== + +# ===== v 1.2.1 ===== Property changes on: releases/1.2.1/install/upgrades.sql ___________________________________________________________________ Added: cvs2svn:cvs-rev + 1.1.4.2 Added: svn:eol-style + LF Index: releases/1.2.1/install/english.lang =================================================================== --- releases/1.2.1/install/english.lang (revision 0) +++ releases/1.2.1/install/english.lang (revision 16085) @@ -0,0 +1,21 @@ + + + + + JGJvZHkNCjxici8+PGJyLz4NCg0KU2luY2VyZWx5LDxici8+PGJyLz4NCg0KV2Vic2l0ZSBhZG1pbmlzdHJhdGlvbi4NCg0KPCEtLSMjIDxpbnAyOmVtYWlsLWxvZ19JdGVtTGluayB0ZW1wbGF0ZT0icGxhdGZvcm0vbXlfYWNjb3VudC9lbWFpbCIvPiAjIy0tPg== + + + RGF0YSBmaWxl + R29vZA== + Q3VzdG9t + RGVmYXVsdA== + V2lkZ2V0cw== + QWRkaW5nIFdpZGdldA== + RWRpdGluZyBXaWRnZXQ= + Q3VzdG9t + TmV3IFdpZGdldA== + V2lkZ2V0cw== + TmV3IFdpZGdldA== + + + \ No newline at end of file Property changes on: releases/1.2.1/install/english.lang ___________________________________________________________________ Added: cvs2svn:cvs-rev + 1.1.1.1.2.2 Added: svn:eol-style + LF Index: releases/1.2.1/install/.htaccess =================================================================== --- releases/1.2.1/install/.htaccess (revision 0) +++ releases/1.2.1/install/.htaccess (revision 16085) @@ -0,0 +1 @@ +deny from all \ No newline at end of file Property changes on: releases/1.2.1/install/.htaccess ___________________________________________________________________ Added: svn:eol-style + LF Index: releases/1.2.1/install/remove_schema.sql =================================================================== --- releases/1.2.1/install/remove_schema.sql (revision 0) +++ releases/1.2.1/install/remove_schema.sql (revision 16085) @@ -0,0 +1 @@ +DROP TABLE Widgets; \ No newline at end of file Property changes on: releases/1.2.1/install/remove_schema.sql ___________________________________________________________________ Added: svn:eol-style + LF Index: releases/1.2.1/install/img/icon_development_kit.gif =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: releases/1.2.1/install/img/icon_development_kit.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: releases/1.2.1/install/img/.htaccess =================================================================== --- releases/1.2.1/install/img/.htaccess (revision 0) +++ releases/1.2.1/install/img/.htaccess (revision 16085) @@ -0,0 +1 @@ +allow from all \ No newline at end of file Property changes on: releases/1.2.1/install/img/.htaccess ___________________________________________________________________ Added: svn:eol-style + LF Index: releases/1.2.1/install/install_data.sql =================================================================== --- releases/1.2.1/install/install_data.sql (revision 0) +++ releases/1.2.1/install/install_data.sql (revision 16085) @@ -0,0 +1,7 @@ +INSERT INTO Permissions VALUES(DEFAULT, 'custom.view', 11, 1, 1, 0); +INSERT INTO Permissions VALUES(DEFAULT, 'custom:widgets.delete', 11, 1, 1, 0); +INSERT INTO Permissions VALUES(DEFAULT, 'custom:widgets.edit', 11, 1, 1, 0); +INSERT INTO Permissions VALUES(DEFAULT, 'custom:widgets.add', 11, 1, 1, 0); +INSERT INTO Permissions VALUES(DEFAULT, 'custom:widgets.view', 11, 1, 1, 0); + +INSERT INTO Modules VALUES ('Custom', 'modules/custom/', 'Intechnic\\InPortal\\Modules\\Custom', 'custom-sections', DEFAULT, 1, 10, 'custom/', 0, NULL, NULL); Property changes on: releases/1.2.1/install/install_data.sql ___________________________________________________________________ Added: cvs2svn:cvs-rev + 1.2.2.3 Added: svn:eol-style + LF Index: releases/1.2.1/install/project_upgrades.sql =================================================================== --- releases/1.2.1/install/project_upgrades.sql (revision 0) +++ releases/1.2.1/install/project_upgrades.sql (revision 16085) @@ -0,0 +1,2 @@ +# r1: Initial Project Task (#TASK_ID) + Property changes on: releases/1.2.1/install/project_upgrades.sql ___________________________________________________________________ Added: svn:eol-style + LF Index: releases/1.2.1/install.php =================================================================== --- releases/1.2.1/install.php (revision 0) +++ releases/1.2.1/install.php (revision 16085) @@ -0,0 +1,38 @@ +toolkit; + /* @var $toolkit kInstallToolkit */ +} + +$application =& kApplication::Instance(); +$application->Init(); + +if ( $application->RecallVar('user_id') != USER_ROOT ) { + die('restricted access!'); +} + +$toolkit->RunSQL('/' . $module_folder . '/install/install_schema.sql'); +$toolkit->RunSQL('/' . $module_folder . '/install/install_data.sql'); +$toolkit->ImportLanguage('/' . $module_folder . '/install/english'); + +$toolkit->finalizeModuleInstall($module_folder, false); \ No newline at end of file Property changes on: releases/1.2.1/install.php ___________________________________________________________________ Added: cvs2svn:cvs-rev + 1.1.1.1.2.1 Added: svn:keywords + Id Added: svn:eol-style + LF Index: releases/1.2.1/README =================================================================== --- releases/1.2.1/README (revision 0) +++ releases/1.2.1/README (revision 16085) @@ -0,0 +1,179 @@ +INTRODUCTION TO IN-PORTAL +------------------------- + +In-Portal is Open Source object-oriented framework that is developed +in PHP and provides quick and easy way to build websites and web applications. + +In-Portal Framework has modular structure that allows painlessly +add and extend already existing features via new modules. + +In-Portal Community greatly appreciates any type of involvement +and contributions to the project. + +Please visit + + http://www.in-portal.org/contribute.html + +to see how You can participate and be a part of In-Portal Community. + + +THIS DEVELOPMENT KIT +-------------------- + +This README file provides you with the basic understanding and content +of provided Development Kit. + +Latest version of this Development Kit can be downloaded here + + http://www.in-portal.org + + http://source.in-portal.org/custom/tags + +This Development Kit is implemented and called "Custom" so it can be used +by developers as HOWTO create new modules as well as extend existing +modules not worrying about upgrading issues in the future. + +This module contains samples of the most basic and widely used features +of In-Portal. While the code might look very simple, though it provides +a quick and effective way to unlock most powerful capabilities for +In-Portal customization on many levels. + + +FOLDER STRUCTURE +---------------- + +1. All In-Portal modules have the same folder structure, that provides a quick +access to each aspect of it's functionality. Top folder is the module name +in a LOWERCASE. It is "custom" for "Custom" module, "in-link" for "In-Link" +module and so on. + +2. Inside there are three (3) main folders: + + * admin_templates/ - templates and resources (images, javascript, etc.), + these are used Admin ONLY. + + * units/ - business logic of the module, used on both Front-end and Admin. + + * install/ - contains files used to install the module into existing + In-Portal installation. + + +2.1. Content of "admin_templates/" folder. + +This folder contains one (1) sub-folder for each Section in Admin console's +main navigation menu (in left frame). Each such folder should ONLY contain +templates ("*.tpl" files) used for displaying given Section in the main +navigation menu in Admin console. + +Besides that there are one special purpose folder called "img/". +This folder contains all kind of images divided by categories (usage). +Images from each category (usage) are located in special sub-folder +associated with the given image category. + +There are three (3) main folders + + * "icons/" - images, that will be used as Section icons in the + main navigation menu next to the actual titles; + NOTE one image per one menu Section, but the same image could be used + for multiple menu Section. + + * "itemicons/" - images, that will be shown on the left from each + row in grid of records (also called list). + + * "toolbar/" - images, that are used to draw buttons on toolbar + on module templates that uses toolbar-based interface ONY. + + NOTE that it is not restricted to create any other folders + and place images inside them or in the "img/" folder itself. + + NOTE it is also common practice to create a "js/" sub-folder + and place all javascript scripts related to the Admin console inside. + + +2.2. Content of "units/" folder + +This folder can contain unlimited number of sub-folders. + +Each sub-folder should contain "*.php" files with the business logic +implementation for the given functionality. + +Usually there are three (3) files + + - Unit Config - main file, that allows to connect a given Unit into the framework; + + - Event Handler - all code, that will manipulate with the data is located here; + + - Tag Processor - all code, that is used to output the data to a user + in any requested form is located here. + + It is NOT permitted to create files in "units/" folder itself, only sub-folder + as described above. + + HOWEVER it is not prohibited to place a group of "unit" type folders inside + other "unit" type folders to logically divide them into groups. + Example, "units/logs/visits/" and "units/logs/summary/" both located inside + of "units/logs" folder, but each has it's own Unit Config, Event Handler, Tag Proccesor. + + +2.3. Content of "install/" folder. + +This folder contains files used to during the installation which will automaticall install + + * install Language Phrases + * install Email Events + * apply Database changes (e.g. new tables) + +associated with given module. + +There are also "upgrades.sql" (required) and "upgades.php" (not required). These files +allow to maintain module version based on database structure control. + + +3. BASIC UNDERSTANDING AND USAGE +-------------------------------- + +Visual part of Admin console consists of tree (3) parts + + * Top - contains website logo, logout link and some other things. + + * Left - contains main navigation menu (list of Sections) and used to control all functionality. + + * Right - main part that show the actual Section and data. + + +3.1 Adding a new Section item + +As we know left part of Admin console contains main navigation menu +so it's crucial to learn add a new Sections. + +New menu Sections are added using Unit Config files (desribed above). +Each unit can have unlimited number of menu Sections (and Sub-Sections) +at any place inside the main navigation menu. + +To add a new section you need to add it to 'Sections' array descrived in Unit Config file +of corresponding/related Unit, for example open "custom/units/widgets/widgets_config.php" + + 'Sections' => Array ( + 'custom' => Array ( + 'parent' => 'in-portal:root', + 'icon' => 'custom', + 'label' => 'la_title_SampleMenuItem', + 'url' => Array ('t' => 'custom/widgets/widget_list', 'pass' => 'm'), + 'permissions' => Array ('view', 'add', 'edit', 'delete'), + 'priority' => 1, + 'type' => stTREE, + ), + ), + + +4. WHAT'S NEXT +-------------- + +While we can write thousands of lines in this file we decided +to put all our knowledge base online using old good Wiki. + +Please feel free to read, ask questions and participate in In-Portal Community! + + http://guide.in-portal.org/eng/index.php + + http://www.in-portal.org/contribute.html Property changes on: releases/1.2.1/README ___________________________________________________________________ Added: svn:eol-style + LF Property changes on: releases/1.2.1 ___________________________________________________________________ Added: tsvn:autoprops + *.php = svn:eol-style=LF;svn:keywords=Id *.tpl = svn:eol-style=LF *.sql = svn:eol-style=LF *.lang = svn:eol-style=LF *.sh = svn:eol-style=LF;svn:executable *.txt = svn:eol-style=LF *.html = svn:eol-style=LF *.htm = svn:eol-style=LF *.css = svn:eol-style=LF *.js = svn:eol-style=LF *.xml = svn:eol-style=LF .htaccess = svn:eol-style=LF .smsignore = svn:eol-style=LF COPYRIGHT = svn:eol-style=LF CREDITS = svn:eol-style=LF INSTALL = svn:eol-style=LF LICENSE = svn:eol-style=LF LICENSES = svn:eol-style=LF README = svn:eol-style=LF Added: bugtraq:url + http://tracker.in-portal.org/view.php?id=%BUGID% Added: svn:ignore + config.php* debug.php Added: bugtraq:logregex + (?:[Bb]ugs?|[Ii]ssues?|[Rr]eports?|[Ff]ixe?s?|[Rr]esolves?)+\s+(?:#?(?:\d+)[,\.\s]*)+ (\d+) Added: bugtraq:warnifnoissue + false Added: svn:mergeinfo Merged /custom/branches/1.0.x:r12144-12742 Merged /custom/branches/RC:r12143 Merged /modules/custom/releases/1.0.2:r13085-13092 Merged /modules/custom/releases/1.1.1:r14078-14085 Merged /modules/custom/releases/1.0.3:r13512-13545 Merged /modules/custom/releases/1.1.2:r14314-14561 Merged /modules/custom/releases/1.0.4:r13733-13741 Merged /modules/custom/releases/1.1.3:r14554-14578 Merged /custom/releases/1.0.1:r12623-12650 Merged /modules/custom/branches/1.0.x:r12743-13732 Merged /modules/custom/branches/1.1.x:r13849-14553