Index: modules/in-commerce/units/orders/orders_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/orders/orders_event_handler.php (revision 15925) +++ modules/in-commerce/units/orders/orders_event_handler.php (revision ) @@ -382,7 +382,7 @@ 'to_email' => $billing_email ? $billing_email : $user_email, ); - return $ret; + return $order->getEmailParams($ret); } function PrepareCoupons($event, &$order) @@ -489,7 +489,7 @@ } $this->Application->emailUser('ORDER.SUBMIT', null, $this->OrderEmailParams($order)); - $this->Application->emailAdmin('ORDER.SUBMIT'); + $this->Application->emailAdmin('ORDER.SUBMIT', null, $order->getEmailParams()); } if ($shipping_control === false || $shipping_control == SHIPPING_CONTROL_PREAUTH ) { @@ -2897,7 +2897,7 @@ if ($event->Special != 'recurring') { // just in case if admin uses tangible backordered products in recurring orders $this->Application->emailUser('BACKORDER.ADD', null, $this->OrderEmailParams($sub_order)); - $this->Application->emailAdmin('BACKORDER.ADD'); + $this->Application->emailAdmin('BACKORDER.ADD', null, $sub_order->getEmailParams()); } } else { @@ -3535,7 +3535,10 @@ /* @var $temp_handler kTempTablesHandler */ $cloned_order_ids = $temp_handler->CloneItems($event->Prefix, 'recurring', $order_ids); - $order =& $this->Application->recallObject($event->Prefix.'.recurring', null, Array('skip_autoload' => true)); + + $order = $this->Application->recallObject($event->Prefix.'.recurring', null, Array('skip_autoload' => true)); + /* @var $order OrdersItem */ + foreach ($cloned_order_ids as $order_id) { $order->Load($order_id); $this->Application->HandleEvent($complete_event, $event->Prefix.'.recurring:OnCompleteOrder' ); @@ -3543,14 +3546,14 @@ if ($complete_event->status == kEvent::erSUCCESS) { //send recurring ok email $this->Application->emailUser('ORDER.RECURRING.PROCESSED', null, $this->OrderEmailParams($order)); - $this->Application->emailAdmin('ORDER.RECURRING.PROCESSED'); + $this->Application->emailAdmin('ORDER.RECURRING.PROCESSED', null, $order->getEmailParams()); } else { //send Recurring failed event $order->SetDBField('Status', ORDER_STATUS_DENIED); $order->Update(); $this->Application->emailUser('ORDER.RECURRING.DENIED', null, $this->OrderEmailParams($order)); - $this->Application->emailAdmin('ORDER.RECURRING.DENIED'); + $this->Application->emailAdmin('ORDER.RECURRING.DENIED', null, $order->getEmailParams()); } } \ No newline at end of file Index: modules/in-commerce/units/affiliates/affiliates_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/affiliates/affiliates_event_handler.php (revision 15925) +++ modules/in-commerce/units/affiliates/affiliates_event_handler.php (revision ) @@ -349,8 +349,9 @@ $object->SetDBField('PortalUserId', $user->GetID()); if ( $object->Create() ) { - $this->Application->emailUser('AFFILIATE.REGISTER', $user->GetID()); - $this->Application->emailAdmin('AFFILIATE.REGISTER'); + $send_params = $object->getEmailParams(); + $this->Application->emailUser('AFFILIATE.REGISTER', $user->GetID(), $send_params); + $this->Application->emailAdmin('AFFILIATE.REGISTER', null, $send_params); } } @@ -407,8 +408,9 @@ $object = $event->getObject(); /* @var $object kDBItem */ - $this->Application->emailUser('AFFILIATE.PAYMENT.TYPE.CHANGED', $object->GetDBField('PortalUserId')); - $this->Application->emailAdmin('AFFILIATE.PAYMENT.TYPE.CHANGED'); + $send_params = $object->getEmailParams(); + $this->Application->emailUser('AFFILIATE.PAYMENT.TYPE.CHANGED', $object->GetDBField('PortalUserId'), $send_params); + $this->Application->emailAdmin('AFFILIATE.PAYMENT.TYPE.CHANGED', null, $send_params); $next_template = $this->Application->GetVar('next_template'); @@ -451,8 +453,9 @@ foreach ($new_ids as $payment_id) { $payment_object->Load($payment_id); - $this->Application->emailUser('AFFILIATE.PAYMENT', $payment_object->GetDBField('PortalUserId')); - $this->Application->emailAdmin('AFFILIATE.PAYMENT'); + $send_params = $payment_object->getEmailParams(); + $this->Application->emailUser('AFFILIATE.PAYMENT', $payment_object->GetDBField('PortalUserId'), $send_params); + $this->Application->emailAdmin('AFFILIATE.PAYMENT', null, $send_params); } $object = $event->getObject(); @@ -470,8 +473,9 @@ $old_status = $this->Conn->GetOne($sql); if ( $old_status == 2 && $object->GetDBField('Status') == 1 ) { - $this->Application->emailUser('AFFILIATE.REGISTRATION.APPROVED', $object->GetDBField('PortalUserId')); - $this->Application->emailAdmin('AFFILIATE.REGISTRATION.APPROVED'); + $send_params = $object->getEmailParams(); + $this->Application->emailUser('AFFILIATE.REGISTRATION.APPROVED', $object->GetDBField('PortalUserId'), $send_params); + $this->Application->emailAdmin('AFFILIATE.REGISTRATION.APPROVED', null, $send_params); } } @@ -619,16 +623,19 @@ } if ( $object->Update() ) { + $send_params = $object->getEmailParams(); + switch ($event->Name) { case 'OnMassApprove': - $this->Application->emailUser('AFFILIATE.REGISTRATION.APPROVED', $object->GetDBField('PortalUserId')); - $this->Application->emailAdmin('AFFILIATE.REGISTRATION.APPROVED'); + $this->Application->emailUser('AFFILIATE.REGISTRATION.APPROVED', $object->GetDBField('PortalUserId'), $send_params); + $this->Application->emailAdmin('AFFILIATE.REGISTRATION.APPROVED', null, $send_params); break; case 'OnMassDecline': - $this->Application->emailUser('AFFILIATE.REGISTRATION.DENIED', $object->GetDBField('PortalUserId')); - $this->Application->emailAdmin('AFFILIATE.REGISTRATION.DENIED'); + $this->Application->emailUser('AFFILIATE.REGISTRATION.DENIED', $object->GetDBField('PortalUserId'), $send_params); + $this->Application->emailAdmin('AFFILIATE.REGISTRATION.DENIED', null, $send_params); break; } + $event->status = kEvent::erSUCCESS; $event->SetRedirectParam('opener', 's'); //stay! } \ No newline at end of file Index: modules/in-bulletin/units/private_messages/private_message_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-bulletin/units/private_messages/private_message_eh.php (revision 15908) +++ modules/in-bulletin/units/private_messages/private_message_eh.php (revision ) @@ -109,7 +109,7 @@ $object = $event->getObject(); /* @var $object kDBItem */ - $this->Application->emailUser('PM.ADD', $object->GetDBField('ToId')); + $this->Application->emailUser('PM.ADD', $object->GetDBField('ToId'), $object->getEmailParams()); if ( $object->GetDBField('FolderId') != PM_FOLDER_SENT ) { // 1. create message in sender's "Sent" folder (this method only for this step) \ No newline at end of file Index: modules/in-commerce/units/products/products_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/products/products_event_handler.php (revision 15925) +++ modules/in-commerce/units/products/products_event_handler.php (revision ) @@ -293,10 +293,12 @@ if (!$orders) return; $order = $this->Application->recallObject('ord.-inv', null, Array('skip_autoload' => true)); + /* @var $order OrdersItem */ + foreach ($orders as $ord_id) { $order->Load($ord_id); - $this->Application->emailAdmin('BACKORDER.FULLFILL'); + $this->Application->emailAdmin('BACKORDER.FULLFILL', null, $order->getEmailParams()); //reserve what's possible in any case $event = new kEvent('ord:OnReserveItems'); @@ -752,6 +754,7 @@ * Enter description here... * * @param kEvent $event + * @todo Might be not used anymore */ function OnRecommendProduct($event) { @@ -773,9 +776,12 @@ $send_params['message']=$my_message; if ( preg_match('/' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . '/', $friend_email) ) { + $product = $this->Application->recallObject('p'); + /* @var $product ProductsItem */ + $user_id = $this->Application->RecallVar('user_id'); - $email_sent = $this->Application->emailUser('PRODUCT.SUGGEST', $user_id, $send_params); - $this->Application->emailAdmin('PRODUCT.SUGGEST'); + $email_sent = $this->Application->emailUser('PRODUCT.SUGGEST', $user_id, $product->getEmailParams($send_params)); + $this->Application->emailAdmin('PRODUCT.SUGGEST', null, $product->getEmailParams()); if ( $email_sent ) { $event->setRedirectParams(Array ('opener' => 's', 'pass' => 'all')); \ No newline at end of file Index: modules/in-link/units/listings/listings_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-link/units/listings/listings_event_handler.php (revision 15926) +++ modules/in-link/units/listings/listings_event_handler.php (revision ) @@ -139,14 +139,8 @@ $status_modified = ($object->GetDBField('Status') != $original_values['Status']); if ( $status_modified ) { - $email_event = $object->GetDBField('Status') ? 'LINK.ENHANCE.APPROVE' : 'LINK.ENHANCE.DENY'; - $sql = 'SELECT CreatedById - FROM ' . $this->Application->getUnitConfig('l')->getTableName() . ' - WHERE ResourceId = ' . $object->GetDBField('ItemResourceId'); - $user_id = $this->Conn->GetOne($sql); - - $this->Application->emailUser($email_event, $user_id); - $this->Application->emailAdmin($email_event); + $email_template = $object->GetDBField('Status') ? 'LINK.ENHANCE.APPROVE' : 'LINK.ENHANCE.DENY'; + $this->notifyOwner($email_template, $object); } if ( $type_modified || $link_modified ) { @@ -434,11 +428,7 @@ case 'OnListingCreate': // when requesting enhancement from front (and not via in-commerce) $event->redirect = $this->Application->GetVar('success_template'); - - $sql = 'SELECT CreatedById FROM '.$links_config->getTableName().' - WHERE ResourceId = '.$object->GetDBField('ItemResourceId'); - $this->Application->emailUser('LINK.ENHANCE', $this->Conn->GetOne($sql)); - $this->Application->emailAdmin('LINK.ENHANCE'); + $this->notifyOwner('LINK.ENHANCE', $object); break; } @@ -592,12 +582,7 @@ if ( $object->GetDBField('Status') == STATUS_ACTIVE ) { $original_values = $object->GetFieldValues(); $this->ResetLink($original_values); - - $sql = 'SELECT CreatedById - FROM ' . $links_config->getTableName() . ' - WHERE ResourceId = ' . $object->GetDBField('ItemResourceId'); - $this->Application->emailUser('LINK.ENHANCE.DENY', $this->Conn->GetOne($sql)); - $this->Application->emailAdmin('LINK.ENHANCE.DENY'); + $this->notifyOwner('LINK.ENHANCE.DENY', $object); } } } @@ -612,11 +597,6 @@ foreach ($ids as $id) { $object->Load($id); - $sql = 'SELECT CreatedById - FROM ' . $links_config->getTableName() . ' - WHERE ResourceId = ' . $object->GetDBField('ItemResourceId'); - $owner_id = $this->Conn->GetOne($sql); - if ( $object->GetDBField('PendingRenewal') == 1 ) { $lst_object->Load( $object->GetDBField('ListingTypeId') ); $dur_type_mapping = Array ( @@ -638,8 +618,7 @@ if ( $object->Update() ) { $event->status = kEvent::erSUCCESS; $event->SetRedirectParam('opener', 's'); - $this->Application->emailUser('LINK.ENHANCE.RENEW', $owner_id); - $this->Application->emailAdmin('LINK.ENHANCE.RENEW'); + $this->notifyOwner('LINK.ENHANCE.RENEW', $object); } else { $event->status = kEvent::erFAIL; @@ -648,8 +627,7 @@ } } else { - $this->Application->emailUser('LINK.ENHANCE.APPROVE', $owner_id); - $this->Application->emailAdmin('LINK.ENHANCE.APPROVE'); + $this->notifyOwner('LINK.ENHANCE.APPROVE', $object); } } } @@ -699,7 +677,7 @@ return $this->Conn->GetOne($sql); } - function OnExtendEnhancement($event) + protected function OnExtendEnhancement(kEvent $event) { $listing_id = $this->verifyListingOwner($event); if (!$listing_id) { @@ -707,16 +685,14 @@ } $object = $event->getObject( Array('skip_autoload' => true) ); + /* @var $object kDBItem */ + $object->Load($listing_id); $object->SetDBField('PendingRenewal', 1); $object->Update(); $event->redirect = $this->Application->GetVar('success_template'); - - $sql = 'SELECT CreatedById FROM '.$this->Application->getUnitConfig('l')->getTableName().' - WHERE ResourceId = '.$object->GetDBField('ItemResourceId'); - $this->Application->emailUser('LINK.ENHANCE.EXTEND', $this->Conn->GetOne($sql)); - $this->Application->emailAdmin('LINK.ENHANCE.EXTEND'); + $this->notifyOwner('LINK.ENHANCE.EXTEND', $object); } /** @@ -739,12 +715,8 @@ $original_values = $object->GetFieldValues(); $original_values['Status'] = 1; $this->ResetLink($original_values); + $this->notifyOwner('LINK.ENHANCE.CANCEL', $object); - $sql = 'SELECT CreatedById FROM ' . $this->Application->getUnitConfig('l')->getTableName() . ' - WHERE ResourceId = ' . $object->GetDBField('ItemResourceId'); - $this->Application->emailUser('LINK.ENHANCE.CANCEL', $this->Conn->GetOne($sql)); - $this->Application->emailAdmin('LINK.ENHANCE.CANCEL'); - $object->Delete(); $event->redirect = $this->Application->GetVar('success_template'); } @@ -774,30 +746,33 @@ $this->ResetLink($original_values); $object->SetDBField('Status', 2); $object->Update(); - - $sql = 'SELECT CreatedById FROM '.$links_config->getTableName().' - WHERE ResourceId = '.$object->GetDBField('ItemResourceId'); - $this->Application->emailUser('LINK.ENHANCE.EXPIRE', $this->Conn->GetOne($sql)); - $this->Application->emailAdmin('LINK.ENHANCE.EXPIRE'); + $this->notifyOwner('LINK.ENHANCE.EXPIRE', $object); } } - $sql = 'SELECT ls.ListingId, l.CreatedById FROM '.$config->getTableName().' ls + $link_id_field = $this->Application->getUnitConfig('l')->getIDField(); + $sql = 'SELECT ls.ListingId, l.CreatedById, l.' . $link_id_field . ' FROM ' . $config->getTableName() . ' ls - LEFT JOIN '.$this->Application->getUnitConfig('lst')->getTableName().' lst + LEFT JOIN ' . $this->Application->getUnitConfig('lst')->getTableName() . ' lst ON ls.ListingTypeId = lst.ListingTypeId - LEFT JOIN '.$links_config->getTableName().' l + LEFT JOIN ' . $links_config->getTableName() . ' l ON ls.ItemResourceId = l.ResourceId WHERE ls.Status = 1 - AND ls.ExpiresOn < '.time().' + lst.RenewalReminder * 3600 *24 + AND ls.ExpiresOn < ' . time() . ' + lst.RenewalReminder * 3600 *24 AND ls.RenewalReminderSent = 0'; $res = $this->Conn->Query($sql); + if(is_array($res) && count($res) > 0) { $listing_ids = Array(); foreach($res as $record) { - $this->Application->emailUser('LINK.ENHANCE.RENEWAL.NOTICE', $record['CreatedById']); - $this->Application->emailAdmin('LINK.ENHANCE.RENEWAL.NOTICE'); + $send_params = Array ( + 'PrefixSpecial' => 'l', + 'item_id' => $record[$link_id_field] + ); + + $this->Application->emailUser('LINK.ENHANCE.RENEWAL.NOTICE', $record['CreatedById'], $send_params); + $this->Application->emailAdmin('LINK.ENHANCE.RENEWAL.NOTICE', null, $send_params); $listing_ids[] = $record['ListingId']; } $sql = 'UPDATE '.$config->getTableName().' @@ -856,6 +831,33 @@ SET ItemResourceId = '.$resource_ids[$pending_id].' WHERE ItemResourceId = '.$resource_ids[$original_id]; $this->Conn->Query($sql); + } + + /** + * Notifies link owner about listing related action. + * + * @param string $email_template E-mail template. + * @param kDBItem $listing Listing. + * + * @return void + */ + protected function notifyOwner($email_template, kDBItem $listing) + { + $unit_config = $this->Application->getUnitConfig('l'); + $id_field = $unit_config->getIDField(); + + $sql = 'SELECT CreatedById, ' . $id_field . ' + FROM ' . $unit_config->getTableName() . ' + WHERE ResourceId = ' . $listing->GetDBField('ItemResourceId'); + $link_data = $this->Conn->GetRow($sql); + + $send_params = array( + 'PrefixSpecial' => 'l', + 'item_id' => $link_data[$id_field], + ); + + $this->Application->emailUser($email_template, $link_data['CreatedById'], $send_params); + $this->Application->emailAdmin($email_template, null, $send_params); } /** \ No newline at end of file Index: modules/in-bulletin/units/posts/post_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-bulletin/units/posts/post_eh.php (revision 15924) +++ modules/in-bulletin/units/posts/post_eh.php (revision ) @@ -154,7 +154,10 @@ { parent::OnAfterItemUpdate($event); - $this->Application->emailAdmin('POST.MODIFY'); + $object = $event->getObject(); + /* @var $object kDBItem */ + + $this->Application->emailAdmin('POST.MODIFY', null, $object->getEmailParams()); } /** @@ -235,17 +238,19 @@ // don't send any email events when in admin OR new topic just added (0 posts) $user_notified = false; // don't send POST.ADD event twice to same user (in case if owner adds new post) + $send_params = $object->getEmailParams(); + if ( $main_object->GetDBField('NotifyOwnerOnChanges') ) { $user_notified = $main_object->GetDBField('OwnerId'); - $this->Application->emailUser('POST.ADD', $user_notified); + $this->Application->emailUser('POST.ADD', $user_notified, $send_params); } $post_owner_id = $object->GetDBField('CreatedById'); if ( ($post_owner_id > 0) && ($user_notified != $post_owner_id) ) { - $this->Application->emailUser('POST.ADD', $post_owner_id); + $this->Application->emailUser('POST.ADD', $post_owner_id, $send_params); } - $this->Application->emailAdmin('POST.ADD'); + $this->Application->emailAdmin('POST.ADD', null, $send_params); } $post_helper->updateTodayPostsCount($main_object, $object->GetDBField('CreatedOn'), +1); \ No newline at end of file Index: modules/in-commerce/units/gift_certificates/gift_certificates_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/gift_certificates/gift_certificates_eh.php (revision 15925) +++ modules/in-commerce/units/gift_certificates/gift_certificates_eh.php (revision ) @@ -181,13 +181,13 @@ foreach ($ids as $id) { $object->Load($id); - $send_params = Array ( + $send_params = $object->getEmailParams(Array ( 'from_email' => $this->Application->ConfigValue('DefaultEmailSender'), 'from_name' => $object->GetDBField('Purchaser'), 'message' => $object->GetDBField('Message'), 'amount' => $object->GetField('Amount'), 'gifcert_id' => $object->GetDBField('Code'), - ); + )); $this->Application->emailAdmin('USER.GIFTCERTIFICATE', null, $send_params); \ No newline at end of file Index: modules/in-link/units/links/links_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-link/units/links/links_event_handler.php (revision 15926) +++ modules/in-link/units/links/links_event_handler.php (revision ) @@ -323,13 +323,13 @@ $object = $event->getObject(); // get link object /* @var $object kDBItem */ - $send_params = Array( + $send_params = $object->getEmailParams(Array( 'from_name' => $this->Application->GetVar('ContactFormFullName'), 'from_email' => $this->Application->GetVar('ContactFormEmail'), 'from_subject' => $this->Application->GetVar('ContactFormSubject'), 'message' => $this->Application->GetVar('ContactFormBody'), 'to_linkname' => $object->GetField('Name'), - ); + )); $email_sent = $this->Application->emailUser('LINK.CONTACTFORM', $object->GetDBField('CreatedById'), $send_params); @@ -406,7 +406,7 @@ $object->SetDBField('ReciprocalLinkFound', $link_checked ? LINK_IS_RECIPROCAL : LINK_IS_NOT_RECIPROCAL); if (!$link_checked) { - $this->Application->emailAdmin('LINK.RECIPROCAL.CHECK.FAILED'); + $this->Application->emailAdmin('LINK.RECIPROCAL.CHECK.FAILED', null, $object->getEmailParams()); } } } @@ -451,7 +451,7 @@ } else { $object->DeclineChanges(); - $this->Application->emailAdmin('LINK.RECIPROCAL.CHECK.FAILED'); + $this->Application->emailAdmin('LINK.RECIPROCAL.CHECK.FAILED', null, $object->getEmailParams()); } } \ No newline at end of file Index: modules/in-auction/units/sections/ebay_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-auction/units/sections/ebay_eh.php (revision 15933) +++ modules/in-auction/units/sections/ebay_eh.php (revision ) @@ -1748,6 +1748,8 @@ $this->Application->StoreVar('ord_id', $order_id); $Order = $this->Application->recallObject('ord.item', null, Array('skip_autoload' => true)); + /* @var $Order OrdersItem */ + $Order->Load($order_id); // Add Product to cart @@ -1853,10 +1855,10 @@ 'index.php' ); $autologin_url = str_replace('/in-auction/', '/', $autologin_url); - $send_params = Array( + $send_params = $Order->getEmailParams(Array ( 'autologin_url' => $autologin_url, 'username' => $User->GetDBField('Username'), - ); + )); $this->Application->emailUser('EBAYORDER.CREATE', $User->GetID(), $send_params); @@ -3048,18 +3050,20 @@ 'index.php' ); $autologin_url = str_replace('/in-auction/', '/', $autologin_url); - $send_params = Array( + $send_params = $Order->getEmailParams(Array ( 'autologin_url' => $autologin_url, 'eBayListingId' => $a_item['eBayListingId'], 'from_email' => $admin_email, - ); + )); $this->Application->emailUser('EBAYNOTPAID.NOTIFY', $User->GetID(), $send_params); - $this->Application->emailAdmin('EBAYNOTPAID.NOTIFY', null, Array( + + $send_params = $Order->getEmailParams(Array ( 'eBayListingId' => $a_item['eBayListingId'], 'to_email' => $admin_email, )); + $this->Application->emailAdmin('EBAYNOTPAID.NOTIFY', null, $send_params); $sql = 'UPDATE '.TABLE_PREFIX.'eBayOrderItems SET NotPaidUserNotified = '.time().' @@ -3819,7 +3823,7 @@ $esender->AddCc($admin_email); } - $this->Application->emailUser('EBAYFEEDBACKNOTRECEIVED.NOTIFY', $User->GetID(), $send_params); + $this->Application->emailUser('EBAYFEEDBACKNOTRECEIVED.NOTIFY', $User->GetID(), $Product->getEmailParams()); // update LastFeedbackNotificationTime field \ No newline at end of file