wilbury Posted October 17, 2014 Share Posted October 17, 2014 (edited) A Presta alapból letölthetővé teszi mindenki számára a termékhez feltöltött csatolmányokat. Azt könnyedén megcsináltam, hogy csak bejelentkezés után lehessenek letölthetők ezek. A megrendelő viszont azt szeretné, hogy bizonyos doksik letölthetőek legyenek login nélkül, mások pedig csak login után. Találkoztatok-e ilyen modullal, ami megoldja ezt? Értem én, hogy csak bele kell tennem egy bool mezőt a DB_prefix."_attachment" táblába, kiegészíteni az AttachmentCore osztályt, hogy olvassa (és írja) is be, majd az adminon valahogy ezt beállíthatóvá tenni, de főleg ez utóbbi olyan macerás... Edited October 18, 2014 by wilbury (see edit history) Link to comment Share on other sites More sharing options...
pattila01 Posted October 17, 2014 Share Posted October 17, 2014 Én nem ismerek erre modult, de egyébként nem vészes a terved sem. Annyira nem macerás admin/terméklap/valamelyikfülre írni, azt controllerbe kötni, majd ha kell kiolvasni a boolt. Én szinte teljesen ugyanezt csináltam meg egy számlázóprogrammal való összekötéskor (az adott termék szinkronizálva van-e vagy sem, illetve ezt pipával szabályozni is lehetett). Esetleg egy másik megoldás ami egyszerűbb (csak tematikai szinten): keress egy mezőt adminban terméklapon amit nem használnak, ilyen lehet például az ean13, vagy bármelyik másik (olyan, amibe van kötve a letöltőfelület tpl-ébe). Ha azt akarják, hogy az adott termékhez kötött csatolmány letölthető lehessen akkor ebbe a mezőbe írják bele, hogy: "letoltheto". Te pedig tpl szinten lehívod az ean13 változót, majd if-el megvizsgálod, hogy az értéke egyenlő-e a "letoltheto"-vel. Ha igen akkor mehet a download, ha nem akkor ennyi. Hirtelen ez jutott eszembe, de nyilván csak tematikai szinten... ezt nyilván bárhogy máshogy is lehet alkalmazni. Szerintem ez egyszerűbb, mint új dolgokat kötögetni meg db-be írni. Link to comment Share on other sites More sharing options...
wilbury Posted October 17, 2014 Author Share Posted October 17, 2014 értem, amit írsz. Mivel nem voltam eléggé egyértelmű, így - azt hiszem - félreértetted. Igazából nem termékszinten dől el, hogy egy csatolmány letölthető-e, így a termék ean13-ja (amennyibe nem használnák) nem jó erre. Csatolmány-szinten dől el. Konkrétabban: terméknek lehet gépkönyve (csak a beavatottaknak) is, és használati utasítása (publikus) is. Link to comment Share on other sites More sharing options...
pattila01 Posted October 17, 2014 Share Posted October 17, 2014 Éééértem, és igen: akkor nagyon félreértettem. Megmondom őszintén, ez fel sem merült bennem. Úgy gondoltam, hogy termékszinten kell a dolog. Bocsánat! A letöltőfelület tpl-ében le lehet kérdezni a csatolmány id-jét, vagy nevét? Azt if-be tenni ott, ahol egyébként a login-t is vizsgálod? Link to comment Share on other sites More sharing options...
wilbury Posted October 17, 2014 Author Share Posted October 17, 2014 Le lehet kérdezni az id-t, igen (egyébként a product.tpl-ről beszélünk). Sőt meg tudom oldani könnyedén, hogy ez a bool info is átmenjen a tpl-be 1. Attachment osztály kiegészítése a bool-lal, 2. ProductControllerbe nem kell semmi (a db-ből minden mezőt felolvas, így az új is bekerül) Így akkor kliens oldalon kombinálva a $login és $downloadable (munkanév) változókat, megoldható a dolog villámgyorsan Amitől (kis túlzással) félek, az inkább az admin felület, hogy ott hogyan teszem bele ezt a boolt. Az AdminAttachmentsController.php kell hozzá, aztán ott valami kavarással. Ahogy így gyorsan belenéztem a kódba, hogy elmagyarázzam, már nem is tűnik olyan nehéznek Link to comment Share on other sites More sharing options...
wilbury Posted October 17, 2014 Author Share Posted October 17, 2014 Tudtam, meg fog gyűlni a bajom az adminnal... Nem egészen értem, hogyan működik a checkbox. A renderForm függvényben létrehoztam egy új checkboxot, de nem értem bizonyos paraméterei mi célt szolgálnak? Kell neki kötelezően egy values. OK, elfogadom. Azon belül kell egy query. De miért? Hogy jön ide egy query? Azt sem értem, melyik 'id' mit akar jelenteni, hogy kell értéket adni, stb. Itt egy rossz példa (én csináltam ) 'values' => array( 'query' => array( array( 'id' => 'needlogin', 'name' => '', 'val' => 1 ) ), 'id' => 'id', 'name' => 'needlogin'), Link to comment Share on other sites More sharing options...
wilbury Posted October 17, 2014 Author Share Posted October 17, 2014 És persze ez a bravúros magyarázat sem segít: http://doc.prestashop.com/display/PS15/HelperForm#HelperForm-Checkbox Link to comment Share on other sites More sharing options...
pattila01 Posted October 17, 2014 Share Posted October 17, 2014 (edited) én nem foglalkoztam vele, sima html-eles checkboxot tettem be annak az értékét pedig direktbe lőttem fel, nem a sablonnal amit használ. Nem túl OOP, de ez van. Holnap megnézem jobban, most eléggé rohanok. Edited October 17, 2014 by pattila01 (see edit history) Link to comment Share on other sites More sharing options...
wilbury Posted October 17, 2014 Author Share Posted October 17, 2014 De az AdminControllerekben ilyen HelperFormos dolog van... Link to comment Share on other sites More sharing options...
Diakro Posted October 18, 2014 Share Posted October 18, 2014 A query egy tömb, amit meg is oldottál csak az id vagy name paramétereket értelmezted hibásan. Azok a legördülő select mezőkhöz kellenek illetve akkor ha több checkboxot szeretnél felsorolni. Talán helyesen így nézne ki (azért csak talán, mert nincs időm tesztelni): 'values' => array( 'query' => array( array( 'id' => 'needlogin_no', 'name' => 'Igen', 'val' => 0 ), array( 'id' => 'needlogin_yes', 'name' => 'Nem', 'val' => 1 ) ), 'id' => 'id', 'name' => 'name' ), De a te esetedben elegendő lesz csak egy igen-nem kapcsoló is ha jól értem. Próbálhatod így (1.6.x): array( 'type' => 'switch', 'label' => 'Csak bejelentkezett felhasználónak', 'name' => 'needlogin', 'desc' => $this->l('Bejelentkezés nélkül is letölthető vagy nem.'), 'class' => 't', 'is_bool' => true, 'values' => array( array( 'id' => 'needlogin_on', 'value' => 1, 'label' => $this->l('Yes')), array( 'id' => 'needlogin_off', 'value' => 0, 'label' => $this->l('No')), ), ), Kicsit kevertem az angolt és a magyart 1 Link to comment Share on other sites More sharing options...
wilbury Posted October 18, 2014 Author Share Posted October 18, 2014 És hogy kapja meg az értéket, amit a db-ben tárolok? Link to comment Share on other sites More sharing options...
wilbury Posted October 18, 2014 Author Share Posted October 18, 2014 A listában ott van faszán a needlogin: http://kepfeltoltes.hu/view/141018/attach1_www.kepfeltoltes.hu_.jpg De a szerkesztőben, ahova felvittem a checkboxot, nincs: http://kepfeltoltes.hu/view/141018/attach2_www.kepfeltoltes.hu_.jpg Link to comment Share on other sites More sharing options...
wilbury Posted October 18, 2014 Author Share Posted October 18, 2014 (edited) 2db radiogombbal legalább betölti amegfeleéő állapotokat. Egy checkbox-szal nem igazán műxik. De jó így. Már csak a mentés hiányzik. hamarosan update-elem ezt a posztot, remélem.. Rádiógomb mentve. Köszi mindent. Edited October 18, 2014 by wilbury (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now