/** * If pos is empty, means it creates a new row */ public function newRow() { $isNew = UtilitiesHelper::toBoolean($this->getParam('new')); $instanceId = $this->getParam('id'); $instance = R::findOne($this->model(), 'id = ?', array($instanceId)); $imageField = $this->getParam('field'); $imagePosition = (int) $this->getParam('pos'); $imageSettings = $this->getImageSettings(); $settingName = $this->getParam('setting'); $imageSetting = $imageSettings[$settingName]; $images = $this->getImagesValue($instance, $settingName); if (empty($images)) { $images = array(); } else { if (!is_array($images)) { $images = UtilitiesHelper::decodeJson($images, true); } } $this->setPaths(); $this->setupInstanceImageAssigns($instance); $this->app->getTemplateEngine()->assign(array('instanceName' => $this->instanceName, '_imageSetting' => $imageSetting, '_imagePos' => $imagePosition, '_imageSettingName' => $settingName)); if (count($imageSetting['types']) > 0) { $newImageRow = array(); foreach ($imageSetting['types'] as $type => $setting) { $newImageRow[$type] = ''; } if ($isNew) { array_unshift($images, $newImageRow); $json_encoded = json_encode($images); $instance->set($imageField, $json_encoded); R::store($instance); } else { $image = $images[$imagePosition]; $this->app->getTemplateEngine()->assign(array('_image' => $image)); } $this->app->getTemplateEngine()->assign(array($this->instanceName => $instance->export())); $this->render('/admin/widgets/imageUploader/multiple/_manyTypes'); } else { $newImageRow = ''; array_unshift($images, $newImageRow); $json_encoded = json_encode($images); $instance->set($imageField, $json_encoded); R::store($instance); $this->app->getTemplateEngine()->assign(array($this->instanceName => $instance->export())); $this->render('/admin/widgets/imageUploader/multiple/_oneType'); } }