/**
* Save uploaded file and set its name to banner
*
* @param SI_banner_Model_Mysql4_Banner $object
*/
protected function _beforeSave(Mage_Core_Model_Abstract $object)
{
Mage::log($object);
$value = $object->getData(self::IMAGE);
$value2 = $object->getData(self::IMAGE2);
$path = Mage::helper('banner')->getBannerMediaPath();
if (is_array($value) && !empty($value['delete'])) {
try {
$io = new Varien_Io_File();
$io->open(array('path' => $path));
$image = str_replace(Mage::helper('banner')->getBannerMediaUrl(), '', $value['value']);
if ($io->fileExists($image)) {
$io->rm($image);
}
} catch (Exception $e) {
}
$object->setData(self::IMAGE, '');
return;
}
try {
$uploader = new Varien_File_Uploader(self::IMAGE);
$uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
$uploader->setAllowRenameFiles(true);
$uploader->save($path);
$object->setData(self::IMAGE, $uploader->getUploadedFileName());
} catch (Exception $e) {
$object->unsetData(self::IMAGE);
}
//start
if (is_array($value2) && !empty($value2['delete'])) {
try {
$io2 = new Varien_Io_File();
$io2->open(array('path' => $path));
$image2 = str_replace(Mage::helper('banner')->getBannerMediaUrl(), '', $value2['value']);
if ($io2->fileExists($image2)) {
$io2->rm($image2);
}
} catch (Exception $e) {
}
$object->setData(self::IMAGE2, '');
return;
}
try {
$uploader = new Varien_File_Uploader(self::IMAGE2);
$uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
$uploader->setAllowRenameFiles(true);
$uploader->save($path);
$object->setData(self::IMAGE2, $uploader->getUploadedFileName());
} catch (Exception $e) {
$object->unsetData(self::IMAGE2);
}
//end
//save colors to settings table
$settings = $this->getSettings();
foreach ($object->getData() as $key => $value) {
if (false !== strpos($key, '_color')) {
$settings->setData($key, $value);
}
}
$settings->save();
return parent::_beforeSave($object);
}
Объект когда ставлю галочки возле изображений на удаление.
2011-04-20T16:27:55+00:00 DEBUG (7): SI_Banner_Model_Banner Object
(
[_eventPrefix:protected] => core_abstract
[_eventObject:protected] => object
[_resourceName:protected] => banner/banner
[_resource:protected] =>
[_resourceCollectionName:protected] => banner/banner_collection
[_cacheTag:protected] =>
[_dataSaveAllowed:protected] => 1
[_isObjectNew:protected] =>
[_data:protected] => Array
(
[form_key] => frYOBrCeh8Qymgg1
[title] => test5
[image] => Array
(
[delete] => 1
[value] => */magento/media/banner/test51.jpg
)
[image_sec] => Array
(
[delete] => 1
[value] => */magento/media/banner/test52.jpg
)
[url] => http://www.armo.ee
[menu_title_strong] => Menu Title Strong
[menu_title] => Menu Title
[store_ids] => 1
[position] => 5
[status] => 1
[menu_title_strong_color] => #fff
[menu_hover_title_strong_color] => #fff
[menu_title_color] => #fff
[menu_hover_title_color] => #fff
[menu_bg_color] => #fff
[banner_id] => 5
)
[_hasDataChanges:protected] => 1
[_origData:protected] =>
[_idFieldName:protected] => banner_id
[_isDeleted:protected] =>
)
Если удаляется одно изображение то удаляются оба изображения, второму изображению присваивается свойство Array и в логе ошибка:
2011-04-20T16:27:55+00:00 ERR (3): Notice: Array to string conversion /public_web/www/magento/lib/Zend/Db/Statement/Pdo.php on line 228
Еррор внутри функции ?stmt->execute($params)
public function _execute(array $params = null)
{
try {
if ($params !== null) {
return $this->_stmt->execute($params);
} else {
return $this->_stmt->execute();
}
} catch (PDOException $e) {
#require_once 'Zend/Db/Statement/Exception.php';
throw new Zend_Db_Statement_Exception($e->getMessage(), (int) $e->getCode(), $e);
}
}

Вход
Регистрация
Помощь

