示例#1
0
<?php

/**
 * Created by PhpStorm.
 * User: jplaskonka
 * Date: 05.09.14
 * Time: 09:11
 * Migruje foldery assetów do pliku
 */
include dirname(__FILE__) . "/../../../../pimcore/cli/startup.php";
function getFolderList(Asset_Folder $rootFolder, &$folderList = array())
{
    if ($rootFolder->getParent()) {
        $folderList[] = array("parent" => $rootFolder->getParent()->getFullPath(), "key" => $rootFolder->getKey());
    }
    foreach ($rootFolder->getChilds() as $childFolder) {
        if ($childFolder instanceof Asset_Folder) {
            getFolderList($childFolder, $folderList);
        }
    }
}
$rootFolder = Asset_Folder::getByPath("/");
$folderList = array();
getFolderList($rootFolder, $folderList);
$file = fopen("folders/list.txt", "w");
fwrite($file, json_encode($folderList));
echo "Done\n";
 protected function getOrCreateAssetFolderByPath($path)
 {
     $folder = Asset_Folder::getByPath($path);
     if (!$folder instanceof Asset_Folder) {
         str_replace("\\", "/", $path);
         $parts = explode("/", $path);
         if (empty($parts[count($parts) - 1])) {
             $parts = array_slice($parts, 0, -1);
         }
         $parts = array_slice($parts, 1);
         $parentPath = "/";
         foreach ($parts as $part) {
             $parent = Asset_Folder::getByPath($parentPath);
             if ($parent instanceof Asset_Folder) {
                 $part = Pimcore_File::getValidFilename($part);
                 $folder = Asset_Folder::getByPath($parentPath . $part);
                 if (!$folder instanceof Asset_Folder) {
                     $folder = Asset::create($parent->getId(), array("filename" => $part, "type" => "folder", "userOwner" => $this->getUser()->getId(), "userModification" => $this->getUser()->getId()));
                 }
                 $parentPath .= $part . "/";
             } else {
                 Logger::error("parent not found!");
                 return null;
             }
         }
     }
     return $folder;
 }
示例#3
0
<?php

/**
 * Created by PhpStorm.
 * User: jplaskonka
 * Date: 05.09.14
 * Time: 09:11
 * Migruje foldery assetów do pliku
 */
include dirname(__FILE__) . "/../../pimcore/cli/startup.php";
$file = file_get_contents(dirname(__FILE__) . "folders/list.txt");
if ($file) {
    $folderList = json_decode($file);
    foreach ($folderList as $folder) {
        $newFolder = new Asset_Folder();
        $newFolder->setParent(Asset_Folder::getByPath($folder->parent));
        $newFolder->setFilename($folder->key);
        try {
            $newFolder->save();
        } catch (Exception $e) {
            echo $folder->parent . "/" . $folder->key . ": already exists\n";
        }
    }
}