private function fillSubfolders(CDocumentFolder $folder, &$arr, $level) { foreach ($folder->getChildFolders()->getItems() as $subfolder) { $arr[$subfolder->getId()] = str_repeat("-", $level) . " " . $subfolder->title; $this->fillSubfolders($subfolder, $arr, $level++); } }
public function actionConvert() { $foldersLookup = array("gost1" => "Должностные инструкции", "gost2" => "Образовательные стандарты", "gost3" => "Самообследование", "gost4" => "Учебные планы", "gost5" => "К диплому", "gost6" => "Интеллектуальная система самообучения и самоорганизации пользователей веб-портала", "gost7" => "СДО MOODLE", "gost8" => "Практика", "gost9" => "Материалы для оформления УМК"); // создадим папки foreach ($foldersLookup as $key => $title) { $folder = new CDocumentFolder(); $folder->title = $title; $folder->save(); // сконвертим файлы в папках $query = new CQuery(); $query->select("f.*")->from(TABLE_DOCUMENTS . " as f")->condition("nameFolder = '" . $key . "'"); foreach ($query->execute()->getItems() as $arr) { $ar = new CDocumentActiveRecord($arr); $ar->setTable(TABLE_DOCUMENTS); $file = new CDocumentFile($ar); $file->folder_id = $folder->getId(); $file->save(); } } $this->redirect("?action=index"); }