Eshop – nette
- Turbo
- Člen | 24
Zdravím Vas,
potreboval bych poradit kde mam vubec zacit v nette jsem novacek.Zdali mam
stahnout a naistalovat nette 0.9 nebo nette 2.0 beta, kdyz jsem prochazel web
s nette pred par mesici tak zde bylo plno doplnku pro nette0.9 ty jsou zde
stale, ale v nette 2.0 pravdepodobne nebudou fungovat,atd…A tedka hlavne
k jadru veci nevim vubec, cim zacit jestli Templety, routovanim,present…,
pripojeni k db pres dibi, apod, muzete me nevest nejakym smerem. Kdyby se zde
nasel nekdo kdo by poskytl cast funkcniho adminu tak, aby jsem mohl pochopit co
a jak.V soucasne dobe mam eshop psany v php.Ze stareho eshopu bych pouzil
databazi a to je vse…Vsem predem moc dekuji
Editoval Turbo (21. 11. 2011 16:58)
- Filip Procházka
- Moderator | 4668
Ono je to dost podmíněné stylem tvé práce a uvažováním. Ale rozhodně začni tím, že stáhneš 2.0beta :)
PS: přijď z nás tahat rozumy na nette chat ;)
- Turbo
- Člen | 24
HosipLan napsal(a):
Ono je to dost podmíněné stylem tvé práce a uvažováním. Ale rozhodně začni tím, že stáhneš 2.0beta :)
PS: přijď z nás tahat rozumy na nette chat ;)
Nejde ani tak o rozumi, ale spis mi jde kde mam zacit nette 2.0 je jasne to mam uz nainstalovane a funguje, ale dal nevim kde pokracovat…
- Turbo
- Člen | 24
JuniorJR napsal(a):
Především se seznam s OOP, to je základ. Bez toho IMHO „nic“ neuděláš. Otevřou se ti tak nekonečné možnosti. Jakmile znáš alespoň zákl. principy, nejlépe z programování klasických desktop aplikací, pochopíš lépe i Nette.
OOP mam zaklady ze C# .net, zajimalo by me v cem to mam psat mam PsPad, ale ten mi prijde docela tedka o nicem, ale treba to je tim ze v PHP OOP nemam praxi, jde o to pro ulehcemi prace existuje editor, kde by jsem mel vse poruce myslim tim tridy, fce, atd… jako ve Visual Studiu pri praci v C#.Diky za info..
- Filip Procházka
- Moderator | 4668
Znáš NetBeans? Trošku drhnou, ale funkčně jsou super. Někomu ještě vyhovuje třeba PhpStorm.
- JuniorJR
- Člen | 181
@Turbo: Nejlépe uděláš, prostuduješ-li nejprve
pár zákl. tutoriálů/screencastů
Myslím, že pokud rovnou skočíš do nějakého hotového projektu,
neuděláš dobře, neboť nebudeš vědět proč to či ono je tak či onak ;)
Nezapomeň si také důkladně projít dokumentaci (nejlépe několikrát).
Editoval JuniorJR (22. 11. 2011 14:10)
- Turbo
- Člen | 24
Tutotrialy jsem prolezl, nektere veci mi stale nejsou jasne, ale tedka jsem se zasekl na jedne veci mam v soucasne dobe tri eshopy, mam udelane jako aliasy hostingu pro vsechny eshopy mam jeden admin, pro kazdy eshop mam jinej Fronted jak to udelat pomoci nette udelal jsem si adresarovou strukturu
root
framework
app
AdminModule
presenters
templetes
Fronted
presenters
templetes
eshop1(domena.tld)
eshop2(domena1.tld)
eshop3(domena.tld)
log
models
temp
botstrap.php
config.neon
www
css
eshop1(domena.tld)
eshop2(domena1.tld)
eshop3(domena.tld)
js
index.php
jinak pro tyto eshopy bude stejne jen se budou lisit ve vzhledu, ale vubec nevim kde a pripadne nastavit pro danou domenu(eshop) danej templets? diky za radu…
- JuniorJR
- Člen | 181
Chápu to dobře, že máš všechny 3 eshopy na jednom hostingu a chceš je
tak i spravovat?
Pokud ano, asi bych to řešil pomocí (sub)modulů. Příklad na moduly je
v distribuci.
Kde např.
http://a.eshop.cz
bude v FrontModule\AModulehttp://b.eshop.cz
bude v FrontModule\BModulehttp://c.eshop.cz
bude v FrontModule\CModule
A routy by mohly být takhle nějak:
$router[] = $routerA = new RouteList('Front:A');
$routerA = new Route('//a.eshop.cz/<presenter>/<action>/[<id>]', array(
'presenter' => 'Home',
'action' => 'default',
'id' => NULL,
));
$router[] = $routerB = new RouteList('Front:B');
$routerB = new Route('//b.eshop.cz/<presenter>/<action>/[<id>]', array(
'presenter' => 'Home',
'action' => 'default',
'id' => NULL,
));
$router[] = $routerC = new RouteList('Front:C');
$routerC = new Route('//c.eshop.cz/<presenter>/<action>/[<id>]', array(
'presenter' => 'Home',
'action' => 'default',
'id' => NULL,
));
Možná by to šlo napsat ještě lépe, ale pro ukázku snad stačí.
EDIT: Tu tvoji adresářovou strukturu budeš muset poupravit. Použij sandbox a teprve do něho přidávej své další výtvory :)
Editoval JuniorJR (22. 11. 2011 17:13)
- Turbo
- Člen | 24
zdravim vas, mam asi hodne blbej napad a neslo by to generovat z db celej router?
include 'mysql.class.php';
$sql = new Mysql;
$sql->dbServer='localhost/ jmeno db serveru
$sql->dbUser='root'; // jmeno uživatele
$sql->dbPassword='root'; // uživatelské heslo
$sql->dbName='test_eshop';
$radek=$sql->query_fetch_assoc('SELECT * FROM eshopy WHERE domain="'.$_SERVER['SERVER_NAME'].'"');
$router[] = $routerA = new RouteList('$radek - > neco jako nazev');
$routerA = new Route('//$radek -> a zase neco/<presenter>/<action>/[<id>]', array(
'presenter' => 'Home',
'action' => 'default',
'id' => NULL,
));
// Nové routy pro administraci
$router[] = $adminRouter = new RouteList('admin');
$adminRouter[] = new Route('admin/<action>[/<id>]', 'Admin:default');
takhle nejak me to napadlo, ale treba to je velkej nesmysl zatim jsem to nezkousel, ale je mi jasne ze by jsem musel pouzit dve pripojeni k databazi jeden pro nastaveni routovani a druhe pro samotnou funkci eshop.
- Filip Procházka
- Moderator | 4668
No generovat routy z databáze můžeš. Stačí to udělat „dost pozdě“. Až těsně před použitím v Application. Už jsem na to jednou odpovídal: https://forum.nette.org/…jeni-v-route#… (příště hledat :P)
Nezapomeň výsledný router uložit do cache, ať nemusíš cesty načítat na každý dotaz.
- Turbo
- Člen | 24
HosipLan napsal(a):
No generovat routy z databáze můžeš. Stačí to udělat „dost pozdě“. Až těsně před použitím v Application. Už jsem na to jednou odpovídal: https://forum.nette.org/…jeni-v-route#… (příště hledat :P)
Nezapomeň výsledný router uložit do cache, ať nemusíš cesty načítat na každý dotaz.
moc dekuji to je to jsem potreboval ja jsem vsude hledal MultiRouter…
- Turbo
- Člen | 24
Zdravim vas kde by jsem mohl mit chybu?
Class ‚BasePresenter‘ not found
File: …/eshop/app/FrontModule/presenters/DefaultPresenter.php Line: 8
2:
3: namespace FrontModule;
4:
5: use Nette\Application\BadRequestException,
6: Nette\Diagnostics\Debugger;
7:
8: class DefaultPresenter extends \BasePresenter {
9:
10: /** @var Nette\Database\Table\Selection */
11: private $page;
12: private $menu;
Jeste pridavam, ze BasePresenter je umisten v
/eshop/app/presenter/BasePresenter.php – BasePresenter
/eshop/app/FrontModule/presenters/DefaultPresenter.php – DefaultPresenter
uz nevim kde mam hledat tu chybu…
Editoval Turbo (25. 11. 2011 13:24)
- Turbo
- Člen | 24
A opet jsem v koncich, mam vytvoreno tak to routovani
if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {
$container->router = $router = new RouteList;
$router[] = new Route('index.php', 'Front:Default:default', Route::ONE_WAY);
$router[] = $adminRouter = new RouteList('Admin');
$adminRouter[] = new Route('admin/<presenter>/<action>', 'Default:default');
$router[] = $frontRouter = new RouteList('Front');
$frontRouter[] = new Route('<presenter>/<action>[/<id>]', 'Default:default');
} else {
$container->router = new SimpleRouter('Front:Default:default');
}
a problem je v tom kdyz zadam domena.tld/admin tak mi to prestane routovat a
vyhodi mi to chybu:
No route for HTTP request. a nevidim nikde zadnou chybu
v nicem…
- Turbo
- Člen | 24
Zdravim, chtel jsem si pridat tridu pro generovani hlavicek na web stranky a hlasi me to tu to chybu poradte prosim co s tim mam delat moc dekuji…
Ambiguous class 'HeaderControl' resolution; defined in /data/web/virtuals/11257/virtual/eshop/app/AdminModule/HeaderControl/HeaderControl.php and in /data/web/virtuals/11257/virtual/eshop/app/AdminModule/HeaderControl.php.
- JuniorJR
- Člen | 181
Turbo napsal(a):
Zdravim, chtel jsem si pridat tridu pro generovani hlavicek na web stranky a hlasi me to tu to chybu poradte prosim co s tim mam delat moc dekuji…
Ambiguous class 'HeaderControl' resolution; defined in /data/web/virtuals/11257/virtual/eshop/app/AdminModule/HeaderControl/HeaderControl.php and in /data/web/virtuals/11257/virtual/eshop/app/AdminModule/HeaderControl.php.
Chyba značí, že máš tu třídu definovanou vícekrát.
Jednou v:
/data/web/virtuals/11257/virtual/eshop/app/AdminModule/HeaderControl/HeaderControl.php
a podruhé v:
/data/web/virtuals/11257/virtual/eshop/app/AdminModule/HeaderControl.php
Editoval JuniorJR (26. 11. 2011 17:42)
- Turbo
- Člen | 24
JuniorJR napsal(a):
Turbo napsal(a):
Zdravim, chtel jsem si pridat tridu pro generovani hlavicek na web stranky a hlasi me to tu to chybu poradte prosim co s tim mam delat moc dekuji…
Ambiguous class 'HeaderControl' resolution; defined in /data/web/virtuals/11257/virtual/eshop/app/AdminModule/HeaderControl/HeaderControl.php and in /data/web/virtuals/11257/virtual/eshop/app/AdminModule/HeaderControl.php.
Chyba značí, že máš tu třídu definovanou vícekrát.
Jednou v:
/data/web/virtuals/11257/virtual/eshop/app/AdminModule/HeaderControl/HeaderControl.php
a podruhé v:
/data/web/virtuals/11257/virtual/eshop/app/AdminModule/HeaderControl.php
Super diky toho jsem si nevsiml, ale tedka mi to hlasi ze
Class ‚AdminModule\HeaderControl‘ not found a pritom je
app/AdminModule/HeaderControl.php
- Turbo
- Člen | 24
JuniorJR napsal(a):
@Turbo: Překontroluj si namespace.
Je sice hezke kde mam prekontrolvat namespace
1: <?php
2:
3: namespace AdminModule;
4:
5:
6:
7: class DefaultPresenter extends \BasePresenter
8: {
9: protected function createComponentHeader()
10: {
11: $header = new HeaderControl;
12:
13: $header->setDocType(HeaderControl::HTML_5);
File: …/eshop/app/AdminModule/presenters/DefaultPresenter.php Line: 11
vyreseno bylo to pro nette 0.9 ztazeno z gitu pro nette 2.0
Editoval Turbo (26. 11. 2011 18:49)