? no_image.png
? uc_option_image.install
Index: uc_option_image.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/uc_option_image/uc_option_image.info,v
retrieving revision 1.3
diff -r1.3 uc_option_image.info
3c3,4
< dependencies = uc_attribute imagecache
---
> dependencies[] = uc_attribute
> dependencies[] = imagecache
5c6
< 
---
> core = 6.x
Index: uc_option_image.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/uc_option_image/uc_option_image.js,v
retrieving revision 1.4
diff -r1.4 uc_option_image.js
16c16
<   $('.add_to_cart select.form-select').change(function(){
---
>   $('.add-to-cart select.form-select').change(function(){
23c23
<   $('.add_to_cart .form-radios input').click(function(){
---
>   $('.add-to-cart .form-radios input').click(function(){
Index: uc_option_image.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/uc_option_image/uc_option_image.module,v
retrieving revision 1.20
diff -r1.20 uc_option_image.module
32c32
<   switch ($op){
---
>   switch ($op) {
35,36c35
<       // Keep in mind the file 'nid' is a mash of nid/aid/oid
<       // @todo: remove dependancy for the nid column, create relation table rather than the mash above
---
>       // Keep in mind the file 'filename' is a mash of nid/aid/oid
41c40
<       if (count($node->attributes)){ 
---
>       if (count($node->attributes)) {
43,45c42,44
<         foreach($node->attributes AS $attribute){
<           if (count($attribute->options)){
<             foreach($attribute->options AS $option){
---
>         foreach($node->attributes AS $attribute) {
>           if (count($attribute->options)) {
>             foreach($attribute->options AS $option) {
47c46
<               if ($file->filepath){
---
>               if ($file && $file->filepath) {
50c49
<                 if ($page_size != '_original'){
---
>                 if ($page_size != '_original') {
107c106
<                 '#weight' => (int) variable_get('uc_option_image_node_weight', '-15'),
---
>                 '#weight' => (int) variable_get('uc_option_image_node_weight', '10'),
119c118
< function uc_option_image_form_alter($form_id, &$form){ 
---
> function uc_option_image_form_alter(&$form, &$form_state, $form_id){ 
129c128,129
<         $nid = arg(1); 
---
>         $node = menu_get_object();
>         $nid = $node->nid;
132c132
<         foreach($aids AS $aid){ 
---
>         foreach($aids AS $aid) { 
140c140
<             foreach($oids AS $oid){ 
---
>             foreach($oids AS $oid) { 
143c143
<               if ($file->fid){
---
>               if (!empty($file)) {
145,149c145,148
<                     '#type' => 'markup',                       
<                     '#value' => theme('uc_option_image', $file, variable_get('uc_option_image_preview_size', '_original')),       
<                   );  
<               }
<               $form['attributes'][$aid]['options'][$oid][uc_option_image_uid($nid, $aid, $oid)] = array(
---
>                   '#type' => 'markup',                       
>                   '#value' => theme('uc_option_image', $file, variable_get('uc_option_image_preview_size', '_original')),       
>                 );
>                 $form['attributes'][$aid]['options'][$oid][uc_option_image_id($nid, $aid, $oid)] = array(
152c151
<                   '#name' => 'files[' . uc_option_image_uid($nid, $aid, $oid) . ']',
---
>                   '#name' => 'files[' . uc_option_image_id($nid, $aid, $oid) . ']',
155c154,155
<                 );         
---
>                 );
>               }
160c160
<         $form['#submit']['uc_option_image_uc_object_options_form'] = array(); 
---
>         $form['#submit'][] = 'uc_option_image_uc_object_options_form';
184c184
<       $form['#validate']['uc_option_image_uc_attribute_admin_settings_validate'] = array();
---
>       $form['#validate'][] = 'uc_option_image_uc_attribute_admin_settings_validate';
239c239
<           '#default_value' => variable_get('uc_option_image_node_weight', '-15'),
---
>           '#default_value' => variable_get('uc_option_image_node_weight', '9'),
243c243,244
<       if (count($sizes)){
---
>       $presets = imagecache_presets();
>       if (count($presets)){
251,252c252,268
<         foreach($sizes AS $label => $size){
<           $form['uc_option_image']['sizes']['uc_option_image_size_' . $label . '_width'] = array(
---
>         foreach($presets as $preset) {
>           $preset['width'] = 0;
>           $preset['height'] = 0;
>           foreach ($preset['actions'] as $action) {
>             foreach (array('width','height') as $ord) {
>               if (isset($action['data'][$ord])) {
>                 if ((int)($action['data'][$ord])) {
> 	          $preset[$ord] = $action['data'][$ord];
>                 }
>                 elseif (!empty($preset[$ord]) && preg_match('/^([1-9][0-9]*)%$/',$action['data'][$ord],$matches)) {
> 	          $preset[$ord] = $preset[$ord] * $matches[1][0] / 100;
>                 }
>               }
>             }
>           }
> 
>           $form['uc_option_image']['sizes']['uc_option_image_size_' . $preset['presetname'] . '_width'] = array(
254,255c270,271
<               '#title' => $label . ' ' . t('Width'),
<               '#default_value' => $size['width'],
---
>               '#title' => $preset['presetname'] . ' ' . t('Width'),
>               '#default_value' => $preset['width'],
258c274
<           $form['uc_option_image']['sizes']['uc_option_image_size_' . $label . '_height'] = array(
---
>           $form['uc_option_image']['sizes']['uc_option_image_size_' . $preset['presetname'] . '_height'] = array(
260,261c276,277
<               '#title' => $label . ' ' . t('Height'),
<               '#default_value' => $size['height'],
---
>               '#title' => $preset['presetname'] . ' ' . t('Height'),
>               '#default_value' => $preset['height'],
293c309
<         return url(file_directory_path() .'/imagecache/'. $presetname .'/'. $path, NULL, NULL, TRUE);
---
>         return url(file_directory_path() .'/imagecache/'. $presetname . '/' . $path, array('absolute' => TRUE));
295c311
<         return url('system/files/imagecache/'. $presetname .'/'. $path, NULL, NULL, TRUE);
---
>         return url('system/files/imagecache/'. $presetname . '/' . $path, array('absolute' => TRUE));
378a395
>   _t('uc_option_image_load',array('nid'=>$nid,'aid'=>$aid,'oid'=>$oid));
380,382c397,407
<   
<   if (!isset($files[$nid . $aid . $oid])){
<     $files[$nid . $aid . $oid] = db_fetch_object(db_query("SELECT * FROM {files} WHERE nid = %d", $nid . $aid . $oid));
---
>   $filename = uc_option_image_id($nid, $aid, $oid);
>   if (empty($files[$filename])){
>     $files[$filename] = db_fetch_object(db_query("SELECT * FROM {files} WHERE filename = '%s'", $filename));
>     if (empty($files[$filename])) {
>       if ($nid) {
>         return uc_option_image_load(0, $aid, $oid);
>       }
>       elseif ($aid && $oid) {
>         return uc_option_image_load(0, 0, 0);
>       }
>     }
384,385c409,410
<   
<   return $files[$nid . $aid . $oid];
---
>   _t('uc_option_image_load',array($filename => $files[$filename]));
>   return $files[$filename];
403,416c428,434
<   if ($file = file_check_upload(uc_option_image_uid($nid, $aid, $oid))){   
<     // Check filesize
<     // @todo: Abstract out as setting
<     if ($file->filesize > 2000000){
<       drupal_set_message(t('Your image filesize is larger than 2MB. Resize or compress your image and try again.'), 'error');
<       return FALSE;
<     }
<                                                   
<     // Check format   
<     if (!in_array(pathinfo($file->filename, PATHINFO_EXTENSION), array('png', 'jpg', 'gif'))){
<       drupal_set_message(t('Please upload image using jpg, png, or gif formats.'), 'error');
<       return FALSE;
<     }  
<                          
---
>   global $user;
>   $validators = array(
>     'file_validate_size' => array(2 * 1024 * 1024),
>     'file_validate_is_image' => array(),
>   );
> 
>   if ($file = file_save_upload(uc_option_image_id($nid, $aid, $oid),$validators)) {
419,424c437,442
<     
<     if ($file = file_save_upload(uc_option_image_uid($nid, $aid, $oid), $dest . '/' . $file->filename)){
<       $file->fid = db_next_id('{files}_fid');
<       db_query("DELETE FROM {files} WHERE nid = %d", $nid . $aid . $oid);
<       db_query("INSERT INTO {files} (fid, nid, filename, filepath, filemime, filesize) VALUES (%d, %d, '%s','%s','%s',%d)", $file->fid, $nid . $aid . $oid, $file->filename, $file->filepath, $file->filemime, $file->filesize);
<        
---
>     if (file_copy($file->filepath, $dest, FILE_EXISTS_REPLACE)) {
>       $file->filename = uc_option_image_id($nid,$aid,$oid);
>       $file->uid = $user->uid;
>       uc_option_image_delete($nid, $aid, $oid);
>       drupal_write_record('files', $file);
>       
426c444
<     } 
---
>     }
431c449
<     } 
---
>     }
448c466
<   return db_query("DELETE FROM {files} WHERE nid = %d", $nid . $aid . $oid);    
---
>   return db_query("DELETE FROM {files} WHERE filename = '%s'", uc_option_image_id($nid,$aid,$oid));    
495c513
< function uc_option_image_uid($nid, $aid, $oid) {
---
> function uc_option_image_id($nid, $aid, $oid) {
508,509c526,527
< function uc_option_image_uc_object_options_form($form_id, $form_values) {   
<   if ($aids = element_children($form_values['attributes'])){ 
---
> function uc_option_image_uc_object_options_form($form, &$form_state) {
>   if ($aids = element_children($form_state['values']['attributes'])){ 
511c529
<       if ($oids = element_children($form_values['attributes'][$aid]['options'])){ 
---
>       if ($oids = element_children($form_state['values']['attributes'][$aid]['options'])){ 
513c531
<           uc_option_image_save($form_values['id'], $aid, $oid);
---
>           uc_option_image_save($form_state['values']['id'], $aid, $oid);
526a545,576
>  * Implementation of hook_theme()
>  */
> function uc_option_image_theme() {
>   return array(
>     'uc_option_image' => array(
>       'arguments' => array(
>         'file' => NULL,
>         'size' => NULL,
>       ),
>     ),
>     'uc_option_image_preloaded' => array(
>       'arguments' => array(
>         'node' => NULL,
>         'size' => NULL,
>       ),
>     ),
>     'uc_option_image_no_image' => array(
>       'arguments' => array(
>         'node' => NULL,
>         'size' => NULL,
>       ),
>     ),
>     'uc_option_image_no_image_path' => array(
>       'arguments' => array(
>         'node' => NULL,
>         'size' => NULL,
>       ),
>     ),
>   );
> }
> 
> /**
635c685
<         $row[] = drupal_render($form['attributes'][$key]['options'][$oid][uc_option_image_uid(arg(1), $key, $oid)]); 
---
>         $row[] = drupal_render($form['attributes'][$key]['options'][$oid][uc_option_image_id(arg(1), $key, $oid)]); 
