Eshop – nette

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Turbo
Člen | 24
+
0
-

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)

nanuqcz
Člen | 822
+
0
-

Turbo napsal(a):

Kdyby se zde nasel nekdo kdo by poskytl cast funkcniho adminu

Ahoj, podívej se na NanoCMS, pro začátek je to dobrý příklad ;-)

Filip Procházka
Moderator | 4668
+
0
-

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
+
0
-

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…

Filip Procházka
Moderator | 4668
+
0
-

Co takhle pokračovat přečtením nové, voňavé dokumentace?

JuniorJR
Člen | 181
+
0
-

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.

Editoval JuniorJR (21. 11. 2011 19:58)

Turbo
Člen | 24
+
0
-

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
+
0
-

Znáš NetBeans? Trošku drhnou, ale funkčně jsou super. Někomu ještě vyhovuje třeba PhpStorm.

Patrik Votoček
Člen | 2221
+
0
-

Případně na Windows stojí za to PhpED

Turbo
Člen | 24
+
0
-

Tak nette 2.0 prozkouman NanoCMS a stejne nevim cim zacit, jestli templets, presenter, modules, config,botstrap,… jak si mam dane tridy pojmenovavt…

JuniorJR
Člen | 181
+
0
-

@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
+
0
-

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
+
0
-

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\AModule
  • http://b.eshop.cz bude v FrontModule\BModule
  • http://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
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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)

22
Člen | 1478
+
0
-

smazat cache nebo toto: BasePresenter je umisten v /eshop/app/presenter/BasePresenter.php není evidentně pravda

22
Člen | 1478
+
0
-

anebo ti tam chybí s v presenters

Turbo
Člen | 24
+
0
-

22 napsal(a):

anebo ti tam chybí s v presenters

prave ze s v adresari prebejvalo :D

Turbo
Člen | 24
+
0
-

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…

22
Člen | 1478
+
0
-

přklad máš v distribuci examples/ModuleUsage

Turbo
Člen | 24
+
0
-

22 napsal(a):

přklad máš v distribuci examples/ModuleUsage

uz vim mel jsem tam preklep …

Turbo
Člen | 24
+
0
-

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
+
0
-

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

ambiguous

Editoval JuniorJR (26. 11. 2011 17:42)

Turbo
Člen | 24
+
0
-

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

ambiguous

Super diky toho jsem si nevsiml, ale tedka mi to hlasi ze
Class ‚AdminModule\HeaderControl‘ not found a pritom je app/AdminModule/HeaderControl.php

JuniorJR
Člen | 181
+
0
-

@Turbo: Překontroluj si namespace.

Turbo
Člen | 24
+
0
-

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)

bojovyletoun
Člen | 667
+
0
-

new \HeaderControl; .. Prostuduj si namespace