Jump to content
php.lv forumi

didje3

Reģistrētie lietotāji
  • Posts

    8
  • Joined

  • Last visited

didje3's Achievements

Newbie

Newbie (1/14)

  1. Skripts <?php include(dirname(__FILE__).'/../../config/config.inc.php'); require_once(dirname(__FILE__).'/../../init.php'); $tags = array( 'name' => 'name', 'link' => 'link', 'price_inc' => 'price', 'imageUrl' => 'image', 'ean' => 'ean', 'categoryName' => 'category_full', 'subCategoryName' => 'subCategory', ); function my_strip_tags($t) { $t = preg_replace('/</',' <',$t); $t = preg_replace('/>/','> ',$t); $t = preg_replace('/[\n\r\t]/',' ',$t); $t = preg_replace('/ /',' ',$t); return strip_tags($t); } function print_field($k, $v) { global $tags; if (isset($tags[$k])) { $k = $tags[$k]; $v = htmlspecialchars($v, ENT_NOQUOTES, "UTF-8"); print " <$k>$v</$k>\n"; } } header("Content-Type:text/xml; charset=utf-8"); print '<?xml version="1.0" encoding="UTF-8"?>'; print "<root>\n"; $configuration = Configuration::getMultiple(array( 'PS_LANG_DEFAULT', 'PS_SHIPPING_FREE_PRICE', 'PS_SHIPPING_HANDLING', 'PS_SHIPPING_METHOD', 'PS_SHIPPING_FREE_WEIGHT', 'PS_CARRIER_DEFAULT')); $id_lang = intval($configuration['PS_LANG_DEFAULT']); $id_zone = intval($defaultCountry->id_zone); $link = new Link(); $id_carrier = $configuration['PS_CARRIER_DEFAULT']; $carrier = new Carrier(intval($id_carrier)); $carrierTax = 0; if ($carrier->id_tax) { $tax = new Tax(intval($carrier->id_tax)); if (Validate::isLoadedObject($tax) AND Tax::zoneHasTax(intval($tax->id), intval($id_zone)) AND !Tax::excludeTaxeOption()) $carrierTax = $tax->rate; } $passwd = Tools::getValue('passwd'); $categories = Category::getCategories($id_lang, true, false); $manufacturers = Manufacturer::getManufacturers(false, $id_lang); if ($passwd == $confPasswd) { $products = Product::getProducts($id_lang, 0, 0, 'price', 'ASC', false, true); } else { $products = array(); } $manMap =array(); foreach ($manufacturers as $manufacturer) { $manMap[$manufacturer['id_manufacturer']] = $manufacturer; } $catMap =array(); foreach ($categories as $category) { $catMap[$category['id_category']] = $category; } foreach ($products as $product){ $product['link'] = $link->getProductLink($product['id_product']); $product['price_inc'] = $product['price'] * (1 + $product['tax_rate']/ 100); $product['price_inc'] = number_format(round($product['price_inc'], 2), 2); $cover = Product::getCover($product['id_product']); $product['imageUrl'] = _PS_BASE_URL_.$link->getImageLink($prodObj->link_rewrite, $product['id_product'].'-'.$cover['id_image'], 'large'); $product['manufacturerName'] = $manMap[$product['id_manufacturer']]['name']; print " <item>\n"; foreach ($product as $k => $v) { print_field($k, $v); } $catList = Product::getIndexedCategories($product['id_product']); foreach ($catList as $cat) $cat=$catList[0];{ $catNames = array(); $catId = $cat['id_category']; while ($catId && $catId != 1) { array_unshift($catNames, trim($catMap[$catId]['name'])); $catId = $catMap[$catId]['id_parent']; } print_field('categoryName', implode(' >> ', $catNames)); //$result = mysql_query("SELECT * FROM s_category_product WHERE id_category='{$cat['id_category']}'"); //while($row = mysql_fetch_array($result)) { echo "<category_link>http://www.lapa.lv/category.php?id_category={$cat['id_category']}</category_link>"; //} } print "</item>\n"; } print "</root>\n"; Kur mainīgais nemaz nezināšu!
  2. Laikam cena tiek izvadīta šeit, rinda, kur $product['price'] foreach ($products as $product){ $product['link'] = $link->getProductLink($product['id_product']); $product['price_inc'] = $product['price'] * (1 + $product['tax_rate'] / 100); $product['price_inc'] = number_format(round($product['price_inc'], 2), 2);
  3. Jā, šis kārtībā tagad, zinu ka jāmācās. Vēl tik ar to otru problēmu ar to cenu attēlošanu, lai rāda akcijas cenu nevis veco cenu, pārējās produktu cenas rāda pareizi, bet akcijas cenas klibo, rāda pamata cenu?
  4. Pievienojot $product['price_inc'] = round($product['price_inc'], 2); rindiņai kaut vai piem., šo funkciju: string number_format ( float $number [, int $decimals = 0 ] ) rezultāts $product['price_inc'] = round($product['price_inc'], 2); ( float $number [, int $decimals = 0 ] ) Tad atverot skriptu pārlūkā pārbaudei, rāda: Parse error: syntax error, unexpected T_VARIABLE in /home/lapa/public_html/manalapa.lv/export/test/salidzini.php on line 81 Laikam jau savādāk funkcija jāpievieno, nevis vienkārši copy-paste. Diemžēl esmu šajā lietā liels amatieris, tādēļ laikam pat nemāku pareizi pievienot!
  5. Nesanāk, met errorus, par neatbilstošiem simboliem. Laikam nepareizi kaut ko daru! Vēl problēmiņu pamanīju, precēm rāda tikai default cenas, arī ja ir akcijas cena, rāda tāpat pamatcenu, piem akcijas cena ir 3.50Ls un vecā 7.00Ls, rādās 7.00Ls. Kur es ko palaidu garām?!
  6. Kura funkcija no http://php.net/manua...mber-format.php būtu īstā? Ja nemaldos konkrētā funkcija ievadāma koda šajā daļā: foreach ($products as $product){ $product['link'] = $link->getProductLink($product['id_product']); $product['price_inc'] = $product['price'] * (1 + $product['tax_rate'] / 100); $product['price_inc'] = round($product['price_inc'], 2); $cover = Product::getCover($product['id_product']); $product['imageUrl'] = _PS_BASE_URL_.$link->getImageLink($prodObj->link_rewrite, $product['id_product'].'-'.$cover['id_image'], 'large');
  7. Sveiki, kā lai panāk, lai cena rādītu 1.30 nevis 1.3, problēma ir ar to, ka pazūd tikai nulles, vajadzētu, lai ir ar nulli! Pārējas vis darbojās kā nākas. P.S diskusija veca, bet iespējams kāds var pateikt?!
  8. Sveiki. Internētā atradu php skriptu xml produktu exportam! Skripts šāds: <?php include(dirname(__FILE__).'/../../config/config.inc.php'); require_once(dirname(__FILE__).'/../../init.php'); // Get data $number = (intval(Tools::getValue('n')) ? intval(Tools::getValue('n')) : 10000); $orderByValues = array(0 => 'name', 1 => 'price', 2 => 'date_add', 3 => 'date_upd', 4 => 'position'); $orderWayValues = array(0 => 'ASC', 1 => 'DESC'); $orderBy = Tools::strtolower(Tools::getValue('orderby', $orderByValues[intval(Configuration::get('PS_PRODUCTS_ORDER_BY'))])); $orderWay = Tools::strtoupper(Tools::getValue('orderway', $orderWayValues[intval(Configuration::get('PS_PRODUCTS_ORDER_WAY'))])); if (!in_array($orderBy, $orderByValues)) $orderBy = $orderByValues[0]; if (!in_array($orderWay, $orderWayValues)) $orderWay = $orderWayValues[0]; //$id_category = (intval(Tools::getValue('id_category')) ? intval(Tools::getValue('id_category')) : 1); $currency = new Currency(intval($cookie->id_currency)); $affiliate = (Tools::getValue('ac') ? '?ac='.Tools::getValue('ac') : ''); $categTree = Category::getRootCategory()->recurseLiteCategTree(0); function constructTreeNode($node){ $ret = ';'; $ret .= $node['id'].'|'.$node['name'].';'; if(!empty($node['children'])) { $ret .= ';'; foreach ($node['children'] AS $child) $ret .= constructTreeNode($child); $ret .= ';'; } return $ret; } foreach ($categTree['children'] AS $child) $ulTree .= constructTreeNode($child); $tab_cat=explode(';',$ulTree); foreach ($tab_cat as $id2cat){ $tab_id2cat=explode('|',$id2cat); if (!empty($tab_id2cat)) $tab_cat_final[$tab_id2cat[0]]=$tab_id2cat[1]; } header("Content-Type:text/xml; charset=utf-8"); echo '<?xml version="1.0" encoding="UTF-8"?>'."\n"; ?> <root> <?php foreach ($tab_cat_final as $id_category=>$name_category){ $products = Product::getProducts(intval($cookie->id_lang), 0, ($number > 10000 ? 10000 : $number), $orderBy, $orderWay, $id_category, true); foreach ($products AS $product) { $image = Image::getImages(intval($cookie->id_lang), $product['id_product']); $prix=Product::getPriceStatic($product['id_product']); if ($product['reduction_percent']>0) $prix_promo=$prix*(1-$product['reduction_percent']/100);else $prix_promo=($prix-$product['reduction_price']); echo "<item>\n"; echo "<name><![CDATA[".$product['name']."]]></name>\n"; echo "<link><![CDATA[".htmlspecialchars($link->getproductLink($product['id_product'], $product['link_rewrite'], Tools::getValue('id_category'))).$affiliate."]]></link>\n"; echo "<price>".$prix."</price>\n"; echo "<image>"._PS_BASE_URL_.__PS_BASE_URI__."img/p/".$image[0]['id_product']."-".$image[0]['id_image']."-large.jpg</image>\n"; echo "<category_full><![CDATA[".$name_category."]]></category_full>\n"; echo "<category_link><![CDATA[".htmlspecialchars($link->getcategoryLink($category['id_category'], $category['link_rewrite'], Tools::getValue('id_category'))).$affiliate."]]></category_link>\n"; echo "<marque><![CDATA[".$product['manufacturer_name']."]]></marque>\n"; echo "<reference><![CDATA[".$product['id_product']."]]></reference>\n"; echo "</item>\n"; } } ?> </root> Taču vajadzētu, pielabot vai pievienot trūkstošo, taču nezinu, kas nepieciešams, lai XML būtu šāds: -<root> <item> <name>Akumulators HTC Smart 1450mAh</name> <link>http://www.slapa.lv/product.php?id_product=765</link> <price>6.30</price> <image>http://www.lapa.lv/img/p/765-892-large.jpg</image> <category_full>Telefonu aksesuāri>>Akumulatori>>HTC</category_full> <category_link>http://www.lapa.lv/category.php?id_category=40</category_link> </item> <item> Skripts preces nosaukumu, produkta linku un bildes linku uzrāda kā vajag, tur nav problēmu, cenu arī, bet tikai bez nulles galā, vajadzētu, piem., 3.50, bet rāda 3.5. Kas jāpalabo, jāpievienu skriptā, lai kategorijas nosaukuma vietā būtu pilns kategorijas nosaukums un pilnās kategorijas links kā arī cena būtu ar nulli galā??
×
×
  • Create New...