예제 #1
0
/**
 *
 * @param object $task
 * @param array $args
 */
function run_sfassetlibrary_create_root($task, $args)
{
    $app = $args[0];
    $env = empty($args[1]) ? 'dev' : $args[1];
    // define constants
    define('SF_ROOT_DIR', sfConfig::get('sf_root_dir'));
    define('SF_APP', $app);
    define('SF_ENVIRONMENT', $env);
    define('SF_DEBUG', true);
    require_once SF_ROOT_DIR . DIRECTORY_SEPARATOR . 'apps' . DIRECTORY_SEPARATOR . SF_APP . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php';
    // initialize database manager
    $databaseManager = new sfDatabaseManager();
    $databaseManager->initialize();
    $con = Propel::getConnection();
    if (sfAssetFolderPeer::getRoot()) {
        throw new sfException('The asset library already has a root');
    }
    echo pakeColor::colorize(sprintf("Creating root node at %s...\n", sfConfig::get('app_sfAssetsLibrary_upload_dir', 'media')), 'COMMENT');
    sfAssetFolderPeer::createRoot();
    echo pakeColor::colorize("Root Node Created\n", 'INFO');
}
/**
 *
 * @param object $task
 * @param array $args
 */
function run_sfassetlibrary_synchronize($task, $args, $options)
{
    if (!count($args)) {
        sfAssetsLibraryTools::log('Usage: php symfony sfassetlibrary-synchronize [app] [dirname] --notVerbose --removeOrphanAssets --removeOrphanFolders');
        return;
    }
    $app = $args[0];
    if (!is_dir(sfConfig::get('sf_app_dir') . DIRECTORY_SEPARATOR . $app)) {
        throw new Exception('The app "' . $app . '" does not exist.');
    }
    if (!isset($args[1])) {
        throw new Exception('You must define a sychronization folder');
    }
    $base_folder = $args[1];
    $verbose = array_key_exists('notVerbose', $options) ? false : true;
    $removeOrphanAssets = array_key_exists('removeOrphanAssets', $options) ? true : false;
    $removeOrphanFolders = array_key_exists('removeOrphanFolders', $options) ? true : false;
    // define constants
    define('SF_ROOT_DIR', sfConfig::get('sf_root_dir'));
    define('SF_APP', $app);
    define('SF_ENVIRONMENT', 'dev');
    define('SF_DEBUG', true);
    // get configuration
    require_once SF_ROOT_DIR . DIRECTORY_SEPARATOR . 'apps' . DIRECTORY_SEPARATOR . SF_APP . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php';
    // initialize database manager
    $databaseManager = new sfDatabaseManager();
    $databaseManager->initialize();
    $con = Propel::getConnection();
    // synchronize
    sfAssetsLibraryTools::log(sprintf("Comparing files from %s with assets stored in the database...", $base_folder), 'green');
    $rootFolder = sfAssetFolderPeer::getRoot();
    try {
        $rootFolder->synchronizeWith($base_folder, $verbose, $removeOrphanAssets, $removeOrphanFolders);
    } catch (sfAssetException $e) {
        throw new sfException(strtr($e->getMessage(), $e->getMessageParams()));
    }
    echo pakeColor::colorize("Synchronization complete\n", 'INFO');
}
예제 #3
0
<?php

$app = "frontend";
include dirname(__FILE__) . '/../../../../test/bootstrap/functional.php';
$browser = new sfTestBrowser();
$browser->initialize();
$con = Propel::getConnection();
$con->begin();
try {
    $t = new lime_test(5, new lime_output_color());
    $t->diag('sfAssetPeer');
    $con->begin();
    $t->is(sfAssetPeer::retrieveFromUrl(sfAssetFolderPeer::getRoot()->getRelativePath() . '/filename.jpg'), null, 'sfAssetPeer::retrieveFromUrl() returns null when a URL is not found');
    $t->is(sfAssetPeer::exists(sfAssetFolderPeer::getRoot()->getId(), 'filename.jpg'), false, 'sfAssetPeer::exists() returns false when an asset is not found');
    $sfAsset = new sfAsset();
    $sfAsset->setsfAssetFolder(sfAssetFolderPeer::getRoot());
    $sfAsset->setFilename('filename.jpg');
    $sfAsset->save($con);
    $t->is(sfAssetPeer::retrieveFromUrl(sfAssetFolderPeer::getRoot()->getRelativePath() . '/filename.jpg')->getId(), $sfAsset->getId(), 'sfAssetPeer::retrieveFromUrl() finds an asset from its URL');
    $t->is(sfAssetPeer::retrieveFromUrl($sfAsset->getUrl())->getId(), $sfAsset->getId(), 'sfAssetPeer::retrieveFromUrl() finds an asset from the result of `getUrl()`');
    $t->is(sfAssetPeer::exists(sfAssetFolderPeer::getRoot()->getId(), 'filename.jpg'), true, 'sfAssetPeer::exists() returns true when an asset is found');
} catch (Exception $e) {
    echo $e->getMessage();
}
// reset DB
$con->rollback();
예제 #4
0
<?php

