ホームページ  >  記事  >  バックエンド開発  >  drupal6 のイメージキャッシュ プリセットを Drupal7 のイメージ スタイルに更新する_PHP チュートリアル

drupal6 のイメージキャッシュ プリセットを Drupal7 のイメージ スタイルに更新する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-14 10:11:49818ブラウズ

drupal6 の imagecache プリセットは drupal7 のコアに統合されているため、次の解決策は Vladimir によって提案されました。drupal のルート ディレクトリに php ファイルを作成し、その中に次のコードをコピーしてこのファイルを実行する必要があります。


[php]
定義('DRUPAL_ROOT', getcwd()); 
一回だけ必要
 
DRUPAL_ROOT 。 '/includes/bootstrap.inc'; 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 
///////////////////////////////////////////////
function imagecache_preset_actions($preset, $reset = FALSE) {
  $actions_cache = 配列(); 
    
 
$result = db_query('SELECT * FROM {imagecache_action} where presetid = '.$preset['presetid'].' 重み順' ); 
    foreach ($result as $row ) {
    $row=(配列)$row; 
      $row['data'] = unserialize($row['data']); 
      $actions_cache[$preset['presetid']][] = $row; 
    }
  return isset(
 
$actions_cache[$preset['presetid']]) ? $actions_cache[$preset['presetid']] : array(); 
}
///////////////////////////////////////////////
///////////////////////////////////////////////
 
関数 imagecache_presets() {
  $presets = array(); 
    
 
$normal_presets = array(); 
    
 
$result = db_query('SELECT * FROM {imagecache_preset} ORDER BY プリセット名'); 
    
    foreach ($result as $preset) {
      $preset=(配列)$preset; 
      $presets[$preset['presetid']] = $preset; 
      $presets[$preset['presetid']]['actions'] = imagecache_preset_actions($preset); 
      $presets[$preset['presetid']]['storage'] = 0; 
      
 
// 通常のプリセット名を収集して、デフォルトをスキップし、それに応じてオーバーライドをマークできるようにします
      $normal_presets[$preset['presetname']] = $preset['presetid']; 
    }
  戻る
 
$プリセット; 
}
///////////////////////////////////////////////
///////////////////////////////////////////////
 
$styles_cnt=0; 
$Effects_new_cnt=0; 
$Effects_ext_cnt=0; 
$presets=imagecache_presets(); 
foreach($presets を $preset として)
    {
    $styles_cnt++;// スタイルを含めます
    
    $style=image_style_load($preset['プリセット名']); 
    
    $style['名前']=$preset['プリセット名']; 
    $style=image_style_save($style); 
    if(!isset($style['Effects']))
        {
        $style['エフェクト']=array(); 
        }
    foreach($preset['actions'] as $action)
        {
        $action['action']=str_replace('imagecache','image',$action['action']); 
        $action['module']=str_replace('imagecache','image',$action['module']); 
        
        $effect_ieid=FALSE;// エフェクトは存在しません
        foreach($style['Effects'] as $effect)
            {
            if($effect['name'] == $action['action'] &&
                $effect['module'] == $action['module'] &&
                $effect['weight'] == $action['weight'] &&
                $effect['data'] == $action['data'] )
                {
                $effect_ieid=$effect['ieid'];// 効果が存在します
                }
            }
        $effect=array();    
        if($effect_ieid)
            {
            $Effects_ext_cnt++;// Inc は存在します
            $effect=image_effect_load($effect_ieid,$style['name']); 
            }
        その他
            {
            $Effects_new_cnt++;// 新しいものを追加
            $effect=image_effect_definition_load($action['action']); 
            }
        
        $effect['isid'] = $style['isid'];    
            
        $effect['name'] = $action['action']; 
        $effect['module'] == $action['module']; 
        $effect['weight'] = $action['weight']; 
        $effect['data'] = $action['data']; 
        $effect = image_effect_save($effect); 
        $style['Effects'][$effect['ieid']] = $effect; 
        }
    $style=image_style_save($style); 
    }
