/** * @author Max Milbers * @param $db A database connector object */ function __construct(&$db) { parent::__construct('#__virtuemart_category_categories', 'id', $db); $this->setPrimaryKey('category_child_id'); $this->setOrderable(); $this->setTableShortCut('cx'); }
/** * @param $db Class constructor; connect to the database */ function __construct(&$db) { parent::__construct('#__virtuemart_vmusers', 'virtuemart_user_id', $db); $this->setPrimaryKey('virtuemart_user_id'); $this->setLoggable(); $this->setTableShortCut('vmu'); }
/** * @author Max Milbers * @param */ function check() { if (!empty($this->product_price)) { $this->product_price = str_replace(array(',', ' '), array('.', ''), $this->product_price); } else { $this->product_price = null; } return parent::check(); }
/** * @author Max Milbers * @param */ function check() { if (isset($this->product_price)) { $this->product_price = str_replace(array(',', ' '), array('.', ''), $this->product_price); } if (isset($this->product_override_price)) { $this->product_override_price = str_replace(array(',', ' '), array('.', ''), $this->product_override_price); } return parent::check(); }
/** @author RickG, Max Milbers * @param JDataBase $db */ function __construct(&$db) { parent::__construct('#__virtuemart_vendors', 'virtuemart_vendor_id', $db); $this->setPrimaryKey('virtuemart_vendor_id'); $this->setUniqueName('vendor_name'); $this->setSlug('vendor_store_name'); //Attention the slug autoname MUST be also in the translatable, if existing $this->setLoggable(); $this->setTranslatable(array('vendor_store_name', 'vendor_phone', 'vendor_store_desc', 'vendor_terms_of_service', 'vendor_legal_info', 'vendor_url', 'metadesc', 'metakey', 'customtitle', 'vendor_letter_css', 'vendor_letter_header_html', 'vendor_letter_footer_html')); $varsToPushParam = array('vendor_min_pov' => array(0.0, 'float'), 'vendor_min_poq' => array(1, 'int'), 'vendor_freeshipment' => array(0.0, 'float'), 'vendor_address_format' => array('', 'string'), 'vendor_date_format' => array('', 'string'), 'vendor_letter_format' => array('A4', 'string'), 'vendor_letter_orientation' => array('P', 'string'), 'vendor_letter_margin_top' => array(45, 'int'), 'vendor_letter_margin_left' => array(25, 'int'), 'vendor_letter_margin_right' => array(25, 'int'), 'vendor_letter_margin_bottom' => array(25, 'int'), 'vendor_letter_margin_header' => array(12, 'int'), 'vendor_letter_margin_footer' => array(20, 'int'), 'vendor_letter_font' => array('helvetica', 'string'), 'vendor_letter_font_size' => array(8, 'int'), 'vendor_letter_header_font_size' => array(7, 'int'), 'vendor_letter_footer_font_size' => array(6, 'int'), 'vendor_letter_header' => array(1, 'int'), 'vendor_letter_header_line' => array(1, 'int'), 'vendor_letter_header_line_color' => array("#000000", 'string'), 'vendor_letter_header_image' => array(1, 'int'), 'vendor_letter_header_imagesize' => array(60, 'int'), 'vendor_letter_header_cell_height_ratio' => array(1, 'float'), 'vendor_letter_footer' => array(1, 'int'), 'vendor_letter_footer_line' => array(1, 'int'), 'vendor_letter_footer_line_color' => array("#000000", 'string'), 'vendor_letter_footer_cell_height_ratio' => array(1, 'float'), 'vendor_letter_add_tos' => array(0, 'int'), 'vendor_letter_add_tos_newpage' => array(1, 'int')); $this->setParameterable('vendor_params', $varsToPushParam); $this->setTableShortCut('v'); }
function __construct(&$db) { parent::__construct('#__virtuemart_vendors', 'virtuemart_vendor_id', $db); $this->setPrimaryKey('virtuemart_vendor_id'); $this->setUniqueName('vendor_name'); $this->setSlug('vendor_store_name'); //Attention the slug autoname MUST be also in the translatable, if existing $this->setLoggable(); $this->setTranslatable(array('vendor_store_name', 'vendor_phone', 'vendor_store_desc', 'vendor_terms_of_service', 'vendor_legal_info', 'vendor_url')); $varsToPushParam = array('vendor_min_pov' => array(0.0, 'float'), 'vendor_min_poq' => array(1, 'int'), 'vendor_freeshipment' => array(0.0, 'float'), 'vendor_address_format' => array('', 'string'), 'vendor_date_format' => array('', 'string')); $this->setParameterable('vendor_params', $varsToPushParam); $this->setTableShortCut('v'); // vmdebug('myvendor table',$this); }
/** * Overloaded delete() to delete a list of virtuemart_userinfo_id's based on the user id * @var mixed id * @return boolean True on success * @author Oscar van Eijk */ function delete($id = null, $where = 0) { // TODO If $id is not numeric, assume it's a virtuemart_userinfo_id. Validate if this is safe enough if (!is_numeric($id)) { return parent::delete($id); } // Implicit else $this->_db->setQuery('DELETE from `#__virtuemart_userinfos` WHERE `virtuemart_user_id` = ' . $id); if ($this->_db->query() === false) { vmError($this->_db->getError()); return false; } return true; }
/** * @param $tableName * @param $tableFields * @param $primaryKey * @param $tableId * @param bool $loggable * @return VmTableData */ protected function createPluginTableObject ($tableName, $tableFields, $primaryKey, $tableId, $loggable = FALSE) { if (!class_exists ('VmTableData')) { require(VMPATH_ADMIN . DS . 'helpers' . DS . 'vmtabledata.php'); } $db = JFactory::getDBO (); $table = new VmTableData($tableName, $tableId, $db); foreach ($tableFields as $field) { $table->$field = 0; } if ($primaryKey !== 0) { $table->setPrimaryKey ($primaryKey); } if ($loggable) { $table->setLoggable (); } if($this->_cryptedFields){ $this->_vmpCtable->setCryptedFields($this->_cryptedFields); } /*if (!$this->_tableChecked) { $this->onStoreInstallPluginTable ($this->_psType); $this->_tableChecked = TRUE; }*/ return $table; }
/** * @author Max Milbers * @param string $_db */ function __construct(&$_db) { parent::__construct('#__virtuemart_order_userinfos', 'virtuemart_order_userinfo_id', $_db); parent::showFullColumns(); $this->setLoggable(); }
/** * @author Max Milbers * @param string $_db */ function __construct(&$_db) { parent::__construct('#__virtuemart_order_userinfos', 'virtuemart_order_userinfo_id', $_db); parent::loadFields($_db); $this->setLoggable(); }
function check() { //$this->checkCurrencySymbol(); return parent::check(); }
/** * @author RickG * @param JDataBase $db */ function __construct(&$db) { parent::__construct('#__virtuemart_configs', 'virtuemart_config_id', $db); $this->setLoggable(); }
/** * As shortcat, Important the & MUST be there, even in php5.3 * * @author Max Milbers * @param array/obj $data input data as assoc array or obj * @param boolean $preload You can preload the data here too preserve not updated data * @return array/obj $data the updated data */ public function bindChecknStore(&$data, $preload = false) { $tblKey = $this->_tbl_key; if ($this->_translatable) { if (!class_exists('VmTableData')) { require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'vmtabledata.php'; } $db = JFactory::getDBO(); $langTable = new VmTableData($this->_tbl_lang, $tblKey, $db); $langTable->setPrimaryKey($tblKey); $langData = array(); $langObKeys = array(); $langUniqueKeys = array(); if (is_object($data)) { foreach ($this->_translatableFields as $name) { if (!empty($data->{$name})) { $langData[$name] = $data->{$name}; } else { $langData[$name] = ''; } unset($this->{$name}); if (!empty($this->_unique_name[$name])) { $langUniqueKeys[$name] = JText::sprintf('COM_VIRTUEMART_STRING_ERROR_NOT_UNIQUE_NAME', JText::_('COM_VIRTUEMART_' . strtoupper($name))); unset($this->_unique_name[$name]); $langObKeys[$name] = JText::sprintf('COM_VIRTUEMART_STRING_ERROR_OBLIGATORY_KEY', JText::_('COM_VIRTUEMART_' . strtoupper($name))); unset($this->_obkeys[$name]); } if (!empty($this->_obkeys[$name])) { $langObKeys[$name] = JText::sprintf('COM_VIRTUEMART_STRING_ERROR_OBLIGATORY_KEY', JText::_('COM_VIRTUEMART_' . strtoupper($name))); unset($this->_obkeys[$name]); } } // $langTable->$tblKey = $data->$tblKey; } else { foreach ($this->_translatableFields as $name) { if (!empty($data[$name])) { $langData[$name] = $data[$name]; } else { $langData[$name] = ''; } unset($this->{$name}); if (!empty($this->_unique_name[$name])) { $langUniqueKeys[$name] = JText::sprintf('COM_VIRTUEMART_STRING_ERROR_NOT_UNIQUE_NAME', JText::_('COM_VIRTUEMART_' . strtoupper($name))); unset($this->_unique_name[$name]); $langObKeys[$name] = JText::sprintf('COM_VIRTUEMART_STRING_ERROR_OBLIGATORY_KEY', JText::_('COM_VIRTUEMART_' . strtoupper($name))); unset($this->_obkeys[$name]); } if (!empty($this->_obkeys[$name])) { $langObKeys[$name] = JText::sprintf('COM_VIRTUEMART_STRING_ERROR_OBLIGATORY_KEY', JText::_('COM_VIRTUEMART_' . strtoupper($name))); unset($this->_obkeys[$name]); } } // $langTable->$tblKey = $data[$tblKey]; } $langTable->_unique_name = $langUniqueKeys; $langTable->_obkeys = $langObKeys; $langTable->_slugAutoName = $this->_slugAutoName; unset($this->_slugAutoName); $langTable->_slugName = 'slug'; unset($this->_slugName); $langTable->setProperties($langData); $langTable->_translatable = false; // $dataLang = $data; // vmdebug('my $dataLang',$langTable,$data); // vmdebug('my $table $this',$this); $this->bindChecknStoreNoLang($data, $preload); // vmdebug('bindchecknstore',$langData,$this); $langTable->{$tblKey} = !empty($this->{$tblKey}) ? $this->{$tblKey} : 0; $ok = true; if ($ok) { if (!$langTable->check()) { $ok = false; // $msg .= ' check'; vmdebug('Check returned false ' . get_class($langTable) . ' ' . $this->_tbl . ' ' . $langTable->_db->getErrorMsg()); } } if ($ok) { if (!$langTable->store()) { $ok = false; // $msg .= ' store'; vmdebug('Problem in store ' . get_class($langTable) . ' ' . $langTable->_db->getErrorMsg()); } } // if(is_object($data)){ // $data->$tblKey = !empty($langTable->$tblKey) ? $langTable->$tblKey : 0; // }else { // $data[$tblKey] = !empty($langTable->$tblKey) ? $langTable->$tblKey : 0; // } // $langTable->bindChecknStoreNoLang($data,$preload); } else { $this->bindChecknStoreNoLang($data, $preload); } return true; }
/** * Overloaded delete() to delete records from order_userinfo and order payment as well, * and write a record to the order history (TODO Or should the hist table be cleaned as well?) * * @var integer Order id * @return boolean True on success * @auhtor Max Milbers * @author Kohl Patrick */ function delete($id = null, $where = 0) { $k = $this->_tbl_key; if ($id === null) { $id = $this->{$k}; } $this->_db->setQuery('DELETE from `#__virtuemart_order_userinfos` WHERE `virtuemart_order_id` = ' . (int) $id); if ($this->_db->execute() === false) { vmError($this->_db->getError()); return false; } /*vm_order_payment NOT EXIST have to find the table name*/ $this->_db->setQuery('SELECT `payment_element` FROM `#__virtuemart_paymentmethods` , `#__virtuemart_orders` WHERE `#__virtuemart_paymentmethods`.`virtuemart_paymentmethod_id` = `#__virtuemart_orders`.`virtuemart_paymentmethod_id` AND `virtuemart_order_id` = ' . $id); $payment_element = $this->_db->loadResult(); if (!empty($payment_element)) { $paymentTable = '#__virtuemart_payment_plg_' . $payment_element; $this->_db->setQuery('DELETE from `' . $paymentTable . '` WHERE `virtuemart_order_id` = ' . $id); if ($this->_db->execute() === false) { vmError($this->_db->getError()); return false; } } /*vm_order_shipment NOT EXIST have to find the table name*/ $this->_db->setQuery('SELECT `shipment_element` FROM `#__virtuemart_shipmentmethods` , `#__virtuemart_orders` WHERE `#__virtuemart_shipmentmethods`.`virtuemart_shipmentmethod_id` = `#__virtuemart_orders`.`virtuemart_shipmentmethod_id` AND `virtuemart_order_id` = ' . $id); $shipmentName = $this->_db->loadResult(); if (!empty($shipmentName)) { $shipmentTable = '#__virtuemart_shipment_plg_' . $shipmentName; $this->_db->setQuery('DELETE from `' . $shipmentTable . '` WHERE `virtuemart_order_id` = ' . $id); if ($this->_db->execute() === false) { vmError('TableOrders delete Order shipmentTable = ' . $shipmentTable . ' `virtuemart_order_id` = ' . $id . ' dbErrorMsg ' . $this->_db->getError()); return false; } } $_q = 'INSERT INTO `#__virtuemart_order_histories` (' . ' virtuemart_order_history_id' . ',virtuemart_order_id' . ',order_status_code' . ',created_on' . ',customer_notified' . ',comments' . ') VALUES (' . ' NULL' . ',' . $id . ",'-'" . ',NOW()' . ',0' . ",'Order deleted'" . ')'; $this->_db->setQuery($_q); $this->_db->execute(); // Ignore error here return parent::delete($id); }
/** * As shortcat, Important the & MUST be there, even in php5.3 * * @author Max Milbers * @param array/obj $data input data as assoc array or obj * @param boolean $preload You can preload the data here too preserve not updated data * @return array/obj $data the updated data */ public function bindChecknStore(&$data, $preload = false) { $tblKey = $this->_tbl_key; $ok = true; if ($this->_translatable) { if (!class_exists('VmTableData')) { require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'vmtabledata.php'; } $db = JFactory::getDBO(); $dataTable = clone $this; $langTable = new VmTableData($this->_tbl_lang, $tblKey, $db); $langTable->setPrimaryKey($tblKey); $langData = array(); $langObKeys = array(); $langUniqueKeys = array(); if (is_object($data)) { foreach ($this->_translatableFields as $name) { if (isset($data->{$name})) { //We directly store language stuff "escaped" $langData[$name] = htmlentities($data->{$name}, ENT_QUOTES, "UTF-8"); } else { // $langData[$name] = ''; } unset($dataTable->{$name}); if (!empty($this->_unique_name[$name])) { $langUniqueKeys[$name] = vmText::sprintf('COM_VIRTUEMART_STRING_ERROR_NOT_UNIQUE_NAME', vmText::_('COM_VIRTUEMART_' . strtoupper($name))); unset($dataTable->_unique_name[$name]); $langObKeys[$name] = vmText::sprintf('COM_VIRTUEMART_STRING_ERROR_OBLIGATORY_KEY', vmText::_('COM_VIRTUEMART_' . strtoupper($name))); unset($dataTable->_obkeys[$name]); } if (!empty($this->_obkeys[$name])) { $langObKeys[$name] = vmText::sprintf('COM_VIRTUEMART_STRING_ERROR_OBLIGATORY_KEY', vmText::_('COM_VIRTUEMART_' . strtoupper($name))); unset($dataTable->_obkeys[$name]); } } // $langTable->$tblKey = $data->$tblKey; } else { foreach ($this->_translatableFields as $name) { if (isset($data[$name])) { //$langData[$name] = $data[$name]; $langData[$name] = htmlentities($data[$name], ENT_QUOTES, "UTF-8"); } else { // $langData[$name] = ''; } unset($dataTable->{$name}); if (!empty($this->_unique_name[$name])) { $langUniqueKeys[$name] = vmText::sprintf('COM_VIRTUEMART_STRING_ERROR_NOT_UNIQUE_NAME', vmText::_('COM_VIRTUEMART_' . strtoupper($name))); unset($dataTable->_unique_name[$name]); $langObKeys[$name] = vmText::sprintf('COM_VIRTUEMART_STRING_ERROR_OBLIGATORY_KEY', vmText::_('COM_VIRTUEMART_' . strtoupper($name))); unset($dataTable->_obkeys[$name]); } if (!empty($this->_obkeys[$name])) { $langObKeys[$name] = vmText::sprintf('COM_VIRTUEMART_STRING_ERROR_OBLIGATORY_KEY', vmText::_('COM_VIRTUEMART_' . strtoupper($name))); unset($dataTable->_obkeys[$name]); } } // $langTable->$tblKey = $data[$tblKey]; } $langTable->_unique_name = $langUniqueKeys; $langTable->_obkeys = $langObKeys; $langTable->_slugAutoName = $this->_slugAutoName; unset($dataTable->_slugAutoName); $langTable->_slugName = 'slug'; unset($dataTable->_slugName); $langTable->setProperties($langData); $langTable->_translatable = false; //We must check the langtable BEFORE we store the normal table, cause the langtable is often defining if there are enough data to store it (for exmple the name) if ($ok) { //vmdebug('my langtable before bind',$langTable->id); if (!$langTable->bind($data)) { $ok = false; $msg = 'bind'; // vmdebug('Problem in bind '.get_class($this).' '.$this->_db->getErrorMsg()); vmdebug('Problem in bind ' . get_class($this) . ' '); } } if ($ok) { if (!$langTable->check()) { $ok = false; vmdebug('Check returned false ' . get_class($langTable) . ' ' . $this->_tbl . ' ' . $langTable->_db->getErrorMsg()); } } if ($ok) { $dataTable->bindChecknStoreNoLang($data, $preload); $this->bind($dataTable); $langTable->{$tblKey} = !empty($this->{$tblKey}) ? $this->{$tblKey} : 0; //vmdebug('bindChecknStoreNoLang my $tblKey '.$tblKey.' '.$langTable->$tblKey); if ($ok and $preload) { if (!empty($langTable->{$tblKey})) { $id = $langTable->{$tblKey}; if (!$langTable->load($id)) { $ok = false; vmdebug('Preloading of language table failed, no id given, cannot store ' . $this->_tbl); } } else { if ($ok) { if (!$langTable->bind($data)) { $ok = false; vmdebug('Problem in bind ' . get_class($this) . ' '); } } if ($ok) { if (!$langTable->check()) { $ok = false; vmdebug('Check returned false ' . get_class($langTable) . ' ' . $this->_tbl . ' ' . $langTable->_db->getErrorMsg()); } } } } if ($ok) { if (!$langTable->store()) { $ok = false; // $msg .= ' store'; vmdebug('Problem in store with langtable ' . get_class($langTable) . ' with ' . $tblKey . ' = ' . $this->{$tblKey} . ' ' . $langTable->_db->getErrorMsg()); } else { $this->bind($langTable); if ($this->_lhash) { self::$_cache['l'][$this->_lhash] = $this->loadFieldValues(false); } } } } } else { if (!$this->bindChecknStoreNoLang($data, $preload)) { $ok = false; } } return $ok; }
/** * @param $tableName * @param $tableFields * @param $primaryKey * @param $tableId * @param bool $loggable * @return VmTableData */ protected function createPluginTableObject($tableName, $tableFields, $primaryKey, $tableId, $loggable = FALSE) { if (!class_exists('VmTableData')) { require JPATH_VM_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'helpers' . DIRECTORY_SEPARATOR . 'vmtabledata.php'; } $db = JFactory::getDBO(); $table = new VmTableData($tableName, $tableId, $db); foreach ($tableFields as $field) { $table->{$field} = 0; } /* if (substr($tableName, 0, 6) == 'TableS') if (!isset($table->shipment_logos)) $table->shipment_logos = ''; if (substr($tableName, 0, 6) == 'TableP') if (!isset($table->payment_logos)) $table->payment_logos = ''; if (!isset($table->cost_per_transaction)) $table->cost_per_transaction = 0; if (!isset($table->cost_percent_total)) $table->cost_percent_total = 0; */ if ($primaryKey !== 0) { $table->setPrimaryKey($primaryKey); } if ($loggable) { $table->setLoggable(); } if ($this->_cryptedFields) { $this->_vmpCtable->setCryptedFields($this->_cryptedFields); } if (!OPCJ3) { if (!$this->_tableChecked) { $this->onStoreInstallPluginTable($this->_psType); $this->_tableChecked = TRUE; } } return $table; }
protected function createPluginTableObject($tableName, $tableFields, $primaryKey, $tableId, $loggable = false) { if (!class_exists('VmTableData')) { require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'vmtabledata.php'; } $db = JFactory::getDBO(); $table = new VmTableData($tableName, $tableId, $db); foreach ($tableFields as $field) { $table->{$field} = 0; } if ($primaryKey !== 0) { $table->setPrimaryKey($primaryKey); } if ($loggable) { $table->setLoggable(); } if (!$this->_tableChecked) { vmdebug('createPluginTableObject executing onStoreInstallPluginTable'); $this->onStoreInstallPluginTable($this->_psType); $this->_tableChecked = true; } return $table; }