Переписать пресеты imagecache от других модулей програмно

Главные вкладки

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 8 января 2011 в 21:46

Возьмём пресеты, которые добавляет Уберкарт. Задача изменить действия в них и/или добавить другие действия

Я соорудит такой код:

<?php

 $presets 

= array(
    array(
      
'presetname' => 'product',
      
'actions' => array(
        array(
          
'action' => 'imagecache_crop',
          
'data' => array('width' => 300'height' => ''),
          
'weight' => 0,
          
'module' => 'imagecache',       
        ),
        array(
          
'action' => 'canvasactions_canvas2file',
          
'data' => array('xpos' => 'center''ypos' => 'center''path' => 'actions/pad_300_300.gif''dimensions' => 'background',),
          
'weight' => 1,
          
'module' => 'imagecache_canvasactions',       
        ),
      ),
    ),
    array(
      
'presetname' => 'uc_thumbnail',
      
'actions' => array(
        array(
          
'action' => 'imagecache_scale',
          
'data' => array('width' => 55'height' => 55'upscale' => 0),
          
'weight' => 0,
          
'module' => 'imagecache',       
        ),
        array(
          
'action' => 'canvasactions_canvas2file',
          
'data' => array('xpos' => 'center','ypos' => 'center''path' => 'actions/pad_60_60.gif','dimensions' => 'background'),
          
'weight' => 1,
          
'module' => 'imagecache_canvasactions',       
        ),
      ),
    ),
    array(
      
'presetname' => 'product_full',
      
'actions' => array(
        array(
          
'action' => 'imagecache_scale',
          
'data' => array('width' => 600'height' => 600'upscale' => 0),
          
'weight' => 0,
          
'module' => 'imagecache',       
        ),
      ),
    ),
    array(
      
'presetname' => 'product_list',
      
'actions' => array(
        array(
          
'action' => 'imagecache_scale',
          
'data' => array('width' => 100'height' => 100'upscale' => 0),
          
'weight' => 0,
          
'module' => 'imagecache',       
        ),
        array(
          
'action' => 'canvasactions_canvas2file',
          
'data' => array('xpos' => 'center''ypos' => 'center''path' => 'actions/pad_100_100.jpg','dimensions' => 'background',),
          
'weight' => 1,
          
'module' => 'imagecache_canvasactions',       
        ),
      ),
    ),
    array(
      
'presetname' => 'uc_category',
      
'actions' => array(
        array(
          
'action' => 'imagecache_scale',
          
'data' => array('width' => 100'height' => 100'upscale' => 0),
          
'weight' => 0,
          
'module' => 'imagecache',       
        ),
        array(
          
'action' => 'canvasactions_canvas2file',
          
'data' => array('xpos' => 'center''ypos' => 'center''path' => 'actions/pad_100_100.gif''dimensions' => 'background',),
          
'weight' => 1,
          
'module' => 'imagecache_canvasactions',       
        ),
      ),
    ),
    array(
      
'presetname' => 'cart',
      
'actions' => array(
        array(
          
'action' => 'imagecache_scale',
          
'data' => array('width' => 50'height' => 50'upscale' => 0),
          
'weight' => 0,
          
'module' => 'imagecache',       
        ),
        array(
          
'action' => 'canvasactions_canvas2file',
          
'data' => array('xpos' => 'center''ypos' => 'center''path' => 'actions/pad_60_60.gif''dimensions' => 'background',),
          
'weight' => 1,
          
'module' => 'imagecache_canvasactions',       
        ),
      ),
    ),
  );

    foreach (

$presets as $preset) {
    
drupal_write_record('imagecache_preset'$preset);
    foreach (
$preset['actions'] as $action) {
      
$action['presetid'] = $preset['presetid'];
      
drupal_write_record('imagecache_action'$action);
    }
  }

  

imagecache_presets(true);

?>

Всё это работает, в том плане, что в интерфейсе пресеты обновляются, но пропадает отображение самих картинок

Подскажите, в чём может быть трабл

Комментарии