示例#1
0
 public static function getCurrentTemplateId($siteId)
 {
     $cacheFlags = Config\Configuration::getValue("cache_flags");
     $ttl = isset($cacheFlags["site_template"]) ? $cacheFlags["site_template"] : 0;
     $connection = Application::getConnection();
     $sqlHelper = $connection->getSqlHelper();
     $field = $connection->getType() === "mysql" ? "`CONDITION`" : "CONDITION";
     $path2templates = IO\Path::combine(Application::getDocumentRoot(), Application::getPersonalRoot(), "templates");
     if ($ttl === false) {
         $sql = "\n\t\t\t\tSELECT " . $field . ", TEMPLATE\n\t\t\t\tFROM b_site_template\n\t\t\t\tWHERE SITE_ID = '" . $sqlHelper->forSql($siteId) . "'\n\t\t\t\tORDER BY IF(LENGTH(" . $field . ") > 0, 1, 2), SORT\n\t\t\t\t";
         $recordset = $connection->query($sql);
         while ($record = $recordset->fetch()) {
             $condition = trim($record["CONDITION"]);
             if ($condition != '' && !@eval("return " . $condition . ";")) {
                 continue;
             }
             if (IO\Directory::isDirectoryExists($path2templates . "/" . $record["TEMPLATE"])) {
                 return $record["TEMPLATE"];
             }
         }
     } else {
         $managedCache = Application::getInstance()->getManagedCache();
         if ($managedCache->read($ttl, "b_site_template")) {
             $arSiteTemplateBySite = $managedCache->get("b_site_template");
         } else {
             $arSiteTemplateBySite = array();
             $sql = "\n\t\t\t\t\tSELECT " . $field . ", TEMPLATE, SITE_ID\n\t\t\t\t\tFROM b_site_template\n\t\t\t\t\tWHERE SITE_ID = '" . $sqlHelper->forSql($siteId) . "'\n\t\t\t\t\tORDER BY SITE_ID, IF(LENGTH(" . $field . ") > 0, 1, 2), SORT\n\t\t\t\t\t";
             $recordset = $connection->query($sql);
             while ($record = $recordset->fetch()) {
                 $arSiteTemplateBySite[$record['SITE_ID']][] = $record;
             }
             $managedCache->set("b_site_template", $arSiteTemplateBySite);
         }
         if (is_array($arSiteTemplateBySite[$siteId])) {
             foreach ($arSiteTemplateBySite[$siteId] as $record) {
                 $condition = trim($record["CONDITION"]);
                 if ($condition != '' && !@eval("return " . $condition . ";")) {
                     continue;
                 }
                 if (IO\Directory::isDirectoryExists($path2templates . "/" . $record["TEMPLATE"])) {
                     return $record["TEMPLATE"];
                 }
             }
         }
     }
     return ".default";
 }
示例#2
0
 public function cleanUpDirectory($directoryName)
 {
     //Cleanup previous import files
     $directory = new \Bitrix\Main\IO\Directory($directoryName);
     if ($directory->isExists()) {
         if (defined("BX_CATALOG_IMPORT_1C_PRESERVE")) {
             $i = 0;
             while (\Bitrix\Main\IO\Directory::isDirectoryExists($directory->getPath() . $i)) {
                 $i++;
             }
             $directory->rename($directory->getPath() . $i);
         } else {
             foreach ($directory->getChildren() as $directoryEntry) {
                 $match = array();
                 if ($directoryEntry->isDirectory() && $directoryEntry->getName() === "Reports") {
                     $emptyDirectory = true;
                     $reportsDirectory = new \Bitrix\Main\IO\Directory($directoryEntry->getPath());
                     foreach ($reportsDirectory->getChildren() as $reportsEntry) {
                         $match = array();
                         if (preg_match("/(\\d\\d\\d\\d-\\d\\d-\\d\\d)\\./", $reportsEntry->getName(), $match)) {
                             if ($match[1] >= date("Y-m-d", time() - 5 * 24 * 3600) && $match[1] < date("Y-m-d")) {
                                 //Preserve the file
                                 $emptyDirectory = false;
                             } else {
                                 $reportsEntry->delete();
                             }
                         } else {
                             $reportsEntry->delete();
                         }
                     }
                     if ($emptyDirectory) {
                         $directoryEntry->delete();
                     }
                 } else {
                     $directoryEntry->delete();
                 }
             }
         }
     }
 }
示例#3
0
 public function clearLogFile()
 {
     $logDir = $this->getLogFileDir();
     if (!Main\IO\Directory::isDirectoryExists($logDir)) {
         Main\IO\Directory::createDirectory($logDir);
     }
     $logFile = $this->getLogFilePath();
     Main\IO\File::putFileContents($logFile, '');
 }
