本文整理汇总了PHP中Axis::db方法的典型用法代码示例。如果您正苦于以下问题:PHP Axis::db方法的具体用法?PHP Axis::db怎么用?PHP Axis::db使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Axis
的用法示例。
在下文中一共展示了Axis::db方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: run
/**
* Execute multiqueries
*
* @param string $sql
* @return Axis_Install_Model_Installer provides fluent interface
* @throws Exception
*/
public function run($sql)
{
$tries = 0;
$stmts = $this->_splitMultiQuery($sql);
foreach ($stmts as $stmt) {
do {
$retry = false;
try {
// skip commented queries
if (0 === strpos($stmt, '--') || 0 === strpos($stmt, '/*')) {
continue;
}
Axis::db()->getConnection()->exec($stmt);
} catch (Exception $e) {
if ($e->getMessage() == 'SQLSTATE[HY000]: General error: 2013 Lost connection to MySQL server during query' && $tries < 10) {
$retry = true;
$tries++;
} else {
// Axis::message()->addError($e->getTraceAsString());
Axis::message()->addError($e->getMessage());
throw $e;
}
}
} while ($retry);
}
return $this;
}
示例2: removeAction
public function removeAction()
{
$id = $this->_getParam('id');
Axis::model('cms/category')->delete(Axis::db()->quoteInto('id IN(?)', $id));
Axis::message()->addSuccess(Axis::translate('cms')->__('Category was deleted successfully'));
return $this->_helper->json->sendSuccess();
}
示例3: updateIndexesByProducts
/**
* Update price indexes for recieved products
*
* @param array $products Keys are the product id
* @return void
*/
public function updateIndexesByProducts(array $products)
{
if (!count($products)) {
return;
}
$ids = array_keys($products);
$oldPricesTemp = $this->select('*')->where('product_id IN (?)', $ids)->fetchAll();
$oldPrices = array();
foreach ($oldPricesTemp as $oldPrice) {
$oldPrices[$oldPrice['product_id']][] = $oldPrice;
}
$variationsTemp = Axis::model('catalog/product_variation')->select()->where('product_id IN (?)', $ids)->fetchAll();
$variations = array();
foreach ($variationsTemp as $variation) {
$variations[$variation['product_id']][] = $variation;
}
foreach ($products as $product) {
$variations[$product['id']][] = array('id' => 0, 'product_id' => $product['id'], 'quantity' => 0, 'price' => 0, 'price_type' => 'by', 'weight' => 0, 'weight_type' => 'by');
}
$modifiersTemp = Axis::model('catalog/product_attribute')->select('*')->joinInner('catalog_product_option', 'cpo.id = cpa.option_id', 'input_type')->where('cpa.product_id IN (?)', $ids)->where('cpa.modifier = 1')->where('cpa.variation_id = 0')->fetchAll();
$modifiers = array();
foreach ($modifiersTemp as $modifier) {
$modifiers[$modifier['product_id']][] = $modifier;
}
$productToSites = Axis::model('catalog/product_category')->getSitesByProductIds($ids);
$mDiscount = Axis::model('discount/discount');
$discounts = $mDiscount->getApplicableDiscounts($ids, $mDiscount->getAllRules(true, false));
$customerGroups = array_filter(array_keys(Axis_Collect_CustomerGroup::collect()));
foreach ($products as $product) {
if (!isset($productToSites[$product['id']])) {
$this->delete('product_id = ' . $product['id']);
continue;
}
$newPrices = $this->setProductData(array('id' => $product['id'], 'price' => $product['price'], 'site_ids' => $productToSites[$product['id']], 'customer_group_ids' => $customerGroups, 'modifiers' => isset($modifiers[$product['id']]) ? $modifiers[$product['id']] : array(), 'variations' => $variations[$product['id']], 'discounts' => isset($discounts[$product['id']]) ? $discounts[$product['id']] : array()))->getPriceIndexes();
$oldAssocPrices = array();
if (isset($oldPrices[$product['id']]) && count($oldPrices[$product['id']])) {
foreach ($oldPrices[$product['id']] as $oldPrice) {
$oldAssocPrices[$oldPrice['id']] = $oldPrice;
}
$this->delete(Axis::db()->quoteInto('id IN (?)', array_keys($oldAssocPrices)));
}
foreach ($newPrices as $price) {
$this->insert($price);
}
Axis::dispatch('catalog_product_price_update_after', array('product_data' => $product, 'new_price' => $newPrices, 'old_price' => $oldAssocPrices));
}
}
示例4: __construct
public function __construct($options = null)
{
parent::__construct($options);
$db = Axis::db();
$this->setAttrib('id', 'form-customer');
$this->addElement('select', 'site_id', array('label' => 'Site'));
$this->getElement('site_id')->setMultiOptions(Axis::model('core/option_site')->toArray());
$this->addElement('text', 'email', array('required' => true, 'label' => 'Email'));
$this->addElement('password', 'password', array('label' => 'Password'));
$this->addElement('text', 'firstname', array('required' => true, 'label' => 'Firstname', 'class' => 'input-text required'));
$this->addElement('text', 'lastname', array('required' => true, 'label' => 'Lastname', 'class' => 'input-text required'));
$this->addElement('checkbox', 'is_active', array('label' => 'Active'));
$this->addDisplayGroup(array('site_id', 'email', 'password', 'firstname', 'lastname', 'is_active'), 'login', array('legend' => 'General information'));
$rows = Axis::single('account/customer_field')->getFields();
$groupsFields = array();
foreach ($rows as $row) {
$field = 'field_' . $row['id'];
$this->addElement($row['field_type'], $field, array('required' => (bool) $row['required'], 'label' => $row['field_label']));
if ($row['required']) {
$this->getElement($field)->addValidator('NotEmpty');
}
if (!empty($row['validator'])) {
$this->getElement($field)->addValidator($row['validator']);
if ($row['validator'] == 'Date') {
$this->getElement($field)->setAttrib('class', 'date-picker');
}
}
if (isset($row['customer_valueset_id'])) {
$values = Axis::single('account/Customer_ValueSet_Value')->getCustomValues($row['customer_valueset_id'], Axis_Locale::getLanguageId());
$this->getElement($field)->setMultiOptions($values);
}
$groupsFields[$row['customer_field_group_id']][$row['id']] = $field;
}
/* add field groups */
if (count($groupsFields)) {
$groups = Axis::single('account/customer_fieldGroup')->getCustomGroups(array_keys($groupsFields), Axis_Locale::getLanguageId());
foreach ($groups as $row) {
$this->addDisplayGroup(array_values($groupsFields[$row['id']]), 'group_' . $row['id'], array('legend' => $row['group_label']));
$this->getDisplayGroup('group_' . $row['id'])->setDisableTranslator(true);
}
}
}
示例5: _isEmailValid
protected function _isEmailValid($email, $siteId, $customerId = null)
{
$where = Axis::db()->quoteInto('site_id = ?', $siteId);
if (null !== $customerId) {
$where .= Axis::db()->quoteInto(' AND id <> ?', $customerId);
}
$validator = new Axis_Validate_Exists(Axis::single('account/customer'), 'email', $where);
if (!$validator->isValid($email)) {
foreach ($validator->getMessages() as $message) {
Axis::message()->addError($message);
}
return false;
}
return true;
}
示例6: removeAction
public function removeAction()
{
$data = Zend_Json::decode($this->_getParam('data'));
Axis::model('cms/page')->delete(Axis::db()->quoteInto('id IN (?)', $data));
Axis::message()->addSuccess(Axis::translate('cms')->__('Page was deleted successfully'));
return $this->_helper->json->sendSuccess();
}
示例7: addProductAction
public function addProductAction()
{
$params = Zend_Json::decode($this->_getParam('data'));
$data = array();
foreach ($params as $param) {
$productId = $param['id'];
$product = Axis::single('catalog/product')->find($productId)->current();
if (!$product instanceof Axis_Catalog_Model_Product_Row) {
Axis::message()->addError(Axis::translate('catalog')->__('Product not found'));
return $this->_helper->json->sendFailure();
}
$quantity = $param['quantity'];
$variationId = $param['variationId'];
$orderId = $param['orderId'];
if (!$product->getStockRow()->canAddToCart($quantity, $variationId)) {
return $this->_helper->json->sendFailure();
}
$stock = Axis::single('catalog/product_stock')->find($productId)->current();
$modifierAttributes = Axis::single('catalog/product_attribute')->getAttributesByModifiers($product->id, $param['modifiers']);
$variationAttributes = array_fill_keys(Axis::single('catalog/product_attribute')->select('id')->where('modifier <> 1')->where('product_id = ?', $product->id)->where('variation_id = ?', $variationId)->fetchCol(), null);
$attributes = $modifierAttributes + $variationAttributes;
$attributesOptions = array();
if (!empty($attributes)) {
$attributesOptions = Axis::single('catalog/product_attribute')->select('id')->join('catalog_product_option_text', 'cpa.option_id = cpot.option_id AND ' . Axis::db()->quoteInto('cpot.language_id = ?', Axis_Locale::getLanguageId()), array('product_option' => 'cpot.name'))->join('catalog_product_option_value_text', 'cpa.option_value_id = cpovt.option_value_id AND ' . Axis::db()->quoteInto('cpovt.language_id = ?', Axis_Locale::getLanguageId()), array('product_option_value' => 'cpovt.name'))->where('id IN(?)', array_keys($attributes))->fetchAll();
}
$finalPrice = $product->getPrice(array_keys($attributes));
$finalWeight = $product->getWeight(array_keys($attributes));
$countryId = $param['countryId'];
$zoneId = empty($param['zoneId']) ? 0 : $param['zoneId'];
$geozoneIds = Axis::single('location/geozone')->getIds($countryId, $zoneId);
$customerGroupId = $param['customerGroupId'];
$productTax = Axis::single('tax/rate')->calculateByPrice($finalPrice, $product->tax_class_id, $geozoneIds, $customerGroupId);
$descriptionRow = $product->getDescription();
$taxRate = 0;
if ($finalPrice > 0) {
$taxRate = $productTax * 100 / $finalPrice;
}
$data[] = array('attributes' => $attributesOptions, 'backorder' => $stock->backorder, 'final_price' => $finalPrice, 'final_weight' => $finalWeight, 'order_id' => $orderId, 'product_id' => $product->id, 'name' => $descriptionRow['name'], 'price' => $product->price, 'quantity' => $quantity, 'sku' => $product->sku, 'tax_rate' => $taxRate, 'variation_id' => $variationId);
}
return $this->_helper->json->setData($data)->sendSuccess();
}
示例8: run
/**
* Run modules installation
*
* @return Axis_Install_Model_Wizard Provides fluent interface
*/
public function run()
{
@set_time_limit(300);
$modelModule = Axis::single('core/module');
if (!count(Axis::db()->fetchAll("SHOW TABLES LIKE '%core_module'"))) {
$modelModule->getByCode('Axis_Core')->install();
$this->_installStore();
$modelModule->getByCode('Axis_Locale')->install();
$this->_installLocale();
}
foreach ($this->_session->modules as $code) {
if (!strstr($code, '_')) {
continue;
}
$this->log("Module {$code}:");
$moduleRow = $modelModule->getByCode($code);
if ($moduleRow->isInstalled()) {
$this->log("\tSkipped (already installed)");
continue;
}
$this->log("\tBegin");
$moduleRow->install();
$this->log("\tEnd");
}
$this->_addUser();
return $this;
}
示例9: setDetails
/**
*
* @param type $data
*/
public function setDetails($data)
{
$modelDetail = Axis::model('account/customer_detail');
$modelDetail->delete(Axis::db()->quoteInto('customer_id = ?', $this->id));
$fields = Axis::single('account/customer_field')->select()->fetchAssoc();
$multiFields = Axis_Account_Model_Customer_Field::$fieldMulti;
foreach ($data as $id => $value) {
if (0 !== strpos($id, 'field_') || empty($value)) {
continue;
}
list(, $id) = explode('_', $id);
$_row = array('customer_id' => $this->id, 'customer_field_id' => $id);
$isMultiField = in_array($fields[$id]['field_type'], $multiFields);
if ($isMultiField && is_string($value) && strpos($value, ',')) {
$value = explode(',', $value);
}
if ($isMultiField && is_array($value)) {
foreach ($value as $_value) {
$row = $modelDetail->createRow($_row);
$row->customer_valueset_value_id = $_value;
$row->save();
}
} elseif ($isMultiField) {
$row = $modelDetail->createRow($_row);
$row->customer_valueset_value_id = $value;
$row->save();
} else {
$row = $modelDetail->createRow($_row);
$row->data = $value;
$row->save();
}
}
}
示例10: deleteByIds
public function deleteByIds($ids)
{
if (!is_array($ids)) {
$ids = array($ids);
}
$success = (bool) $this->delete(Axis::db()->quoteInto('id IN(?)', $ids));
if (!$success) {
return false;
}
Axis::message()->addSuccess(Axis::translate('catalog')->__('Manufacturer was deleted successfully'));
Axis::single('catalog/hurl')->delete(Axis::db()->quoteInto("key_type = 'm' AND key_id IN (?)", $ids));
return $success;
}
示例11: init
/**
* Main init
*/
public function init()
{
parent::init();
$this->db = Axis::db();
$this->layout = Axis_Layout::getMvcInstance();
}
示例12: dropAction
public function dropAction()
{
Axis::single('core/cache')->clean();
/**
* @var Axis_Install_Model_Installer
*/
$installer = Axis::single('install/installer');
$installer->run("\n SET SQL_MODE='';\n SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;\n SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';\n ");
$tables = Axis::db()->fetchAll('show tables');
foreach ($tables as $table) {
$tableName = current($table);
$installer->run("DROP TABLE `{$tableName}`;");
}
Axis::single('install/installer')->run("\n SET SQL_MODE=IFNULL(@OLD_SQL_MODE,'');\n SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS,0);\n ");
unlink(AXIS_ROOT . '/app/etc/config.php');
if (!headers_sent()) {
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname(str_replace('/install', '', $_SERVER['PHP_SELF'])), '/\\');
header("Location: http://{$host}{$uri}/");
}
exit;
}
示例13: addOrder
private function addOrder($entry)
{
$_SESSION['processed_count']++;
if (!isset($_SESSION['customer_relations_array'][$entry['order']['customers_id']])) {
$_SESSION['message_stack']['skipped (customer not found)'][] = $entry['order']['customers_name'] . ' ' . $entry['order']['customers_email_address'];
return;
}
/**
* array(
* [0] => array(
* [lang_id] => array(values)
* ),
* [1] => ...
* )
*/
foreach ($entry['statuses'] as $id => $status) {
if (!isset($status[$this->_primary_language]) || $status[$this->_primary_language] == '') {
$current_status = current($status);
$_SESSION['message_stack']['skipped (status code is undefined)'][] = 'CreLoaded status id: ' . $id;
continue;
}
if (!isset($_SESSION['status_relations_array'][$id])) {
$duplicate = Axis::db()->fetchOne("SELECT os.id\n FROM " . parent::$_db_prefix . parent::ORDER_STATUS . " AS os\n WHERE name = ?", $status[$this->_primary_language]);
if (!$duplicate) {
//insert new status
$status_id = Axis::single('sales/order_status')->insert(array('name' => $status[$this->_primary_language], 'system' => false));
foreach (array_keys($this->_language) as $axis_language) {
Axis::single('sales/order_status_text')->insert(array('status_id' => $status_id, 'language_id' => $axis_language, 'status_name' => $status[$this->_language[$axis_language]]));
}
} else {
//use existing status
$status_id = $duplicate;
$_SESSION['message_stack']['skipped statuses (duplicate entry)'][] = $status[$this->_primary_language];
}
$_SESSION['status_relations_array'][$id] = $status_id;
}
}
$total = 0;
$tax = new Zend_Db_Expr('NULL');
//get order total
foreach ($entry['total'] as $key => $line) {
if ($line['title'] == 'Total:') {
$total = $line['value'];
}
if ($line['title'] == 'Tax:') {
$tax = $line['value'];
}
}
$order = array('customer_id' => $_SESSION['customer_relations_array'][$entry['order']['customers_id']], 'customer_email' => $entry['order']['customers_email_address'], 'delivery_firstname' => $entry['order']['delivery_name'], 'delivery_lastname' => $entry['order']['delivery_name'], 'delivery_phone' => '', 'delivery_fax' => '', 'delivery_company' => $entry['order']['delivery_company'], 'delivery_street_address' => $entry['order']['delivery_street_address'], 'delivery_suburb' => $entry['order']['delivery_suburb'], 'delivery_city' => $entry['order']['delivery_city'], 'delivery_postcode' => $entry['order']['delivery_postcode'], 'delivery_state' => $entry['order']['delivery_state'], 'delivery_country' => $entry['order']['delivery_country'], 'delivery_address_format_id' => $entry['order']['delivery_address_format_id'], 'billing_firstname' => $entry['order']['billing_name'], 'billing_lastname' => $entry['order']['billing_name'], 'billing_phone' => '', 'billing_fax' => '', 'billing_company' => $entry['order']['billing_company'], 'billing_street_address' => $entry['order']['billing_street_address'], 'billing_suburb' => $entry['order']['billing_suburb'], 'billing_city' => $entry['order']['billing_city'], 'billing_postcode' => $entry['order']['billing_postcode'], 'billing_state' => $entry['order']['billing_state'], 'billing_country' => $entry['order']['billing_country'], 'billing_address_format_id' => $entry['order']['billing_address_format_id'], 'payment_method' => $entry['order']['payment_method'], 'payment_method_code' => $this->_prepareString($entry['order']['payment_method'], '', true) . '_Standard', 'shipping_method' => 'Free Shipping', 'shipping_method_code' => 'Free_Standard', 'coupon_code' => new Zend_Db_Expr('NULL'), 'date_modified_on' => new Zend_Db_Expr('NULL'), 'date_purchased_on' => $entry['order']['date_purchased'], 'date_finished_on' => new Zend_Db_Expr('NULL'), 'order_status_id' => $_SESSION['status_relations_array'][$entry['order']['orders_status']], 'currency' => $entry['order']['currency'], 'currency_rate' => $entry['order']['currency_value'], 'order_total' => $total, 'txn_id' => 0, 'ip_address' => $entry['order']['ipaddy'], 'site_id' => $this->_site);
$order_id = Axis::single('sales/order')->insert($order);
foreach ($entry['total'] as $line) {
if ($line['title'] == 'Total:') {
continue;
}
$title = substr($line['title'], 0, -1);
$code = preg_replace('/\\s+/', '_', trim($title));
$order_total = array('order_id' => $order_id, 'code' => $code, 'title' => $title, 'value' => $line['value']);
Axis::single('sales/order_total')->insert($order_total);
}
foreach ($entry['status_history'] as $date => $status) {
$history_data = array('order_id' => $order_id, 'order_status_id' => $_SESSION['status_relations_array'][$status['orders_status_id']], 'created_on' => $date, 'notified' => $status['customer_notified'], 'comments' => $status['comments']);
Axis::single('sales/order_status_history')->insert($history_data);
}
foreach ($entry['products'] as $product) {
//import product if not imported yet
if (!isset($_SESSION['product_relations_array'][$product['product']['products_id']])) {
$entry = $this->getProduct($product['product']['products_id']);
$this->addProduct($entry);
}
$product_id = $_SESSION['product_relations_array'][$product['product']['products_id']];
//get product sku
$sku = Axis::single('catalog/product')->getSkuById($product_id);
//inserting product
$product_data = array('order_id' => $order_id, 'product_id' => $product_id, 'variation_id' => new Zend_Db_Expr('NULL'), 'sku' => $sku, 'name' => $product['product']['products_name'], 'price' => $product['product']['products_price'], 'final_price' => $product['product']['final_price'], 'tax' => $product['product']['products_tax'], 'quantity' => $product['product']['products_quantity'], 'backorder' => 0);
$order_product_id = Axis::single('sales/order_product')->insert($product_data);
if (!count($product['attributes'])) {
continue;
}
//inserting attributes
foreach ($product['attributes'] as $attribute) {
$attribute_data = array('order_product_id' => $order_product_id, 'product_option' => $attribute['products_options'], 'product_option_value' => $attribute['products_options_values']);
Axis::db()->insert(parent::$_db_prefix . parent::ORDER_PRODUCT_ATTRIBUTE, $attribute_data);
}
}
$_SESSION['imported_count']++;
}
示例14: addFilterByUncategorized
/**
* Add filter to get products that is not linked to any category
*
* @return Axis_Catalog_Model_Product_Select
*/
public function addFilterByUncategorized()
{
$mProductToCategory = Axis::single('catalog/product_category');
$rootProducts = Axis::db()->quoteInto('cp.id = ANY (?)', $mProductToCategory->select('cpc.product_id')->join('catalog_category', 'cc.id = cpc.category_id')->where('cc.lvl = 0'));
$notChildProducts = Axis::db()->quoteInto('cp.id <> ALL (?)', $mProductToCategory->select('cpc.product_id')->join('catalog_category', 'cc.id = cpc.category_id')->where('cc.lvl <> 0'));
$this->where('cp.id <> ALL (?)', $mProductToCategory->select('cpc.product_id'))->orWhere($rootProducts . ' AND ' . $notChildProducts);
return $this;
}
示例15: _initDbAdapter
protected function _initDbAdapter()
{
$this->bootstrap('Config');
$config = $this->getResource('Config');
$db = Zend_Db::factory('Pdo_Mysql', array('host' => $config->db->host, 'username' => $config->db->username, 'password' => $config->db->password, 'dbname' => $config->db->dbname, 'charset' => 'UTF8'));
//Set default adapter for childrens Zend_Db_Table_Abstract
Zend_Db_Table_Abstract::setDefaultAdapter($db);
//Axis_Config::setDefaultDbAdapter($db);
Zend_Registry::set('db', $db);
return Axis::db();
}