示例#1
0
 /**
  * Save CustomFields
  * @param CustomFields $customFields
  * @returns boolean
  * @throws DaoException, DataDuplicationException
  */
 public function saveCustomField(CustomFields $customFields)
 {
     try {
         $q = Doctrine_Query::create()->from('CustomFields c')->where('c.name = ?', $customFields->name)->andWhere('c.field_num <> ?', $customFields->field_num);
         $freeNum = null;
         if (empty($customFields->field_num)) {
             $q = Doctrine_Query::create()->select('c.field_num')->from('CustomFields c')->orderBy('field_num');
             $fieldNumbers = $q->execute(array(), Doctrine::HYDRATE_SCALAR);
             $count = count($fieldNumbers);
             $i = 1;
             foreach ($fieldNumbers as $num) {
                 if ($num['c_field_num'] > $i) {
                     $freeNum = $i;
                     break;
                 }
                 $i++;
                 if ($i > 10) {
                     break;
                 }
             }
             if (empty($freeNum) && $i <= 10) {
                 $freeNum = $i;
             }
             $customFields->field_num = $freeNum;
         }
         if (!empty($customFields->field_num)) {
             $customFields->save();
         }
         return $customFields;
         //            return true;
     } catch (Doctrine_Exception $e) {
         throw new DaoException($e->getMessage());
     }
 }
示例#2
0
 public function _install()
 {
     $this->db->where('name', 'digital_products')->update('components', array('autoload' => '1', 'enabled' => '1'));
     $field = new CustomFields();
     $field->setEntity('Product')->setIsActive(true)->setname('dplink')->setfLabel('Link to digital content')->settypeId(3);
     $field->save();
     ShopCore::app()->SSettings->set('DPLinkCFID', $field->getId());
     /** We recomend to use http://ellislab.com/codeigniter/user-guide/database/forge.html */
     /**
      $this->load->dbforge();
     
      $fields = array(
      'id' => array('type' => 'INT', 'constraint' => 11, 'auto_increment' => TRUE,),
      'name' => array('type' => 'VARCHAR', 'constraint' => 50,),
      'value' => array('type' => 'VARCHAR', 'constraint' => 100,)
      );
     
      $this->dbforge->add_key('id', TRUE);
      $this->dbforge->add_field($fields);
      $this->dbforge->create_table('mod_empty', TRUE);
     */
     /**
      */
 }