예제 #1
0
파일: Field.php 프로젝트: eryx/labs
 public function getFields($entry)
 {
     $fields = array();
     $entityid = $entry['entryid'];
     $type = $entry['type'];
     $_conf = Common_Db::getInstance(Common_Data_Db::$field_config);
     $insts = $_conf->getList(array('entity_type' => $type));
     // Get Fields Data
     $regex = '#^field_(.+)$#i';
     $storage = array();
     foreach ($insts as $v) {
         if (!isset($storage[$v['storage_type']])) {
             $_db_cfg = Common_Data_Db::getFieldData($v['storage_type']);
             $_data = Common_Db::getInstance($_db_cfg);
             $ret = $_data->getById($entityid);
             //$terms = array();
             //foreach ($ret as $v2) {
             //    $terms[] = $v2['field_tid'];
             // }
             $storage[$v['storage_type']] = $ret;
         }
         switch ($v['field_type']) {
             case Common_Data_Field_Type::TERM_AUTO:
                 /* if (count($terms) > 0) {
                        $_data = Common_Db::getInstance(Common_Data_Db::$taxonomy_term_data);
                        $ret = $_data->getList(array('in.tid' => $terms), array(), 100);
                        foreach ($ret as $v2) {
                            $fields['field:term'][] = array('tid' => $v2['tid'],
                                'name' => $v2['name']);
                        }
                    }*/
                 if (isset($storage[$v['storage_type']]['field_' . $v['field_name']])) {
                     $fields['field:' . $v['field_name']] = $storage[$v['storage_type']]['field_' . $v['field_name']];
                 } else {
                     $fields['field:' . $v['field_name']] = '';
                 }
                 break;
             case Common_Data_Field_Type::TEXT_SUMMARY:
                 if (isset($storage[$v['storage_type']]['field_' . $v['field_name']])) {
                     $fields['field:' . $v['field_name']] = $storage[$v['storage_type']]['field_' . $v['field_name']];
                 } else {
                     $fields['field:' . $v['field_name']] = '';
                 }
                 if (isset($storage[$v['storage_type']]['field_' . $v['field_name'] . '_summary'])) {
                     $fields['field:' . $v['field_name'] . '_summary'] = $storage[$v['storage_type']]['field_' . $v['field_name'] . '_summary'];
                 } else {
                     $fields['field:' . $v['field_name'] . '_summary'] = '';
                 }
                 /* foreach ($ret as $k2 => $v2) {
                        if (preg_match($regex, $k2, $v3)) {
                            $fields['field:'.$v3[1]] = $v2;
                        }
                    }*/
                 break;
             default:
                 //...
         }
     }
     return $fields;
 }
예제 #2
0
파일: Data.php 프로젝트: eryx/labs
 public function getEntry($entryid)
 {
     try {
         $_entry = Common_Db::getInstance(Common_Data_Db::$entry);
         $entry = $_entry->getById($entryid);
         $_field = new Common_Data_Field();
         $fields = $_field->getFields($entry);
         $entry = array_merge($entry, $fields);
     } catch (Exception $e) {
         throw $e;
     }
     return $entry;
 }