image cache php,更新 drupal6的 imagecache presets 到 Drupal7 的image styles

因为drupal6中的imagecache preset 已经整合到drupal7的核心中,接下来的这个解决方案是Vladimir提出的,你需要在你的drupal根目录下面创建一个php文件并将以下代码复制进去,执行这个文件.

[php]

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'].' order by weight' );

foreach ($result as $row ) {

$row=(array)$row;

$row['data'] = unserialize($row['data']);

$actions_cache[$preset['presetid']][] = $row;

}

return isset(

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

}

/

/

function imagecache_presets() {

$presets = array();

$normal_presets = array();

$result = db_query('SELECT * FROM {imagecache_preset} ORDER BY presetname');

foreach ($result as $preset) {

$preset=(array)$preset;

$presets[$preset['presetid']] = $preset;

$presets[$preset['presetid']]['actions'] = imagecache_preset_actions($preset);

$presets[$preset['presetid']]['storage'] = 0;

// Collect normal preset names so we can skip defaults and mark overrides accordingly

$normal_presets[$preset['presetname']] = $preset['presetid'];

}

return

$presets;

}

/

/

$styles_cnt=0;

$effects_new_cnt=0;

$effects_ext_cnt=0;

$presets=imagecache_presets();

foreach($presets as $preset)

{

$styles_cnt++;// inc styles

$style=image_style_load($preset['presetname']);

$style['name']=$preset['presetname'];

$style=image_style_save($style);

if(!isset($style['effects']))

{

$style['effects']=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;// effect not exists

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 exists

}

}

$effect=array();

if($effect_ieid)

{

$effects_ext_cnt++;// inc exists

$effect=image_effect_load($effect_ieid,$style['name']);

}

else

{

$effects_new_cnt++;// inc new

$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);

}

print

"Styles: $styles_cnt, Effects new: $effects_new_cnt, Effects exists: $effects_ext_cnt \n";

?>happy drupalling

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值