/** * 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()); } }
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); */ /** */ }