$app = "frontend";
include dirname(__FILE__) . '/../../../../test/bootstrap/functional.php';
$browser = new sfTestBrowser();
$browser->initialize();
$con = Propel::getConnection();
$con->begin();
try {
    // run the test
    $t = new lime_test(13, new lime_output_color());
    $t->diag('sfAssetFolder');
    $root = sfAssetFolderPeer::getRoot();
    $t->isa_ok($root, 'sfAssetFolder', 'root folder exists');
    $sfAssetFolder = new sfAssetFolder();
    $sfAssetFolder->insertAsFirstChildOf($root);
    $sfAssetFolder->setName('Test_Directory');
    $sfAssetFolder->save();
    $t->is($sfAssetFolder->getRelativePath(), $root->getRelativePath() . '/' . $sfAssetFolder->getName(), 'getRelativePath() is updated on save');
    $sfAssetFolder2 = new sfAssetFolder();
    $sfAssetFolder2->insertAsFirstChildOf($sfAssetFolder);
    $sfAssetFolder2->setName('Test_Sub-directory');
    $sfAssetFolder2->save();
    $t->is($sfAssetFolder2->getRelativePath(), $sfAssetFolder->getRelativePath() . '/' . $sfAssetFolder2->getName(), 'getRelativePath() is updated on save for subfolders');
    $assets_path = dirname(__FILE__) . '/../assets/';
    $test_asset = $assets_path . 'raikkonen.jpg';
    $t->ok(is_file($test_asset), 'test asset found');
    $sfAsset = new sfAsset();
    $sfAsset->setsfAssetFolder($sfAssetFolder2);
    $sfAsset->create($test_asset, false);
    $sfAsset->save();
예제 #5
0
    $t->is($sfAsset->getUrl(), DIRECTORY_SEPARATOR . sfConfig::get('app_sfAssetsLibrary_upload_dir', 'media') . DIRECTORY_SEPARATOR . 'filename.jpg', 'getUrl() gives correct url');
    $t->is($sfAsset->getUrl('small'), DIRECTORY_SEPARATOR . sfConfig::get('app_sfAssetsLibrary_upload_dir', 'media') . DIRECTORY_SEPARATOR . 'thumbnail/small_filename.jpg', 'getUrl() gives correctthumbnail url');
    $assets_path = dirname(__FILE__) . '/../assets/';
    $test_asset = $assets_path . 'raikkonen.jpg';
    $t->ok(is_file($test_asset), 'test asset found');
    $sfAsset = new sfAsset();
    $sfAsset->setsfAssetFolder(sfAssetFolderPeer::getRoot());
    $sfAsset->create($test_asset, false);
    $t->is($sfAsset->getFilename(), 'raikkonen.jpg', 'create() gives correct filename');
    $t->is($sfAsset->getFilesize(), 18, 'create() gives correct size');
    $t->ok($sfAsset->isImage(), 'create() gives correct type');
    $t->ok(is_file($sfAsset->getFullPath()), 'create() physically copies asset');
    $t->ok(is_file($sfAsset->getFullPath('large')), 'create() physically creates thumbnail');
    $old_path = $sfAsset->getFullPath();
    $old_thumb_path = $sfAsset->getFullPath('large');
    $sfAsset->move(sfAssetFolderPeer::getRoot(), 'raikkonen2.jpg');
    $t->is($sfAsset->getFilename(), 'raikkonen2.jpg', 'move() changes filename');
    $t->ok(is_file($sfAsset->getFullPath()), 'move() physically moves asset');
    $t->ok(!is_file($old_path), 'move() physically moves asset');
    $t->ok(is_file($sfAsset->getFullPath('large')), 'move() physically moves thumbnail');
    $t->ok(!is_file($old_thumb_path), 'move() physically moves thumbnail');
    $old_path = $sfAsset->getFullPath();
    $old_thumb_path = $sfAsset->getFullPath('large');
    $old_id = $sfAsset->getId();
    $sfAsset->delete();
    $t->ok(!is_file($old_path), 'delete() physically removes asset');
    $t->ok(!is_file($old_thumb_path), 'delete() physically removes thumbnail');
    $null = sfAssetPeer::retrieveByPk($old_id);
    $t->ok(!$null, 'delete() removes asset from DB');
} catch (Exception $e) {
    // do nothing