Ignore:
Timestamp:
Sep 12, 2010, 6:55:44 PM (11 years ago)
Author:
teymour
Message:

Intégration des multi signataires

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpc/trunk/project/lib/model/solr/SolrListener.php

    r1369 r1372  
    3131
    3232    private function get_and_strip($obj, $field) {
     33      if (!$obj || !get_class($obj))
     34        return array();
    3335      $f = $obj->get($field);
    3436      if ($f) {
    35       if (get_class($f) && ! $f->id)
    36         return ;
    37       return strip_tags($f);
     37        if (is_array($f) || (get_class($f) == 'Doctrine_Collection')) {
     38          $res = array();
     39          foreach($f as $i) {
     40            $res[] = $i.'';
     41          }
     42          return $res;
     43        }
     44        if (get_class($f) && ! $f->id)
     45          return array();
     46        return array(strip_tags($f));
     47      }
     48      return array();
    3849    }
    39     return ;
    40   }
    4150
    4251  private function getObjFieldsValue($obj, $fields)
    4352  {
    4453    if (!is_array($fields)) {
    45       return $this->get_and_strip($obj, $fields);
     54      return implode(' ',$this->get_and_strip($obj, $fields));
    4655    }
    4756    $s = '';
    4857    foreach($fields as $f) {
    49       $s .= $this->get_and_strip($obj, $f).' ';
     58      $s .= implode(' ', $this->get_and_strip($obj, $f)).' ';
    5059    }
    5160    return $s;
     
    103112      $t = 'created_at';
    104113    }
    105     $d = preg_replace('/\+.*/', 'Z', date('c', strtotime($this->getObjFieldsValue($obj, $t))));
     114    $date = $this->getObjFieldsValue($obj, $t);
     115    $d = preg_replace('/\+.*/', 'Z', date('c', strtotime($date)));
    106116    $json['date']['content'] = $d;
    107117    $json['date']['weight'] = $extra_weight;
     
    117127    if (isset($this->_options['moretags']) && $t = $this->_options['moretags']) {
    118128      if (!is_array($t)) {
    119         $s = $this->get_and_strip($obj, $t);
    120         if ($s)
    121           $json['tags']['content'][] = $t.'='.$s;
    122       }else{
    123         foreach ($t as $i) {
    124           $s = $this->get_and_strip($obj, $i);
     129        $t = array($t);
     130      }
     131      foreach ($t as $i) {
     132        $content = $this->get_and_strip($obj, $i);
     133        $i = preg_replace('/([A-Z].*)s$/', '\1', $i);
     134        foreach($content as $c) {
     135          if (get_class($c)) {
     136              echo $c->nom."\n";
     137          }
     138          $s = $c;
    125139          if (strlen($s)) {
    126140            $s = strip_tags($s);
Note: See TracChangeset for help on using the changeset viewer.