Changeset 4459


Ignore:
Timestamp:
12/09/09 23:14:01 (10 years ago)
Author:
plg
Message:

feature 1316 added: we now have the ability to only fill the single value
properties that are currently empty in the database instead of automatically
replacing.

feature 1312: as a matter of consistency, I have changed the replace_mode
(that was only for multiple values properties) into multiple_value_mode +
single_value_mode.

Location:
branches/2.0
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2.0/include/ws_functions.inc.php

    r4444 r4459  
    16661666  } 
    16671667 
    1668   // name 
    1669   // category_id 
    1670   // file_content 
    1671   // file_sum 
    1672   // thumbnail_content 
    1673   // thumbnail_sum 
    1674  
    16751668  $params['image_id'] = (int)$params['image_id']; 
    16761669  if ($params['image_id'] <= 0) 
     
    16921685 
    16931686  // database registration 
    1694   $update = array( 
    1695     'id' => $params['image_id'], 
    1696     ); 
     1687  $update = array(); 
    16971688 
    16981689  $info_columns = array( 
     
    17041695    ); 
    17051696 
    1706   $perform_update = false; 
    17071697  foreach ($info_columns as $key) 
    17081698  { 
    17091699    if (isset($params[$key])) 
    17101700    { 
    1711       $perform_update = true; 
    1712       $update[$key] = $params[$key]; 
    1713     } 
    1714   } 
    1715  
    1716   if ($perform_update) 
    1717   { 
     1701      if ('fill_if_empty' == $params['single_value_mode']) 
     1702      { 
     1703        if (empty($image_row[$key])) 
     1704        { 
     1705          $update[$key] = $params[$key]; 
     1706        } 
     1707      } 
     1708      elseif ('replace' == $params['single_value_mode']) 
     1709      { 
     1710        $update[$key] = $params[$key]; 
     1711      } 
     1712      else 
     1713      { 
     1714        new PwgError( 
     1715          500, 
     1716          '[ws_images_setInfo]' 
     1717          .' invalid parameter single_value_mode "'.$params['single_value_mode'].'"' 
     1718          .', possible values are {fill_if_empty, replace}.' 
     1719          ); 
     1720        exit(); 
     1721      } 
     1722    } 
     1723  } 
     1724 
     1725  if (count(array_keys($update)) > 0) 
     1726  { 
     1727    $update['id'] = $params['image_id']; 
     1728 
    17181729    include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); 
    17191730    mass_updates( 
     
    17321743      $params['image_id'], 
    17331744      $params['categories'], 
    1734       $params['replace_mode'] 
     1745      ('replace' == $params['multiple_value_mode'] ? true : false) 
    17351746      ); 
    17361747  } 
     
    17431754    $tag_ids = explode(',', $params['tag_ids']); 
    17441755 
    1745     if ($params['replace_mode']) 
     1756    if ('replace' == $params['multiple_value_mode']) 
    17461757    { 
    17471758      set_tags( 
     
    17501761        ); 
    17511762    } 
    1752     else 
     1763    elseif ('append' == $params['multiple_value_mode']) 
    17531764    { 
    17541765      add_tags( 
     
    17561767        array($params['image_id']) 
    17571768        ); 
     1769    } 
     1770    else 
     1771    { 
     1772      new PwgError( 
     1773        500, 
     1774        '[ws_images_setInfo]' 
     1775        .' invalid parameter multiple_value_mode "'.$params['multiple_value_mode'].'"' 
     1776        .', possible values are {replace, append}.' 
     1777        ); 
     1778      exit(); 
    17581779    } 
    17591780  } 
  • branches/2.0/ws.php

    r4444 r4459  
    290290        'maxValue' => $conf['available_permission_levels'] 
    291291        ), 
    292       'replace_mode' => array('default' => false), 
     292      'single_value_mode' => array('default' => 'fill_if_empty'), 
     293      'multiple_value_mode' => array('default' => 'append'), 
    293294      ), 
    294295    'POST method only. Admin only 
    295 <br/><b>categories</b> is a string list "category_id[,rank];category_id[,rank]" The rank is optional and is equivalent to "auto" if not given.' 
     296<br/><b>categories</b> is a string list "category_id[,rank];category_id[,rank]" The rank is optional and is equivalent to "auto" if not given. 
     297<br/><b>single_value_mode</b> can be "fill_if_empty" (only use the input value if the corresponding values is currently empty) or "replace" (overwrite any existing value) and applies to single values properties like name/author/date_creation/comment 
     298<br/><b>multiple_value_mode</b> can be "append" (no change on existing values, add the new values) or "replace" and applies to multiple values properties like tag_ids/categories' 
    296299    ); 
    297300   
Note: See TracChangeset for help on using the changeset viewer.