/** * Returns an singleton instance of this class * * @param object $config * @param object $args * @return */ public static function getInstance($config, $args) { if (self::$instance == null) { self::$instance = new CustomerMessagesAfterLoginManager($config, $args); } return self::$instance; }
public function service() { $customerMessagesAfterLoginManager = CustomerMessagesAfterLoginManager::getInstance($this->config, $this->args); $customer_emails = $this->secure($_REQUEST['to']); if (empty($customer_emails)) { $this->error(array('message' => "Please select recipients!")); } $title_formula = $_REQUEST['title_formula']; if (empty($title_formula)) { $this->error(array('message' => "Please input message title formula!")); } $message_formula = $_REQUEST['message_formula']; if (empty($message_formula)) { $this->error(array('message' => "Please input message body formula!")); } $type = $this->secure($_REQUEST['type']); $shows_count = $this->secure($_REQUEST['shows_count']); $customer_emails_array = explode(',', $customer_emails); foreach ($customer_emails_array as $customer_email) { $dto = $customerMessagesAfterLoginManager->createDto(); $dto->setType($type); $dto->setMessageFormula($message_formula); $dto->setTitleFormula($title_formula); $dto->setFromEmail($this->getCustomerLogin()); $dto->setEmail($customer_email); $dto->setShowsCount($shows_count); $dto->setDatetime(date('Y-m-d H:i:s')); $customerMessagesAfterLoginManager->insertDto($dto); } $this->ok(); }
public function service() { $onlineUserManager = new OnlineUsersManager($this->config, $this->args); $customer = $this->getCustomer(); if ($this->getUserLevel() !== UserGroups::$GUEST) { //add to online users table $customerEmail = $customer->getEmail(); $newAdded = $onlineUserManager->addOnlineUser($this->getUserLevel(), $customer) > 0; if ($newAdded) { $customerMessagesAfterLoginManager = CustomerMessagesAfterLoginManager::getInstance($this->config, $this->args); $customerAfterLoginMessagesDtos = $customerMessagesAfterLoginManager->getCustomerMessages($customer->getEmail()); $customerMessagesAfterLoginManager->incrementCustomerMessagesShowedCount($customerAfterLoginMessagesDtos); $customerAfterLoginMessagesDtosToArray = AbstractDto::dtosToArray($customerAfterLoginMessagesDtos); } //check user alerts $winUid = $_REQUEST['win_uid']; $customerAlertListManager = CustomerAlertListManager::getInstance($this->config, $this->args); $registeredCustomerAlertsDtosToArray = $customerAlertListManager->getRegisteredCustomerAlerts($customer, $winUid); $customerAlertsManager = CustomerAlertsManager::getInstance($this->config, $this->args); $customerMessagesDtos = $customerAlertsManager->getCustomerAlertsByCustomerLogin($customerEmail, $winUid); $customerMessagesToPhpArray = AbstractDto::dtosToArray($customerMessagesDtos); } else { //add guest in online users table $guest_online_table_id = $_COOKIE['guest_online_table_id']; if ($guest_online_table_id) { $onlineUser = $onlineUserManager->selectByPK($guest_online_table_id); if (isset($onlineUser)) { $onlineUserManager->updateOnlineUserAttributes($onlineUser); } else { $newId = $onlineUserManager->addOnlineUser($this->getUserLevel(), null); if (isset($newId)) { $this->setcookie('guest_online_table_id', $newId); } } } else { $newId = $onlineUserManager->addOnlineUser($this->getUserLevel(), null); if (isset($newId)) { $this->setcookie('guest_online_table_id', $newId); } } } $jsonArr = array('status' => "ok"); if (!empty($registeredCustomerAlertsDtosToArray)) { $jsonArr['alerts'] = $registeredCustomerAlertsDtosToArray; } if (!empty($customerAfterLoginMessagesDtosToArray)) { $jsonArr['customer_after_login_messages'] = $customerAfterLoginMessagesDtos; } if (!empty($customerMessagesToPhpArray)) { $jsonArr['messages'] = $customerMessagesToPhpArray; } echo json_encode($jsonArr); return true; }
public function service() { $message_ids = $this->secure($_REQUEST['message_ids']); $message_ids_array = explode(',', $message_ids); $customerMessagesAfterLoginManager = CustomerMessagesAfterLoginManager::getInstance($this->config, $this->args); foreach ($message_ids_array as $mId) { $customerMessagesAfterLoginManager->setMesssageNotShowAnyMoreToCustomer($mId); } $jsonArr = array('status' => "ok"); echo json_encode($jsonArr); return true; }
public function load() { $customerMessagesAfterLoginManager = CustomerMessagesAfterLoginManager::getInstance($this->config, $this->args); $dtos = $customerMessagesAfterLoginManager->getByFromEmail($this->getCustomerLogin()); $this->addParam('dtos', $dtos); }
public function service() { $action = $_REQUEST['action']; $params = array(); switch ($action) { case 'delete_user': $this->deleteUser($_REQUEST['user_id']); break; case 'delete_all_unnecessary_items_pictures': $ret = $this->deleteAllUnnecessaryItemsPictures(); $params = array('removed_items_ids' => implode(',', $ret)); break; case 'set_item_spec': $itemId = $_REQUEST['item_id']; $shortSpec = $_REQUEST['short_spec']; $fullSpec = $_REQUEST['full_spec']; require_once CLASSES_PATH . "/managers/ItemManager.class.php"; $itemManager = ItemManager::getInstance($this->config, $this->args); $itemManager->updateTextField($itemId, 'short_description', $shortSpec); $itemManager->updateTextField($itemId, 'full_description', $fullSpec); break; case 'get_item_spec': $itemId = $_REQUEST['item_id']; require_once CLASSES_PATH . "/managers/ItemManager.class.php"; $itemManager = ItemManager::getInstance($this->config, $this->args); $itemDto = $itemManager->selectByPK($itemId); $params['short_spec'] = $itemDto->getShortDescription(); $params['full_spec'] = $itemDto->getFullDescription(); break; case 'get_camera_1_snap': $url = $this->getCmsVar('pcstore_camera_1_url'); $login = $this->getCmsVar('pcstore_camera_1_login'); $pass = $this->getCmsVar('pcstore_camera_1_pass'); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, $login . ':' . $pass); $img = curl_exec($ch); header("Content-Type: image/jpeg"); echo $img; exit; case 'filter_emails': require_once CLASSES_PATH . "/managers/EmailSenderManager.class.php"; require_once CLASSES_PATH . "/managers/UninterestingEmailsManager.class.php"; $emails = $_REQUEST['emails']; $emailsArray = EmailSenderManager::getEmailsFromText($emails); $uninterestingEmailsManager = UninterestingEmailsManager::getInstance($this->config, $this->args); $filteredEmailsArray = $uninterestingEmailsManager->removeUninterestingEmailsFromList($emailsArray); $params['count'] = count($filteredEmailsArray); $params['emails'] = implode(';', $filteredEmailsArray); break; case 'is_price_values_ready': $companyId = intval($_REQUEST['company_id']); require_once CLASSES_PATH . "/managers/PriceTextsManager.class.php"; $priceTextsManager = PriceTextsManager::getInstance($this->config, $this->args); $companyPriceValuesReady = $priceTextsManager->isCompanyPriceValuesReady($companyId); $params['ready'] = $companyPriceValuesReady ? '1' : '0'; break; case 'delete_price_values_column': $companyId = intval($_REQUEST['company_id']); $sheetIndex = intval($_REQUEST['sheet_index']); $priceIndex = intval($_REQUEST['price_index']); $columnLetter = $this->secure($_REQUEST['column_letter']); require_once CLASSES_PATH . "/managers/PriceValuesManager.class.php"; $priceValuesManager = PriceValuesManager::getInstance($this->config, $this->args); $priceValuesManager->moveColumnValuesToLastColumn($companyId, $priceIndex, $sheetIndex, $columnLetter); break; case 'delete_customer_amessage_after_login': $pk = intval($_REQUEST['id']); require_once CLASSES_PATH . "/managers/CustomerMessagesAfterLoginManager.class.php"; $customerMessagesAfterLoginManager = CustomerMessagesAfterLoginManager::getInstance($this->config, $this->args); $customerMessagesAfterLoginManager->deleteByPK($pk); break; case 'preview_customer_message': $pk = intval($_REQUEST['id']); require_once CLASSES_PATH . "/managers/CustomerMessagesAfterLoginManager.class.php"; $customerMessagesAfterLoginManager = CustomerMessagesAfterLoginManager::getInstance($this->config, $this->args); $dto = $customerMessagesAfterLoginManager->selectByPK($pk); $params = AbstractDto::dtoToArray($dto); break; case 'delete_old_hidden_items': $monthsNumber = intval($_REQUEST['months_number']); require_once CLASSES_PATH . "/managers/ItemManager.class.php"; $itemManager = ItemManager::getInstance($this->config, $this->args); $params['count'] = $itemManager->deleteOldHiddenItemsByMonthsNumber($monthsNumber); break; case 'update_companies_price_text': $company_id = intval($_REQUEST['company_id']); $companyManager = CompanyManager::getInstance($this->config, $this->args); if ($company_id == 0) { $allCompanies = $companyManager->getAllCompanies(true, true); } else { $allCompanies[] = $companyManager->selectByPK($company_id); } $cidsArray = array(); foreach ($allCompanies as $c) { $cidsArray[] = $c->getId(); } $this->updateCompanyPriceText(implode(',', $cidsArray)); break; case 'deploy_latest_pcstore_changes': $protocol = "http://"; if (isset($_SERVER["HTTPS"])) { $protocol = "https://"; } $content = file_get_contents($protocol . HTTP_HOST . '/8350e5a3e24c153df2275c9f80692773.php'); $params['message'] = $content; break; } $this->ok($params); }
public function addOnlineUser($userLevel, $customerDto) { $browserInfo = $this->getBrowser(); // if ($browserInfo["name"] === 'Unknown') { // return false; // } $userEmail = ''; if (isset($customerDto)) { $userEmail = $customerDto->getEmail(); } //last ping time set for customer $previousPing = null; switch ($userLevel) { case UserGroups::$ADMIN: $adminManager = AdminManager::getInstance($this->config, $this->args); $previousPing = $customerDto->getLastPing(); $adminManager->setLastPingToNow($customerDto->getId()); break; case UserGroups::$COMPANY: $companyManager = CompanyManager::getInstance($this->config, $this->args); $previousPing = $customerDto->getLastPing(); $companyManager->setLastPingToNow($customerDto->getId($customerDto->getId())); break; case UserGroups::$USER: $userManager = UserManager::getInstance($this->config, $this->args); $previousPing = $customerDto->getLastPing(); $userManager->setLastPingToNow($customerDto->getId($customerDto->getId())); break; } if (isset($customerDto)) { $onlineUser = $this->getOnlineUserByEmail($userEmail); if (isset($onlineUser)) { $this->updateOnlineUserAttributes($onlineUser); return false; } } $guest_online_table_id = $_COOKIE['guest_online_table_id']; $oldRow = $this->selectByPK($guest_online_table_id); $ip = $_SERVER["REMOTE_ADDR"]; $host = gethostbyaddr($_SERVER['REMOTE_ADDR']); $country = $_SERVER["GEOIP_COUNTRY_NAME"]; $browser = $browserInfo["name"]; $browserVersion = $browserInfo["version"]; $platform = $browserInfo["platform"]; $status = "online"; if ($browser != 'Unknown' && $platform != 'Unknown' && $browserVersion != '?') { if (!isset($oldRow)) { $dto = $this->mapper->createDto(); } else { $dto = $oldRow; } $dto->setEmail($userEmail); $dto->setIp($ip); $dto->setHost($host); $dto->setCountry($country); $dto->setBrowserName($browser); $dto->setBrowserVersion($browserVersion); $dto->setBrowserPlatform($platform); $dto->setLoginDateTime(date('Y-m-d H:i:s')); $dto->setStatus($status); if (!isset($oldRow)) { $id = $this->mapper->insertDto($dto); } else { $this->mapper->updateByPK($dto); $id = $dto->getId(); } } $loginHistoryManager = LoginHistoryManager::getInstance($this->config, $this->args); $ulstring = $this->getUserLevelString($userLevel); $loginHistoryManager->addRow($userEmail, $ulstring, $ip, $host, $country, $browser, $browserVersion, $platform); $customerMessagesAfterLoginManager = CustomerMessagesAfterLoginManager::getInstance($this->config, $this->args); $customerMessagesAfterLoginManager->addCustomerMessagesAfterLoginByPreviousPing($customerDto, $userLevel, $previousPing); return $id; }