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 を楽しんでください
。