印刷する
 
"スタイル: $styles_cnt、 新しい効果: $Effects_new_cnt、効果が存在します: $Effects_ext_cnt n"; 
?> 

定義('DRUPAL_ROOT', getcwd());
一回だけ必要

DRUPAL_ROOT 。 '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
///////////////////////////////////////////////
function imagecache_preset_actions($preset, $reset = FALSE) {
  $actions_cache = array();
  

$result = db_query('SELECT * FROM {imagecache_action} where presetid = '.$preset['presetid'].' 重み順' );
    foreach ($result as $row ) {
    $row=(配列)$row;
      $row['data'] = unserialize($row['data']);
      $actions_cache[$preset['presetid']][] = $row;
    }
  戻り値(

$actions_cache[$preset['presetid']]) ? $actions_cache[$preset['presetid']] : array();
}
///////////////////////////////////////////////
///////////////////////////////////////////////

関数 imagecache_presets() {
  $presets = array();
  

$normal_presets = array();
  

$result = db_query('SELECT * FROM {imagecache_preset} ORDER BY プリセット名');
  
    foreach ($result を $preset として) {
      $preset=(配列)$preset;
      $presets[$preset['presetid']] = $preset;
      $presets[$preset['presetid']]['actions'] = imagecache_preset_actions($preset);
      $presets[$preset['presetid']]['storage'] = 0;
    

// 通常のプリセット名を収集して、デフォルトをスキップし、それに応じてオーバーライドをマークできるようにします
      $normal_presets[$preset['presetname']] = $preset['presetid'];
    }
  戻る

$プリセット;
}
///////////////////////////////////////////////
///////////////////////////////////////////////

$styles_cnt=0;
$Effects_new_cnt=0;
$Effects_ext_cnt=0;
$presets=imagecache_presets();
foreach($presets を $preset として)
    {
    $styles_cnt++;// スタイルを含めます
  
    $style=image_style_load($preset['プリセット名']);
  
    $style['name']=$preset['プリセット名'];
    $style=image_style_save($style);
    if(!isset($style['Effects']))
        {
        $style['エフェクト']=array();
        }
    foreach($preset['actions'] as $action)
        {
        $action['action']=str_replace('imagecache','image',$action['action']);
        $action['module']=str_replace('imagecache','image',$action['module']);
      
        $effect_ieid=FALSE;// エフェクトが存在しません
        foreach($style['Effects'] as $effect)
            {
            if($effect['name'] == $action['action'] &&
                $effect['module'] == $action['module'] &&
                $effect['weight'] == $action['weight'] &&
                $effect['data'] == $action['data'] )
                {
                $effect_ieid=$effect['ieid'];// エフェクトが存在します
                }
            }
        $effect=array();  
        if($effect_ieid)
            {
            $Effects_ext_cnt++;// 存在します
            $effect=image_effect_load($effect_ieid,$style['name']);
            }
        それ以外
            {
            $Effects_new_cnt++;// 新しい
を追加             $effect=image_effect_definition_load($action['action']);
            }
      
        $effect['isid'] = $style['isid'];  
          
        $effect['name'] = $action['action'];
        $effect['module'] == $action['module'];
        $effect['weight'] = $action['weight'];
        $effect['data'] = $action['data'];
        $effect = image_effect_save($effect);
        $style['Effects'][$effect['ieid']] = $effect;
        }
    $style=image_style_save($style);
    }
印刷

"スタイル: $styles_cnt、 新しい効果: $Effects_new_cnt、効果が存在します: $Effects_ext_cnt n";
?>Drupalling を楽しんでください

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/477273.html技術記事 drupal6 のイメージキャッシュ プリセットは drupal7 のコアに統合されているため、次の解決策は Vladimir によって提案されました。drupal のルート ディレクトリに ph を作成する必要があります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。