/** * @param array $containers * @param array $orderData * @return array */ public function getPayPalInvoiceContentInfo(array $containers, array $orderData) { $footer = $containers['Paypal_Content_Info']; $translationComp = new Shopware_Components_Translation(); $translation = $translationComp->read($orderData['_order']['language'], 'documents', 1); $query = "SELECT * FROM s_core_documents_box WHERE id = ?"; $rawFooter = $this->db->fetchAssoc($query, array($footer['id'])); if (!empty($translation[1]["Paypal_Content_Info_Value"])) { $rawFooter["value"] = $translation[1]["Paypal_Content_Info_Value"]; } return $rawFooter[$footer['id']]; }
public function sBuildTagCloud($categoryId = null) { $categoryId = (int) $categoryId; if (empty($categoryId)) { $categoryId = $this->categoryId; } if (!empty($this->sSYSTEM->sCONFIG['sTAGCLOUDMAX'])) { $tagSize = (int) $this->sSYSTEM->sCONFIG['sTAGCLOUDMAX']; } else { $tagSize = 50; } if (!empty($this->sSYSTEM->sCONFIG['sTAGTIME'])) { $tagTime = (int) $this->sSYSTEM->sCONFIG['sTAGTIME']; } else { $tagTime = 3; } $sql = "\n SELECT\n a.id as articleID,\n a.name as articleName,\n COUNT(r.articleID) as relevance\n\n FROM s_articles a\n INNER JOIN s_articles_categories_ro ac\n ON ac.articleID = a.id\n AND ac.categoryID = {$categoryId}\n INNER JOIN s_categories c\n ON c.id = ac.categoryID\n AND c.active = 1\n\n LEFT JOIN s_emarketing_lastarticles r\n ON a.id = r.articleID\n AND r.time >= DATE_SUB(NOW(),INTERVAL {$tagTime} DAY)\n\n LEFT JOIN s_articles_avoid_customergroups ag\n ON ag.articleID=a.id\n AND ag.customergroupID={$this->customerGroupId}\n\n WHERE a.active = 1\n AND ag.articleID IS NULL\n\n GROUP BY a.id\n ORDER BY COUNT(r.articleID) DESC\n LIMIT {$tagSize}\n "; $articles = $this->db->fetchAssoc($sql); array_walk($articles, function (&$article) { unset($article['articleID']); }); if (empty($articles)) { return array(); } $articles = $this->sSYSTEM->sMODULES["sArticles"]->sGetTranslations($articles, "article"); $pos = 1; $anz = count($articles); if (!empty($this->sSYSTEM->sCONFIG['sTAGCLOUDSPLIT'])) { $steps = (int) $this->sSYSTEM->sCONFIG['sTAGCLOUDSPLIT']; } else { $steps = 3; } if (!empty($this->sSYSTEM->sCONFIG['sTAGCLOUDCLASS'])) { $class = (string) $this->sSYSTEM->sCONFIG['sTAGCLOUDCLASS']; } else { $class = "tag"; } $link = $this->sSYSTEM->sCONFIG['sBASEFILE'] . "?sViewport=detail&sArticle="; foreach ($articles as $articleId => $article) { $name = strip_tags(html_entity_decode($article['articleName'], ENT_QUOTES, 'UTF-8')); $name = preg_replace("/[^\\w0-9äöüßÄÖÜ´`.-]/u", " ", $name); $name = preg_replace('/\\s\\s+/', ' ', $name); $name = preg_replace('/\\(.*\\)/', '', $name); $name = trim($name, " -"); $articles[$articleId]["articleID"] = $articleId; $articles[$articleId]["name"] = $name; if ($anz != 0) { $articles[$articleId]["class"] = $class . round($pos / $anz * $steps); } else { $articles[$articleId]["class"] = $class . 0; } $articles[$articleId]["link"] = $link . $articleId; $pos++; } shuffle($articles); return $articles; }
private function getNoteProducts() { $responseCookies = $this->front->Response()->getCookies(); if (isset($responseCookies['sUniqueID']['value']) && $responseCookies['sUniqueID']['value']) { $uniqueId = $responseCookies['sUniqueID']['value']; } else { $uniqueId = $this->front->Request()->getCookie('sUniqueID'); } $notes = $this->db->fetchAssoc(' SELECT n.ordernumber as arrayKey, n.* FROM s_order_notes n, s_articles a WHERE (sUniqueID = ? OR (userID != 0 AND userID = ?)) AND a.id = n.articleID AND a.active = 1 ORDER BY n.datum DESC', array(empty($uniqueId) ? $this->session->get('sessionId') : $uniqueId, $this->session->get('sUserId', 0))); return $notes; }
/** * Get dispatch methods * * @param int $countryID Country id * @param int $paymentID Payment mean id * @param int $stateId Country state id * @return array Shipping methods data */ public function sGetPremiumDispatches($countryID = null, $paymentID = null, $stateId = null) { $this->sCreateHolidaysTable(); $basket = $this->sGetDispatchBasket($countryID, $paymentID, $stateId); $statements = $this->db->fetchPairs("\n SELECT id, bind_sql\n FROM s_premium_dispatch\n WHERE active = 1 AND type IN (0)\n AND bind_sql IS NOT NULL AND bind_sql != ''\n "); if (empty($basket)) { return array(); } $sql_where = ""; foreach ($statements as $dispatchID => $statement) { $sql_where .= " AND ( d.id != {$dispatchID} OR ({$statement})) "; } $sql_basket = array(); foreach ($basket as $key => $value) { $sql_basket[] = $this->db->quote($value) . " as `{$key}`"; } $sql_basket = implode(', ', $sql_basket); $sql = "\n SELECT\n d.id as `key`,\n d.id, d.name,\n d.description,\n d.calculation,\n d.status_link,\n b.*\n FROM s_premium_dispatch d\n\n JOIN ( SELECT {$sql_basket} ) b\n JOIN s_premium_dispatch_countries dc\n ON d.id = dc.dispatchID\n AND dc.countryID=b.countryID\n JOIN s_premium_dispatch_paymentmeans dp\n ON d.id = dp.dispatchID\n AND dp.paymentID=b.paymentID\n LEFT JOIN s_premium_holidays h\n ON h.date = CURDATE()\n LEFT JOIN s_premium_dispatch_holidays dh\n ON d.id=dh.dispatchID\n AND h.id=dh.holidayID\n\n LEFT JOIN (\n SELECT dc.dispatchID\n FROM s_order_basket b\n JOIN s_articles_categories_ro ac\n ON ac.articleID=b.articleID\n JOIN s_premium_dispatch_categories dc\n ON dc.categoryID=ac.categoryID\n WHERE b.modus=0\n AND b.sessionID='{$this->session->offsetGet('sessionId')}'\n GROUP BY dc.dispatchID\n ) as dk\n ON dk.dispatchID=d.id\n\n LEFT JOIN s_user u\n ON u.id=b.userID\n AND u.active=1\n\n LEFT JOIN s_user_billingaddress ub\n ON ub.userID=u.id\n\n LEFT JOIN s_user_shippingaddress us\n ON us.userID=u.id\n\n WHERE d.active=1\n AND (\n (bind_time_from IS NULL AND bind_time_to IS NULL)\n OR\n (IFNULL(bind_time_from,0) <= IFNULL(bind_time_to,86400) AND TIME_TO_SEC(DATE_FORMAT(NOW(),'%H:%i:00')) BETWEEN IFNULL(bind_time_from,0) AND IFNULL(bind_time_to,86400))\n OR\n (bind_time_from > bind_time_to AND TIME_TO_SEC(DATE_FORMAT(NOW(),'%H:%i:00')) NOT BETWEEN bind_time_to AND bind_time_from)\n )\n AND (\n (bind_weekday_from IS NULL AND bind_weekday_to IS NULL)\n OR\n (IFNULL(bind_weekday_from,1) <= IFNULL(bind_weekday_to,7) AND WEEKDAY(NOW())+1 BETWEEN IFNULL(bind_weekday_from,1) AND IFNULL(bind_weekday_to,7))\n OR\n (bind_weekday_from > bind_weekday_to AND WEEKDAY(NOW())+1 NOT BETWEEN bind_weekday_to AND bind_weekday_from)\n )\n AND (bind_weight_from IS NULL OR bind_weight_from <= b.weight)\n AND (bind_weight_to IS NULL OR bind_weight_to >= b.weight)\n AND (bind_price_from IS NULL OR bind_price_from <= b.amount)\n AND (bind_price_to IS NULL OR bind_price_to >= b.amount)\n AND (bind_instock=0 OR bind_instock IS NULL OR (bind_instock=1 AND b.instock) OR (bind_instock=2 AND b.stockmin))\n AND (bind_laststock=0 OR (bind_laststock=1 AND b.laststock))\n AND (bind_shippingfree!=1 OR NOT b.shippingfree)\n AND dh.holidayID IS NULL\n AND (d.multishopID IS NULL OR d.multishopID=b.multishopID)\n AND (d.customergroupID IS NULL OR d.customergroupID=b.customergroupID)\n AND dk.dispatchID IS NULL\n AND d.type IN (0)\n {$sql_where}\n GROUP BY d.id\n ORDER BY d.position, d.name\n "; $dispatches = $this->db->fetchAssoc($sql); if (empty($dispatches)) { $sql = "\n SELECT\n d.id as `key`,\n d.id, d.name,\n d.description,\n d.calculation,\n d.status_link\n FROM s_premium_dispatch d\n\n WHERE d.active=1\n AND d.type=1\n GROUP BY d.id\n\n ORDER BY d.position, d.name\n LIMIT 1\n "; $dispatches = $this->db->fetchAssoc($sql); } $names = array(); foreach ($dispatches as $dispatchID => $dispatch) { if (in_array($dispatch['name'], $names)) { unset($dispatches[$dispatchID]); } else { $names[] = $dispatch['name']; } } unset($names); $object = $this->sGetDispatchTranslation(); foreach ($dispatches as &$dispatch) { if (!empty($object[$dispatch['id']]['dispatch_name'])) { $dispatch['name'] = $object[$dispatch['id']]['dispatch_name']; } if (!empty($object[$dispatch['id']]['dispatch_description'])) { $dispatch['description'] = $object[$dispatch['id']]['dispatch_description']; } } return $dispatches; }