/**
  * @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');
 }
Example #2
0
 /**
  * @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');
 }
Example #3
0
 /**
  * @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();
 }
Example #5
0
 /** @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');
 }
Example #6
0
 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);
 }
Example #7
0
 /**
  * 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;
 }
Example #8
0
	/**
	 * @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;
	}
Example #9
0
 /**
  * @author Max Milbers
  * @param string $_db
  */
 function __construct(&$_db)
 {
     parent::__construct('#__virtuemart_order_userinfos', 'virtuemart_order_userinfo_id', $_db);
     parent::showFullColumns();
     $this->setLoggable();
 }
Example #10
0
 /**
  * @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();
 }
Example #12
0
 /**
  * @author RickG
  * @param JDataBase $db
  */
 function __construct(&$db)
 {
     parent::__construct('#__virtuemart_configs', 'virtuemart_config_id', $db);
     $this->setLoggable();
 }
Example #13
0
 /**
  * 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;
 }
Example #14
0
    /**
     * 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);
    }
Example #15
0
 /**
  * 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;
 }
Example #16
0
 /**
  * @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;
 }
Example #17
0
 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;
 }