Jump to content

Jaker

Uživatel
  • Příspěvků

    674
  • Registrován

  • Aktivní

  • Vítězných dnů

    9

Jaker last won the day on May 16 2017

Jaker had the most liked content!

Reputace

47 Dwaine

About Jaker

  • Moto
    jAk3r
  • Narozeniny 23.10.1994

Kontaktní údaje

  • Web
    https://www.inspire-gaming.cz/
  • Steam
    jak3rs
  1. Čau kluci, mám takový pro náš nový internetový obchod děláme nový systém ale potřeboval bych pomoci s úpravou cronu pro nový systém... dle struktury... product Pro produkty vytvoříme tabulku product. Bude obsahovat následující sloupce: product_id (int) - Id produktu, primární klíč, autoincrement code (varchar 255) - Kód produktu pro obchodníka (např. EAN nebo cokoli jiného) url (varchar 255) - URL adresa produktu (např. zeleny-kvetinac-ella) pro lepší SEO optimalizaci title (varchar 255) - Titulek produktu short_description (varchar 255) - Krátký popisek do HTML meta tagu description (text) - Delší popisek pro detail produktu, může obsahovat HTML formátování price (decimal(10,1)) - Cena produktu old_price (decimal(10,1)) - Stará cena produktu (pokud je zlevněný) rating_sum (int) - Součet hodnocení produktu (celkový počet udělených hvězdiček uživateli) ratings (int) - Počet hodnocení produktu stock (int) - Počet kusů produktu na skladu images_count (int) - Počet obrázků u produktu hidden (tinyint) - Označuje zda je produkt skrytý (1/0), viz dále. Přidejme tabulku category s následujícími sloupci: category_id (int) - Id kategorie, primární klíč, autoincrement url (varchar 255) - URL adresa odkazu title (varchar 255) - Titulek order_no (int) - Určuje pořadí položek hidden (tinyint) - Určuje, zda je položka skrytá (můžeme tak skrýt nějaké systémové kategorie, viz dále) parent_catego­ry_id (int, nullový) - Id rodičovské položky (pod kterou má být položka zařazena) nebo NULL, cizí klíč řidáme tabulku product_category s následujícími sloupci: product_catego­ry_id (int) - Id vazebního řádku, primární klíč, autoincrement product_id (int) - Id produktu, cizí klíč category_id (int) - Id kategorie, do které produkt patří, cizí klíč Zde mám již upravený cron ve kterém mi dělají problémy obrázky. <?php /** * Description of Import * * @author David Skála <skala2524@gmail.com> */ class Import { CONST URL = 'http://navratws:ws13852@WWW.SPOKEY.CZ/i6ws/Default.asmx/GetResult?resultType=X-StoItemBaseComplEl'; private $slozka; private $slozkaDb; /** @var DibiConnection */ private $dibi; public function __construct($dibi) { $this->log('init'); $this->dibi = $dibi; $this->slozka = __DIR__ . '/../images/products/'; $this->slozkaDb = 'images/products/'; /* $cdir = scandir($this->slozka); foreach ($cdir as $value) { if (intval($value) > 112) $this->rrmdir($this->slozka . $value); } exit; */ } private function rrmdir($dir) { if (is_dir($dir)) { $objects = scandir($dir); foreach ($objects as $object) { if ($object != "." && $object != "..") { if (is_dir($dir . "/" . $object)) $this->rrmdir($dir . "/" . $object); else unlink($dir . "/" . $object); } } rmdir($dir); } } /** * * @param string $message */ private function log($message) { echo sprintf('<span style="color: #CCC;">bellugio:</span> %s<br>', $message); } /** * * @return type */ public function getXml() { $this->log('getXml: ' . self::URL); return file_get_contents(self::URL); } public function zpracujXmlKategorie($xml) { $poleLevel1 = [ 'Míčové a společenské sporty' => 2, 'Fitness a posilovna' => 2, 'Vodní sporty' => 2, 'Skating' => 2, 'Bojové sporty' => 2, 'Tenis a badminton' => 2, 'Outdoor' => 3, 'Sport. obuv a nazouváky' => 4, 'Termoprádlo' => 4, 'Funkční oblečení' => 4 ]; foreach ($xml->StoItem as $item) { $tmp1 = explode(' ', $item->SPresentTree->Level1); unset($tmp1[0]); $level1 = trim(implode(' ', $tmp1)); $idLevel0 = isset($poleLevel1[$level1]) ? $poleLevel1[$level1] : 'false'; /* level 1 */ if ($idLevel0) { $data = $this->vratDataProKategorii($idLevel0, $level1); $kategorieId_1 = $this->dibi->query(sprintf('SELECT category_id FROM [category] WHERE [url] = "%s" LIMIT 1', $data['url']))->fetchSingle(); if (!$kategorieId_1) { $this->dibi->query('INSERT INTO [category]', $data); $this->log(sprintf('Vytvořena kategorie úrovně %d s názvem %s', 1, $level1)); $kategorieId_1 = $this->dibi->getInsertId(); } /* level 2 */ $tmp2 = explode(' ', $item->SPresentTree->Level2); unset($tmp2[0]); $level2 = trim(implode(' ', $tmp2)); if ($level2) { $data = $this->vratDataProKategorii($kategorieId_1, $level2); $kategorieId_2 = $this->dibi->query(sprintf('SELECT category_id FROM [category] WHERE [url] = "%s" LIMIT 1', $data['url']))->fetchSingle(); if (!$kategorieId_2) { $this->dibi->query('INSERT INTO [category]', $data); $this->log(sprintf('Vytvořena kategorie úrovně %d s názvem %s', 2, $level2)); $kategorieId_2 = $this->dibi->getInsertId(); } /* level 3 */ $tmp3 = explode(' ', $item->SPresentTree->Level3); unset($tmp3[0]); $level3 = trim(implode(' ', $tmp3)); if ($level3) { $data = $this->vratDataProKategorii($kategorieId_2, $level3); $kategorieId_3 = $this->dibi->query(sprintf('SELECT category_id FROM [category] WHERE [url] = "%s" LIMIT 1', $data['url']))->fetchSingle(); if (!$kategorieId_3) { $this->dibi->query('INSERT INTO [category]', $data); $this->log(sprintf('Vytvořena kategorie úrovně %d s názvem %s', 3, $level3)); } } } } } } private function vratDataProKategorii($parentId, $jmeno) { $orderid = $this->dibi->query("SELECT max(category.order_no) AS order_nos FROM [category]")->fetchSingle() + 1; return [ 'url' => $this->webalize($jmeno), 'title' => $jmeno, 'order_no' => $orderid++, 'hidden' => 0, 'parent_category_id' => $parentId ]; } /** * * @param type $xml */ public function zpracujXmlZbozi($xml) { foreach ($xml->StoItem as $item) { $idKat = $this->dibi->query(sprintf("SELECT product_id FROM [product] WHERE [code] = '%s' LIMIT 1", $item->Code))->fetchSingle(); $nazev = $idKat ? $this->dibi->query(sprintf("SELECT title FROM [product] WHERE [product_id] = %s LIMIT 1", $idKat))->fetchSingle() : false; if (!$nazev) { $this->log($item->Id . ': ' . $item->Name); if ($item->SisName == 'Výprodej') $action = 1; if ($item->SisName == 'Novinka') $news = 1; $dataCatalog = [ 'product_id' => intval($item->Id), 'code' => (string) ($item->Code), 'url' => $this->webalize($item->Name), 'title' => (string) $item->Name, 'shortname' => (string) $item->Name, 'short_description' => (string) $item->Note, 'description' => (string) $item->Note, 'price' => intval($item->PriceEU), 'old_price' => intval($item->PriceDea), 'rating_sum' => 0, 'ratings' => 0, 'stock' => 1, 'images_count' => 0, 'hidden' => 0 ]; $this->dibi->query('INSERT INTO [product]', $dataCatalog); $lastId = $this->dibi->getInsertId(); /* katerogie */ foreach (['Level1', 'Level2', 'Level3'] AS $_level) { $tmp = explode(' ', $item->SPresentTree->{$_level}); unset($tmp[0]); $level = implode(' ', $tmp); $kategorieId = $this->dibi->query(sprintf('SELECT category_id FROM [category] WHERE [title] = "%s" LIMIT 1', $level))->fetchSingle(); if ($kategorieId) { $dataKat = [ 'product_id' => $lastId, 'category_id' => $kategorieId ]; $this->dibi->query('INSERT INTO [product_category]', $dataKat); } } $idFotky = $this->dibi->getInsertId(); /* obrazky */ if (!file_exists($this->slozka)) mkdir($this->slozka, 0777, true); copy($item->ImgUrl, $this->slozka . $this->intval($item->Id) . '.jpg'); $this->dibi->query('UPDATE [product] SET images_count= ' . $idFotky . ' WHERE product_id = ' . $lastId); } else { $lastId = $this->dibi->query(sprintf("SELECT product_id FROM [product] WHERE [product_id] = %s LIMIT 1", $idKat))->fetchSingle(); foreach (['Level1', 'Level2', 'Level3'] AS $_level) { $tmp = explode(' ', $item->SPresentTree->{$_level}); unset($tmp[0]); $level = implode(' ', $tmp); if ($level) { $kategorieId = $this->dibi->query(sprintf('SELECT category_id FROM [category] WHERE [title] = "%s" LIMIT 1', $level))->fetchSingle(); if ($kategorieId) { $bindCat = $this->dibi->query(sprintf("SELECT product_id FROM [product_category] WHERE [product_id] = %s AND [category_id] = %s LIMIT 1", $lastId, $kategorieId))->fetchSingle(); if (!$bindCat) { $dataKat = [ 'product_id ' => $lastId, 'category_id' => $kategorieId ]; $this->dibi->query('INSERT INTO [product_category]', $dataKat); } } } } } } } private function webalize($string) { $url = preg_replace('~[^\\pL0-9_]+~u', '-', $url); $url = trim($url, "-"); $url = iconv("utf-8", "us-ascii//TRANSLIT", $url); $url = strtolower($url); $url = preg_replace('~[^-a-z0-9_]+~', '', $url); return $url; } } Ale mám problém s ukládáním obrázku... Mám složku images/product ve které se obrázky ukládají tak ze IdProduktu_kolikatyObrazekToJe.jpg To znamená mám obrázek s ID 1 a u nej mám 3 obrázky a ve složce mám 1_0.jpg,1_1.jpg,1_2.jpg a v Db product ve sloupci images_count se mi vytvoří argument kolik těch obrázku to dané ID ma v tomto případě 3 a pokud nějaký smažu odstraní se ze složky a v Db se aktualizuje na počet 2 Mohl by mi někdo poradit nebo pomoci abych dospěl k funkčnosti cronu? Díky všem
  2. Lidi kdo by chtěl Hru: STAR WARS Battlefron Season Pass je FREE!!! https://www.origin.com/irl/en-us/store/star-wars/star-wars-battlefront/expansion/star-wars-battlefront-season-pass?searchString=Battlefr Nemáte zač
  3. pomoc Linux - RouteConnectorPlugin

    A díval si se na google? Jelikož něco jsem tam našel ani ne za pár sec... ->
  4. hledám Plugin Mastera

    Cože 250€/h? to je trošičku přehnané...
  5. Tam samozřejmě máme také nabídku. Tak zde by se taky někdo mohl najít
  6. Inspire-Gaming tu je již nějakou řadu let, pár projektů již máme za sebou. Co se týče TS3 není tam 11 lidí ale něco okolo 50+ a také nově budeme připravovat službu discord abychom šli s dobou ale to až na to najdeme člověka který se o to bude starat. Ano děláme jelikož se vždy snažíme najít někoho kdo si daný projekt povede a bude se mu věnovat. Pokud se nějaký takový najde jsme pro každou věc. A ano sub-projektů máme nachystaných více a tak označuji herní tituly popřípadě nějaké systémy. P.S Upraven popis...STÁLE HLEDÁME!!!
  7. ukázka OutLAST ZDARMA

    Chyba byla způsobena obrovským návalem lidí na jejich server Už to zase šlape...
  8. ostatní HK Hnutí #1

    Taky mi přijde že jsou na drogách Protože myslel sem že to je něco vážného a to co tu řeší je naprostá blbost... LOL
  9. info HK je oficiálne zrušený

    Cože? To tu řešíte pičovi** jo? To jako fakt?
  10. gamemode Delete

    Taktéž mi to přijde že na tom servery nic moc není Ale to je asi tak s celým sa:mp scénou. Pochybuji že někdo dovede udělat něco převratného :D
  11. info HK je oficiálne zrušený

    A můžeš mi říci v čem?
  12. info HK je oficiálne zrušený

    Lidi nechci být za debila ale můžete mi říct co ti HK jsou zač a co tak hrozného udělali?
  13. Jako chápu tě, ale zase si říkám že se musí dát domluvit i jinak Přijde mi že 35e/h je nějak hrozně moc. Ale zase bez takového člověka jsme odepsaní...
  14. Já vím že ten projekt bude mít úspěch. Však ale to je ono když by si na sub-projektu měl 3k lidí kteří si budou vždy něco kupovat tak jak tomu u metinu2 bývá tak pak chápu že tě platily ale nedokážu si představit že projekt byl úplně na začátku kde neměli zisk z ničeho a dávaly by ti tolik peněz...
×