Changeset View
Changeset View
Standalone View
Standalone View
branches/5.2.x/core/units/promo_blocks/promo_block_eh.php
Show First 20 Lines • Show All 62 Lines • ▼ Show 20 Line(s) | |||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function OnPreCreate(kEvent $event) | protected function OnPreCreate(kEvent $event) | ||||
{ | { | ||||
parent::OnPreCreate($event); | parent::OnPreCreate($event); | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
/** @var kDBItem $promo_block_group */ | |||||
$promo_block_group = $this->Application->recallObject('promo-block-group'); | $promo_block_group = $this->Application->recallObject('promo-block-group'); | ||||
/* @var $promo_block_group kDBItem */ | |||||
$object->SetDBField('PromoBlockGroupId', $promo_block_group->GetID()); | $object->SetDBField('PromoBlockGroupId', $promo_block_group->GetID()); | ||||
} | } | ||||
/** | /** | ||||
* Processes OnMassMoveUp, OnMassMoveDown events | * Processes OnMassMoveUp, OnMassMoveDown events | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
Show All 11 Lines | |||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
* @see kDBEventHandler::OnListBuild() | * @see kDBEventHandler::OnListBuild() | ||||
*/ | */ | ||||
protected function SetCustomQuery(kEvent $event) | protected function SetCustomQuery(kEvent $event) | ||||
{ | { | ||||
parent::SetCustomQuery($event); | parent::SetCustomQuery($event); | ||||
/** @var kDBList $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBList */ | |||||
if ( $this->Application->isAdmin ) { | if ( $this->Application->isAdmin ) { | ||||
/** @var kDBItem $promo_block_group */ | |||||
$promo_block_group = $this->Application->recallObject('promo-block-group'); | $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()); | $object->addFilter('promo_group_filter', '%1$s.PromoBlockGroupId = ' . $promo_block_group->GetID()); | ||||
return; | return; | ||||
} | } | ||||
$group_id = $event->getEventParam('group_id'); | $group_id = $event->getEventParam('group_id'); | ||||
if ( !$group_id ) { | if ( !$group_id ) { | ||||
/** @var CategoriesItem $page */ | |||||
$page = $this->Application->recallObject('st'); | $page = $this->Application->recallObject('st'); | ||||
/* @var $page CategoriesItem */ | |||||
$group_id = $page->GetDBField('PromoBlockGroupId'); | $group_id = $page->GetDBField('PromoBlockGroupId'); | ||||
} | } | ||||
$object->addFilter('status_filter', '%1$s.Status = ' . STATUS_ACTIVE); | $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_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('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'); | $object->addFilter('promo_group_filter', $group_id ? '%1$s.PromoBlockGroupId = ' . $group_id : 'FALSE'); | ||||
} | } | ||||
/** | /** | ||||
* Set's block as sticky | * Set's block as sticky | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function OnSetSticky(kEvent $event) | protected function OnSetSticky(kEvent $event) | ||||
{ | { | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject( Array('skip_autoload' => true) ); | $object = $event->getObject( Array('skip_autoload' => true) ); | ||||
/* @var $object kDBItem */ | |||||
$ids = $this->StoreSelectedIDs($event); | $ids = $this->StoreSelectedIDs($event); | ||||
if ( $ids ) { | if ( $ids ) { | ||||
$id = array_shift($ids); | $id = array_shift($ids); | ||||
$sql = 'UPDATE ' . $object->TableName . ' | $sql = 'UPDATE ' . $object->TableName . ' | ||||
SET Sticky = 0'; | SET Sticky = 0'; | ||||
▲ Show 20 Lines • Show All 41 Lines • ▼ Show 20 Line(s) | |||||
* Schedule dates | * Schedule dates | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function _itemChanged(kEvent $event) | protected function _itemChanged(kEvent $event) | ||||
{ | { | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
$date_from = $object->GetDBField('ScheduleFromDate_date'); | $date_from = $object->GetDBField('ScheduleFromDate_date'); | ||||
$date_to = $object->GetDBField('ScheduleToDate_date'); | $date_to = $object->GetDBField('ScheduleToDate_date'); | ||||
if ( $date_from && $date_to && $date_from >= $date_to ) { | if ( $date_from && $date_to && $date_from >= $date_to ) { | ||||
$object->SetError('ScheduleFromDate_date', 'wrong_date_interval'); | $object->SetError('ScheduleFromDate_date', 'wrong_date_interval'); | ||||
} | } | ||||
Show All 17 Lines | |||||
* Registers click on the promo block | * Registers click on the promo block | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function OnFollowLink(kEvent $event) | protected function OnFollowLink(kEvent $event) | ||||
{ | { | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
$this->_incrementField($event, 'NumberOfClicks', false); | $this->_incrementField($event, 'NumberOfClicks', false); | ||||
if ( $object->GetDBField('LinkType') == 1 ) { // Internal | if ( $object->GetDBField('LinkType') == 1 ) { // Internal | ||||
$sql = 'SELECT NamedParentPath | $sql = 'SELECT NamedParentPath | ||||
FROM ' . TABLE_PREFIX . 'Categories | FROM ' . TABLE_PREFIX . 'Categories | ||||
WHERE CategoryId = ' . $object->GetDBField('CategoryId'); | WHERE CategoryId = ' . $object->GetDBField('CategoryId'); | ||||
$event->redirect = $this->Conn->GetOne($sql); | $event->redirect = $this->Conn->GetOne($sql); | ||||
Show All 20 Lines | |||||
if ( $is_ajax ) { | if ( $is_ajax ) { | ||||
$event->status = kEvent::erSTOP; | $event->status = kEvent::erSTOP; | ||||
if ( $this->Application->GetVar('ajax') != 'yes' ) { | if ( $this->Application->GetVar('ajax') != 'yes' ) { | ||||
return ; | return ; | ||||
} | } | ||||
} | } | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
if ( !$object->isLoaded() ) { | if ( !$object->isLoaded() ) { | ||||
echo 'FAILED'; | echo 'FAILED'; | ||||
return ; | return ; | ||||
} | } | ||||
// don't use kDBItem::Update to support concurrent view updates from different visitors | // don't use kDBItem::Update to support concurrent view updates from different visitors | ||||
$sql = 'UPDATE ' . $object->TableName . ' | $sql = 'UPDATE ' . $object->TableName . ' | ||||
SET ' . $field . ' = ' . $field . ' + 1 | SET ' . $field . ' = ' . $field . ' + 1 | ||||
WHERE ' . $object->IDField . ' = ' . $object->GetID(); | WHERE ' . $object->IDField . ' = ' . $object->GetID(); | ||||
$this->Conn->Query($sql); | $this->Conn->Query($sql); | ||||
echo 'OK'; | echo 'OK'; | ||||
} | } | ||||
/** | /** | ||||
* Resets promo block counters | * Resets promo block counters | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function OnResetCounters(kEvent $event) | protected function OnResetCounters(kEvent $event) | ||||
{ | { | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject( Array ('skip_autoload' => true) ); | $object = $event->getObject( Array ('skip_autoload' => true) ); | ||||
/* @var $object kDBItem */ | |||||
$ids = $this->StoreSelectedIDs($event); | $ids = $this->StoreSelectedIDs($event); | ||||
foreach ($ids as $id) { | foreach ($ids as $id) { | ||||
$object->Load($id); | $object->Load($id); | ||||
$object->SetDBField('NumberOfViews', 0); | $object->SetDBField('NumberOfViews', 0); | ||||
$object->SetDBField('NumberOfClicks', 0); | $object->SetDBField('NumberOfClicks', 0); | ||||
$object->Update(); | $object->Update(); | ||||
} | } | ||||
$this->clearSelectedIDs($event); | $this->clearSelectedIDs($event); | ||||
} | } | ||||
/** | /** | ||||
* Occurs, when config was parsed, allows to change config data dynamically | * Occurs, when config was parsed, allows to change config data dynamically | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function OnAfterConfigRead(kEvent $event) | protected function OnAfterConfigRead(kEvent $event) | ||||
{ | { | ||||
parent::OnAfterConfigRead($event); | parent::OnAfterConfigRead($event); | ||||
/** @var CategoryHelper $category_helper */ | |||||
$category_helper = $this->Application->recallObject('CategoryHelper'); | $category_helper = $this->Application->recallObject('CategoryHelper'); | ||||
/* @var $category_helper CategoryHelper */ | |||||
$fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); | $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); | ||||
$fields['CategoryId']['options'] = $category_helper->getStructureTreeAsOptions(); | $fields['CategoryId']['options'] = $category_helper->getStructureTreeAsOptions(); | ||||
// images multilang fields | // images multilang fields | ||||
$a_image = Array( | $a_image = Array( | ||||
'type' => 'string', 'max_len' => 255, | 'type' => 'string', 'max_len' => 255, | ||||
Show All 20 Lines |