示例#4
0
 /**
  * Checks if the configuration is already exists
  *
  * @param $folder
  * @param $appCode - application code
  *
  * @return bool
  *
  * @see ConfigTable::getSupportedPlatforms for details on availible platforms
  */
 public static function copyFromTemplate($folder, $appCode)
 {
     $appFolderPath = Application::getDocumentRoot() . "/" . $folder . "/";
     $templatePath = Application::getDocumentRoot() . "/bitrix/modules/mobileapp/templates_app/simple/";
     $fileList = array("config.php", ".mobile_menu.php", "settings.php", "index.php", "menu.php");
     if (!Directory::isDirectoryExists($appFolderPath)) {
         for ($i = 0; $i < count($fileList); $i++) {
             File::putFileContents($appFolderPath . $fileList[$i], str_replace(array("#folder#", "#code#"), array($folder, $appCode), File::getFileContents($templatePath . $fileList[$i])));
         }
     }
 }
示例#5
0
 protected static function deleteDirectory($path)
 {
     if (\Bitrix\Main\IO\Directory::isDirectoryExists($path)) {
         \Bitrix\Main\IO\Directory::deleteDirectory($path);
     }
 }
示例#6
0
 protected function getClasses()
 {
     if ($this->rootNamespace == false) {
         throw new Dispatcher\Exception('Root namespace incorrect');
         // paranoid disorder
     }
     $dir = dirname(__FILE__) . static::DIRECTORY_TO_CALLABLE;
     $result = array();
     if (Directory::isDirectoryExists($dir)) {
         $index = array();
         static::walkDirectory($dir, $index, '');
         if (is_array($index['FILE'])) {
             foreach ($index['FILE'] as $fileName) {
                 $fileName = str_replace($dir, '', $fileName);
                 $fileName = explode('/', $fileName);
                 if (is_array($fileName)) {
                     $query = array();
                     foreach ($fileName as $part) {
                         if ((string) $part !== '') {
                             $query[] = preg_replace('#\\.php$#', '', $part);
                         }
                     }
                 }
                 $result[] = array('ENTITY' => implode('.', $query), 'CLASS' => $this->rootNamespace . '\\' . implode('\\', array_map('ucfirst', $query)));
             }
         }
     }
     return $result;
 }
示例#7
0
 /**
  * @return bool
  */
 function UnInstallFiles()
 {
     \Bitrix\Main\IO\Directory::deleteDirectory($_SERVER["DOCUMENT_ROOT"] . '/bitrix/components/adelshin/');
     if (\Bitrix\Main\IO\Directory::isDirectoryExists($path = $this->GetPath() . '/admin')) {
         // удаляем административные файлы
         DeleteDirFiles($_SERVER["DOCUMENT_ROOT"] . $this->GetPath() . '/install/admin/', $_SERVER["DOCUMENT_ROOT"] . '/bitrix/admin');
         if ($dir = opendir($path)) {
             while (false !== ($item = readdir($dir))) {
                 if (in_array($item, $this->exclusionAdminFiles)) {
                     continue;
                 }
                 \Bitrix\Main\IO\File::deleteFile($_SERVER['DOCUMENT_ROOT'] . '/bitrix/admin/' . $this->MODULE_ID . '_' . $item);
             }
             closedir($dir);
         }
     }
     return true;
 }
示例#8
0
elseif ($_GET["mode"]=="init")
{
	if ($arParams["USE_TEMP_DIR"] === "Y")
	{
		$DIR_NAME = CTempFile::GetDirectoryName(6, "1c_catalog");
	}
	else
	{
		//Cleanup previous import files
		$directory = new \Bitrix\Main\IO\Directory($DIR_NAME);
		if ($directory->isExists())
		{
			if (defined("BX_CATALOG_IMPORT_1C_PRESERVE"))
			{
				$i = 0;
				while (\Bitrix\Main\IO\Directory::isDirectoryExists($directory->getPath().$i))
					$i++;
				$directory->rename($directory->getPath().$i);
			}
			else
			{
				foreach ($directory->getChildren() as $directoryEntry)
				{
					$match = array();
					if ($directoryEntry->isDirectory() && $directoryEntry->getName() === "Reports")
					{
						$emptyDirectory = true;
						$reportsDirectory = new \Bitrix\Main\IO\Directory($directoryEntry->getPath());
						foreach ($reportsDirectory->getChildren() as $reportsEntry)
						{
							$match = array();