Index: branches/5.2.x/core/units/promo_blocks/promo_block_eh.php =================================================================== diff -u -N -r14853 -r14929 --- branches/5.2.x/core/units/promo_blocks/promo_block_eh.php (.../promo_block_eh.php) (revision 14853) +++ branches/5.2.x/core/units/promo_blocks/promo_block_eh.php (.../promo_block_eh.php) (revision 14929) @@ -52,6 +52,26 @@ } /** + * Sets default value for promo block group + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnPreCreate(&$event) + { + parent::OnPreCreate($event); + + $object =& $event->getObject(); + /* @var $object kDBItem */ + + $promo_block_group =& $this->Application->recallObject('promo-block-group'); + /* @var $promo_block_group kDBItem */ + + $object->SetDBField('PromoBlockGroupId', $promo_block_group->GetID()); + } + + /** * Processes OnMassMoveUp, OnMassMoveDown events * * @param kEvent $event @@ -74,18 +94,30 @@ { parent::SetCustomQuery($event); - if ( $this->Application->isAdminUser ) { + $object =& $event->getObject(); + /* @var $object kDBList */ + + if ( $this->Application->isAdmin ) { + $promo_block_group =& $this->Application->recallObject('promo-block-group'); + /* @var $promo_block_group kDBItem */ + + $object->addFilter('promo_group_filter', '%1$s.PromoBlockGroupId = ' . $promo_block_group->GetID()); return; } - $object =& $event->getObject(); - /* @var $object kDBList */ + $group_id = $event->getEventParam('group_id'); - if ( $event->Special == 'home' ) { - $object->addFilter('status_filter', '%1$s.Status = ' . STATUS_ACTIVE); - $object->addFilter('scheduled_from_filter', '%1$s.ScheduleFromDate IS NULL OR %1$s.ScheduleFromDate <= ' . TIMENOW); - $object->addFilter('scheduled_to_filter', '%1$s.ScheduleToDate IS NULL OR %1$s.ScheduleToDate >= ' . TIMENOW); + if ( !$group_id ) { + $page =& $this->Application->recallObject('st'); + /* @var $page CategoriesItem */ + + $group_id = $page->GetDBField('PromoBlockGroupId'); } + + $object->addFilter('status_filter', '%1$s.Status = ' . STATUS_ACTIVE); + $object->addFilter('scheduled_from_filter', '%1$s.ScheduleFromDate IS NULL OR %1$s.ScheduleFromDate <= ' . TIMENOW); + $object->addFilter('scheduled_to_filter', '%1$s.ScheduleToDate IS NULL OR %1$s.ScheduleToDate >= ' . TIMENOW); + $object->addFilter('promo_group_filter', $group_id ? '%1$s.PromoBlockGroupId = ' . $group_id : 'FALSE'); } /** @@ -293,7 +325,7 @@ 'type' => 'string', 'max_len' => 255, 'formatter' => 'kUploadFormatter', 'upload_dir' => IMAGES_PATH, 'multiple' => 1, 'thumb_format' => 'resize:100x100', - 'file_types' => '*.jpg;*.gif;*.png', 'files_description' => '!la_Image_Files!', + 'file_types' => '*.jpg;*.gif;*.png', 'files_description' => '!la_hint_ImageFiles!', 'required' => 1, 'not_null' => 1, 'default' => '', );