_merge() protected méthode

Merges an item into given data.
protected _merge ( array $data, array $item ) : array
$data array Data to merge item into.
$item array Item to merge into $data. The item must have an `'id'` key.
Résultat array The merged data.
Exemple #1
0
 /**
  * Merges an item into given data and removes quotation marks
  * from the beginning and end of message strings.
  *
  * @see lithium\g11n\catalog\Adapter::_merge()
  * @param array $data Data to merge item into.
  * @param array $item Item to merge into $data.
  * @return array The merged data.
  */
 protected function _merge(array $data, array $item)
 {
     $filter = function ($value) use(&$filter) {
         if (is_array($value)) {
             return array_map($filter, $value);
         }
         return substr($value, 1, -1);
     };
     $fields = array('id', 'ids', 'translated', 'context');
     foreach ($fields as $field) {
         if (isset($item[$field])) {
             $item[$field] = $filter($item[$field]);
         }
     }
     return parent::_merge($data, $item);
 }
 /**
  * Merges an item into given data and unescapes fields.
  *
  * Please note that items with an id containing exclusively whitespace characters
  * or are empty are **not** being merged. Whitespace characters are space, tab, vertical
  * tab, line feed, carriage return and form feed.
  *
  * @see lithium\g11n\catalog\Adapter::_merge()
  * @param array $data Data to merge item into.
  * @param array $item Item to merge into $data.
  * @return array The merged data.
  */
 protected function _merge(array $data, array $item)
 {
     $filter = function ($value) use(&$filter) {
         if (is_array($value)) {
             return array_map($filter, $value);
         }
         return stripcslashes($value);
     };
     $fields = array('id', 'ids', 'translated');
     foreach ($fields as $field) {
         if (isset($item[$field])) {
             $item[$field] = $filter($item[$field]);
         }
     }
     if (isset($item['ids']['singular'])) {
         $item['id'] = $item['ids']['singular'];
     }
     if (empty($item['id']) || ctype_space($item['id'])) {
         return $data;
     }
     return parent::_merge($data, $item);
 }
Exemple #3
0
 /**
  * Cleans and merges a message item into given data.
  *
  * The implementation of the `$cleanup` closure should correspond to the one
  * used in the templates.
  *
  * @see lithium\g11n\catalog\adapter\Base::_merge()
  * @param array $data Data to merge item into.
  * @param array $item Item to merge into $data.
  *
  * @return void
  */
 protected function _merge(array $data, array $item)
 {
     $cleanup = function ($text) {
         return preg_replace('/\\n\\s+-\\s/msi', "\n\n - ", $text);
     };
     if (isset($item['id'])) {
         $item['id'] = $cleanup($item['id']);
     }
     return parent::_merge($data, $item);
 }