@@verze 4 @@sql CREATE TABLE `mod_eshop_permanent_cart` (`userid` int(11) NOT NULL, `content` text COLLATE utf8_czech_ci NOT NULL, PRIMARY KEY (`userid`), CONSTRAINT `mod_eshop_permanent_cart_ibfk_2` FOREIGN KEY (`userid`) REFERENCES `mod_users_ucet` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci; @@conf+:eshop_conf.php // *** TRVALÝ KOŠÍK *** $permanent_cart = array( // Má se ukládat i cena? False = cena se po znovupřihlášení a obnovení košíku spočte čerstvá. True = do košíku se uloží i s cenou. "saveWithPrice" => false, // Callback při ukládání košíku do DB. // Spustí se pro každou položku v košíku a dostane na vstupu pole: // - id // - pocet // - detail - buď jako string, anebo array ve tvaru [id parametru] => hodnota parametru // - custom - volitelná další data - viz Mercury metody kosikPridat() a kosikUpdate() // - cena - dej 0 nebo false, nechceš-li cenu ukládat. Je-li saveWithPrice === false, tak vždy bude 0. // - priplatky - je-li [detail] jako array, může zde být array ve tvaru [id parametru] => příplatek za daný parametr // - povolitZmenuPoctu - true/false // - sestava - ID sestavy, pokud daný produkt je součástí sestavy, jinak null // Chceš-li uložit pozměněná data, vrať je. Nechceš-li danou položku vůbec ukládat, vrať false. Jinak se uloží beze změny. "saveToDbCallback" => null, // Callback při načítání z databáze zase do živého košíku. // Obdobné jako saveToDbCallback. Spouští se pro každou položku v načítaném košíku. // Vrátíš-li false, daná položka se přeskočí. "loadFromDbCallback" => null, // Callback zavolaný jednou po načtení z databáze. // Může udělat nějaké finální úpravy nebo změny. // Nedostane žádné parametry a ani nemusí nic vracet, měl by pracovat přímo s Mercury metodami. "afterLoadFromDbCallback" => null, ); @@init PermanentCart::integrate(); @@reflection if (!isset($moduly["eshop"])) return "nelze"; $u = Mercury::make()->conf('permanent_cart'); if ($u) return "ano"; return "ne";