/** * @param Entity\Event $event * @return Entity\EventResult */ public static function onBeforeAdd(Entity\Event $event) { $result = new Entity\EventResult(); $data = $event->getParameter('fields'); if (isset($data['TOKEN_EXPIRES_IN'])) { $dateTime = new Type\DateTime(); $dateTime->add('+ ' . $data['TOKEN_EXPIRES_IN'] . ' sec'); $result->modifyFields(['TOKEN_FINAL_DATE' => $dateTime]); } return $result; }
public static function getMap() { $date = new DateTime(); $yesterday = Application::getConnection()->getSqlHelper()->getCharToDateFunction($date->add('-1 DAY')->format("Y-m-d H:i:s")); return array('ID' => array('data_type' => 'integer', 'primary' => true, 'autocomplete' => true), 'TOKEN' => array('data_type' => 'string', 'required' => true, 'validation' => array(__CLASS__, 'validateToken')), 'FILENAME' => array('data_type' => 'string', 'validation' => array(__CLASS__, 'validateFilename')), 'CONTENT_TYPE' => array('data_type' => 'string', 'validation' => array(__CLASS__, 'validateContentType')), 'PATH' => array('data_type' => 'string', 'required' => true, 'validation' => array(__CLASS__, 'validatePath')), 'BUCKET_ID' => array('data_type' => 'integer'), 'SIZE' => array('data_type' => 'integer'), 'WIDTH' => array('data_type' => 'integer'), 'HEIGHT' => array('data_type' => 'integer'), 'IS_CLOUD' => array('data_type' => 'boolean', 'values' => array(0, 1), 'default_value' => 0), 'IRRELEVANT' => array('data_type' => 'boolean', 'expression' => array("CASE WHEN (%s < {$yesterday}) THEN 1 ELSE 0 END", 'CREATE_TIME'), 'values' => array(0, 1)), 'CREATED_BY' => array('data_type' => 'integer'), 'CREATE_USER' => array('data_type' => 'Bitrix\\Main\\UserTable', 'reference' => array('=this.CREATED_BY' => 'ref.ID')), 'CREATE_TIME' => array('data_type' => 'datetime', 'required' => true, 'default_value' => new DateTime())); }
$dateFormat = 'Y-m-d'; $axisDateFormat = "D\nd.m"; $axisCursorDateFormat = "l\nd M Y"; break; case 'week': $fromDate = Type\DateTime::createFromTimestamp(mktime(0, 0, 0, date('n'), date('j') - 7)); $interval = 'day'; $dateFormat = 'Y-m-d'; $axisDateFormat = "D\nd.m"; $axisCursorDateFormat = "l\nd M Y"; break; case 'custom_day': // for today, from 00:00 till 23:59 $arParams['CUSTOM_DAY'] = isset($arParams['CUSTOM_DAY']) ? $arParams['CUSTOM_DAY'] : $_REQUEST['CUSTOM_DAY']; $fromDate = new Type\DateTime($arParams['CUSTOM_DAY'] . ' 00:00:00', 'Y-m-d H:i:s'); $fromDate->add('-1 hour'); $toDate = clone $fromDate; $toDate->add('+25 hour'); $interval = 'hour'; $dateFormat = 'Y-m-d H:00:00'; $axisDateFormat = "H"; $axisCursorDateFormat = "d M Y\n" . (IsAmPmMode() ? "g:i a" : "H:i"); break; default: // for today, from 00:00 till 23:59 $fromDate = Type\DateTime::createFromTimestamp(mktime(-1, 0, 0)); $toDate = Type\DateTime::createFromTimestamp(mktime(24, 0, 0)); $interval = 'hour'; $dateFormat = 'Y-m-d H:00:00'; $axisDateFormat = "H"; $axisCursorDateFormat = array("today" => "today, " . (IsAmPmMode() ? "g:i a" : "H:i"));
/** * @param int $days * * @return bool */ public static function deleteOld($days) { $expired = new Main\Type\DateTime(); $expired->add('-' . $days . 'days'); $expiredValue = $expired->format('Y-m-d H:i:s'); /** @var Main\DB\Connection $connection */ $connection = Main\Application::getConnection(); /** @var Main\DB\SqlHelper $sqlHelper */ $sqlHelper = $connection->getSqlHelper(); $sqlExpiredDate = $sqlHelper->getDateToCharFunction("'" . $expiredValue . "'"); if ($connection instanceof Main\DB\MysqlCommonConnection) { $query = "DELETE FROM b_sale_basket_props WHERE\n\t\t\t\t\t\t\t\t\t\tBASKET_ID IN (\n\t\t\t\t\t\t\t\t\t\t\t SELECT ID FROM b_sale_basket WHERE\n\t\t\t\t\t\t\t\t\t\t\t \t\t\tFUSER_ID IN (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT b_sale_fuser.id FROM b_sale_fuser WHERE\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tb_sale_fuser.DATE_UPDATE < " . $sqlExpiredDate . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t) LIMIT " . static::BASKET_DELETE_LIMIT; $connection->queryExecute($query); $query = "DELETE FROM b_sale_basket\tWHERE\n\t\t\t\t\t\t\t\t\tFUSER_ID IN (\n \t\t\t\t\t\t\t\t\t\tSELECT b_sale_fuser.id FROM b_sale_fuser WHERE\n \t\t\t\t\t\t\t\t\t\t\t\tb_sale_fuser.DATE_UPDATE < " . $sqlExpiredDate . "\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\t\t) LIMIT " . static::BASKET_DELETE_LIMIT; $connection->queryExecute($query); } elseif ($connection instanceof Main\DB\MssqlConnection) { $query = "DELETE TOP (" . static::BASKET_DELETE_LIMIT . ") FROM b_sale_basket_props WHERE\n\t\t\t\t\t\t\t\t\t\tBASKET_ID IN (\n \t\t\t\t\t\t\t\t\t\t\tSELECT id FROM b_sale_basket WHERE\n \t\t\t\t\t\t\t\t\t\t\t\t\t\tFUSER_ID IN (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT b_sale_fuser.id FROM b_sale_fuser\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE b_sale_fuser.DATE_UPDATE < " . $sqlExpiredDate . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)"; $connection->queryExecute($query); $query = "DELETE TOP (" . static::BASKET_DELETE_LIMIT . ") FROM b_sale_basket WHERE\n\t\t\t\t\t\t\t\t\tFUSER_ID IN (\n \t\t\t\t\t\t\t\t\t\tSELECT b_sale_fuser.id FROM b_sale_fuser WHERE\n \t\t\t\t\t\t\t\t\t\t\t\tb_sale_fuser.DATE_UPDATE < " . $sqlExpiredDate . "\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\t\t)"; $connection->queryExecute($query); } elseif ($connection instanceof Main\DB\OracleConnection) { $query = "DELETE FROM b_sale_basket_props WHERE\n\t\t\t\t\t\t\t\t\t\tBASKET_ID IN (\n \t\t\t\t\t\t\t\t\t\t\tSELECT id FROM b_sale_basket WHERE\n \t\t\t\t\t\t\t\t\t\t\t\t\t\tFUSER_ID IN (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT b_sale_fuser.id FROM b_sale_fuser WHERE\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tb_sale_fuser.DATE_UPDATE < " . $sqlExpiredDate . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t) AND ROWNUM <= " . static::BASKET_DELETE_LIMIT; $connection->queryExecute($query); $query = "DELETE FROM b_sale_basket WHERE\n\t\t\t\t\t\t\t\t\tFUSER_ID IN (\n \t\t\t\t\t\t\t\t\t\tSELECT b_sale_fuser.id FROM b_sale_fuser WHERE\n \t\t\t\t\t\t\t\t\t\t\t\tb_sale_fuser.DATE_UPDATE < " . $sqlExpiredDate . "\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\t\t) AND ROWNUM <= " . static::BASKET_DELETE_LIMIT; $connection->queryExecute($query); } return true; }
/** * Delete fuserId over several days. * * @param int $days Interval. * @return void */ public static function deleteOld($days) { $expired = new Main\Type\DateTime(); $expired->add('-' . $days . 'days'); $expiredValue = $expired->format('Y-m-d H:i:s'); /** @var Main\DB\Connection $connection */ $connection = Main\Application::getConnection(); /** @var Main\DB\SqlHelper $sqlHelper */ $sqlHelper = $connection->getSqlHelper(); $query = "DELETE FROM b_sale_fuser WHERE\n\t\t\t\t\t\t\t\t\tb_sale_fuser.DATE_UPDATE < " . $sqlHelper->getDateToCharFunction("'" . $expiredValue . "'") . "\n\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\tAND b_sale_fuser.id NOT IN (select FUSER_ID from b_sale_basket)"; $connection->queryExecute($query); }
/** * @param int $days * * @return bool */ public static function deleteOld($days) { $connection = Main\Application::getConnection(); $expired = new Main\Type\DateTime(); $expired->add('-' . $days . 'days'); $expiredValue = $expired->format('Y-m-d H:i:s'); if ($connection instanceof Main\DB\MysqlConnection) { $query = "DELETE FROM b_sale_basket_props WHERE\n\t\t\t\t\t\t\t\t\t\tBASKET_ID IN (\n\t\t\t\t\t\t\t\t\t\t\t SELECT ID FROM b_sale_basket WHERE\n\t\t\t\t\t\t\t\t\t\t\t \t\t\tFUSER_ID IN (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT b_sale_fuser.id FROM b_sale_fuser WHERE\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tb_sale_fuser.DATE_UPDATE < '" . $expiredValue . "'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t) LIMIT " . static::BASKET_DELETE_LIMIT; $connection->query($query); $query = "DELETE FROM b_sale_basket\tWHERE\n\t\t\t\t\t\t\t\t\tFUSER_ID IN (\n \t\t\t\t\t\t\t\t\t\tSELECT b_sale_fuser.id FROM b_sale_fuser WHERE\n \t\t\t\t\t\t\t\t\t\t\t\tb_sale_fuser.DATE_UPDATE < '" . $expiredValue . "'\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\t\t) LIMIT " . static::BASKET_DELETE_LIMIT; $connection->query($query); } elseif ($connection instanceof Main\DB\MssqlConnection) { $query = "DELETE TOP (" . static::BASKET_DELETE_LIMIT . ") FROM b_sale_basket_props WHERE\n\t\t\t\t\t\t\t\t\t\tBASKET_ID IN (\n \t\t\t\t\t\t\t\t\t\t\tSELECT id FROM b_sale_basket WHERE\n \t\t\t\t\t\t\t\t\t\t\t\t\t\tFUSER_ID IN (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT b_sale_fuser.id FROM b_sale_fuser\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE b_sale_fuser.DATE_UPDATE < CONVERT(varchar(20),'" . $expiredValue . "', 20)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)"; $connection->query($query); $query = "DELETE TOP (" . static::BASKET_DELETE_LIMIT . ") FROM b_sale_basket WHERE\n\t\t\t\t\t\t\t\t\tFUSER_ID IN (\n \t\t\t\t\t\t\t\t\t\tSELECT b_sale_fuser.id FROM b_sale_fuser WHERE\n \t\t\t\t\t\t\t\t\t\t\t\tb_sale_fuser.DATE_UPDATE < CONVERT(varchar(20),'" . $expiredValue . "', 20)\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\t\t)"; $connection->query($query); } elseif ($connection instanceof Main\DB\OracleConnection) { $query = "DELETE FROM b_sale_basket_props WHERE\n\t\t\t\t\t\t\t\t\t\tBASKET_ID NOT IN (\n \t\t\t\t\t\t\t\t\t\t\tSELECT id FROM b_sale_basket WHERE\n \t\t\t\t\t\t\t\t\t\t\t\t\t\tFUSER_ID IN (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT b_sale_fuser.id FROM b_sale_fuser WHERE\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tb_sale_fuser.DATE_UPDATE < TO_DATE('" . $expiredValue . "', 'YYYY-MM-DD HH24:MI:SS')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t) AND ROWNUM <= " . static::BASKET_DELETE_LIMIT; $connection->query($query); $query = "DELETE FROM b_sale_basket WHERE\n\t\t\t\t\t\t\t\t\tFUSER_ID IN (\n \t\t\t\t\t\t\t\t\t\tSELECT b_sale_fuser.id FROM b_sale_fuser WHERE\n \t\t\t\t\t\t\t\t\t\t\t\tb_sale_fuser.DATE_UPDATE < TO_DATE('" . $expiredValue . "', 'YYYY-MM-DD HH24:MI:SS')\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\t\t) AND ROWNUM <= " . static::BASKET_DELETE_LIMIT; $connection->query($query); } return true; }
/** * Get url for showing preview file. * @param FileData $fileData * @return string|null */ public function getDataForViewFile(FileData $fileData) { if (!$this->checkRequiredInputParams($fileData->toArray(), array('file'))) { return null; } $seconds = (int) 300; $deathTime = new DateTime(); $deathTime->add("+ {$seconds} seconds"); $data = array('TYPE' => ExternalLinkTable::TYPE_AUTO, 'DEATH_TIME' => $deathTime); $specificVersionModel = $fileData->getVersion(); if ($specificVersionModel) { $data['VERSION_ID'] = $specificVersionModel->getId(); } $extLinkModel = $fileData->getFile()->addExternalLink($data); if (!$extLinkModel) { $this->errorCollection->add(array(new Error(Loc::getMessage('DISK_GOOGLE_VIEWER_HANDLER_ERROR_COULD_NOT_FIND_EXT_LINK'), self::ERROR_COULD_NOT_FIND_EXT_LINK))); $this->errorCollection->add($fileData->getFile()->getErrors()); } $extLink = Driver::getInstance()->getUrlManager()->getUrlExternalLink(array('hash' => $extLinkModel->getHash(), 'action' => 'download'), true); return array('id' => $extLinkModel->getHash(), 'viewUrl' => Driver::getInstance()->getUrlManager()->generateUrlForGoogleViewer($extLink), 'neededDelete' => false, 'neededCheckView' => true); }
/** * @param array $chain * @return void */ protected static function send($chain) { // set send status if (empty($chain['ID'])) { return; } if (empty($chain['POSTING_ID'])) { if (empty(static::$postingId)) { return; } $updateFields['POSTING_ID'] = static::$postingId; } $updateFields = array(); if ($chain['STATUS'] == MailingChainTable::STATUS_WAIT) { $autoSendTime = new \Bitrix\Main\Type\DateTime(); $autoSendTime->add($chain['TIME_SHIFT'] . ' minutes'); $updateFields['STATUS'] = MailingChainTable::STATUS_SEND; $updateFields['AUTO_SEND_TIME'] = $autoSendTime; } else { $updateFields['AUTO_SEND_TIME'] = $chain['AUTO_SEND_TIME']; $updateFields['STATUS'] = $chain['STATUS']; } if (count($updateFields) > 0) { MailingChainTable::update(array('ID' => $chain['ID']), $updateFields); } }
/** * @param $days */ public static function deleteOld($days) { $connection = Main\Application::getConnection(); $expired = new Main\Type\DateTime(); $expired->add('-' . $days . 'days'); $expiredValue = $expired->format('Y-m-d H:i:s'); if ($connection instanceof Main\DB\MysqlConnection) { $query = "DELETE FROM b_sale_fuser WHERE\n\t\t\t\t\t\t\t\t\t\tb_sale_fuser.DATE_UPDATE < '" . $expiredValue . "'\n\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.id NOT IN (select FUSER_ID from b_sale_basket)"; $connection->query($query); } elseif ($connection instanceof Main\DB\MssqlConnection) { $query = "DELETE FROM b_sale_fuser WHERE\n\t\t\t\t\t\t\t\t\t\tb_sale_fuser.DATE_UPDATE < CONVERT(varchar(20),'" . $expiredValue . "', 20)\n\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.id NOT IN (select FUSER_ID from b_sale_basket)"; $connection->query($query); } elseif ($connection instanceof Main\DB\OracleConnection) { $query = "DELETE FROM b_sale_fuser WHERE\n\t\t\t\t\t\t\t\t\t\tb_sale_fuser.DATE_UPDATE < TO_DATE('" . $expiredValue . "', 'YYYY-MM-DD HH24:MI:SS')\n\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.USER_ID IS NULL\n\t\t\t\t\t\t\t\t\t\tAND b_sale_fuser.id NOT IN (select FUSER_ID from b_sale_basket)"; $connection->query($query); } }