Jump to content

Search the Community

Showing results for tags 'cron'.

  • Search By Tags

    Oddělujte čárkami
  • Search By Author

Content Type


Fórum

  • Obecné
    • Všeobecné
    • Všechno možné
  • Programování
    • Poradna
    • Návody
    • Tvorba
    • Hledám programátora
  • Herní oblast
    • Poradna
    • Jak na to?
    • Herní kontext
    • Herní zážitky
    • Komunita
  • Grafika
    • Poradna
    • Návody
    • Tvorba
  • Ostatní
    • Hardware a software
    • Hledám/nabízím
    • Archiv
    • 3D Tisk

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Web


Facebook


Jabber


Skype


Steam


Twitter


Github


Pastebin

Found 2 results

  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 <[email protected]> */ class Import { CONST URL = 'http://navratws:[email protected]/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. Ahoj, mám takový problém. Hledal jsem všude na googlu, ale asi jsem slepý. A proto se ptám zde. Neví někdo, jak bych mohl udělat Cron příkaz, že se každý den v 00:00 promaže soubor, který je v adresáři? Děkuji za odpověď
×
×
  • Create New...