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"; }
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(); } } } } }
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, ''); }
/** * 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]))); } } }
protected static function deleteDirectory($path) { if (\Bitrix\Main\IO\Directory::isDirectoryExists($path)) { \Bitrix\Main\IO\Directory::deleteDirectory($path); } }
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; }
/** * @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; }
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();