Zpětný link = odkaz „Zpět na předchozí stránku“

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

Ahoj,
začínám s Nette a rád bych na svých stránkách udělal „zpětný link“. Co tím myslím – v šabloně stránky (nazvěme ji „1“) bych uvedl odkaz „Zpět“, který by odkazoval na stránku, ze které jsme na tuto aktuální stránku přišli (nazvěme ji „0“). Přičemž 0 by mohla být jakákoliv jiná stránka webu.
Toto lze řešit klasickým předáním „backlinku“.

Pokud ale stránka „1“ má být zpětným odkazem u další stránky (řekněme „2“), pak při návratu z „2“ do „1“ ztratíme informaci o tom, kam se vracet z „1“.

Zkoušel jsem tu něco takového hledat, ale nepodařilo se.

Chci se tedy zeptat, je něco takového implementováno v Nette?
Případně, nemáte nějaké Best Practise, jak s tímto pracovat?

Napadlo mne řešení pomocí dočasné „cache“ zpětných linků = prostě rozšířit StoreRequest (pracuje s expirací) a RestoreRequest o souvstažné pole zpětnýcj linků. Pokud by nějaký zpětný link vyexpiroval, vracela by se defaultní stránka daného presenteru.

Díky za jakékoliv návrhy, zkušenosti, dotazy.

Ondřej Brejla
Člen | 746
+
0
-

Možná javascript:history.go(-1)?

Honza Kuchař
Člen | 1662
+
0
-

@Ondřej Brejla: Řešil bych to stejně. Nebo možná odkaz na referrer. Ale nedělal bych v tom žádné složitosti.

raia
Člen | 25
+
0
-

To moc nepomůže, když přihlédneme k SEO a zpětným odkazům v rámci webu, ne?

Ondřej Brejla
Člen | 746
+
0
-

Myslíš že bude „Mega sexy SEO a cool“ pokud jeden odkaz bude pokaždé odkazovat jinam podle toho, odkud přišel user?

raia
Člen | 25
+
0
-

Nejde o megasexy a cool věc. Jde spíš o to, jestli to bude „funkční“, aneb jestli by to "SEO " daných stránek zvedlo. Pokaždé to totiž bude odkazovat na stránku v rámci daného webu, ne mimo.

Ondřej Brejla
Člen | 746
+
0
-

:-) Dělej jak myslíš.

Panda
Člen | 569
+
0
-

Myslím, že Ondra chtěl naznačit, že odkaz, který bude pokaždé odkazovat jinam podle toho, odkud přišel uživatel (uživatel je i bot vyhledávače, jen se mu třeba nemusí líbit sessions, cookies a další parametry v adrese), Ti moc v SEO nepomůže. Nemluvě o textu „Zpět“…

Pokud bych něco takového musel implementovat já, tak bych si asi sestavoval prosté pole adres a v něm se navigoval. Jen pozor na podmínky, za jakých odkaz do pole přidávat – určitě nechceš mít v navigaci „odeslaný formulář“, AJAXové požadavky a tak.

Ondřej Brejla
Člen | 746
+
0
-

Tím jsem chtěl říct, že vynalézat a implementovat podobné fičury za účelem zvednutí SEO je naprostý nesmysl. V případě opodstatněné nutnosti této funkcionality bych bez výčitků implementoval řešení pomocí javascriptu.

Ondřej Mirtes
Člen | 1536
+
0
-

Já bych nic takového neimplementoval a nechal uživatele mačkat tlačítka zpět/vpřed, které má ve vlastním prohlížeči.

Přijde mi, že vývojáři chtějí stále více přejímat a vynalézat kolo u věcí, které jsou řešeny na úrovni aplikace/zařízení, ve kterém je web prohlížen. Což dokonale provést nejde a ani nemá smysl to dělat.

ic
Člen | 430
+
0
-

raia napsal(a):

Nejde o megasexy a cool věc. Jde spíš o to, jestli to bude „funkční“, aneb jestli by to "SEO " daných stránek zvedlo. Pokaždé to totiž bude odkazovat na stránku v rámci daného webu, ne mimo.

Pokud jde o to aby odkaz zpět tuto funkci prováděl jen v rámci daného webu, to se dá přece lehce ošetřit podmínkou i v tom javascriptu u history.go(-1) .
Případně vygenerovat na serveru odkaz podle referreru a taky ho podmínit tím jestli referrer byl z vlastního webu.
Jestli druhý způsob bude mít vliv na pozici ve vyhledávači nevím, ale pokud ano budeš nahoře při hledání slova ‚zpět‘ XD

srigi
Nette Blogger | 558
+
0
-

Ondřej Mirtes napsal(a):

Já bych nic takového neimplementoval a nechal uživatele mačkat tlačítka zpět/vpřed, které má ve vlastním prohlížeči.

Přijde mi, že vývojáři chtějí stále více přejímat a vynalézat kolo u věcí, které jsou řešeny na úrovni aplikace/zařízení, ve kterém je web prohlížen. Což dokonale provést nejde a ani nemá smysl to dělat.

K tomuto sa musim pripojit. David alebo niekto vyznamny z cz raz tweetol, ze useri su sice uplne lamy ale jednu vec pri browsovani internetom pochopili dokonale – tlacitko „Zpet“.

Ped
Člen | 64
+
0
-

Ja tam davam natvrdo nejakou url pro lidi bez javascriptu (a robotum?) a lidem s JS to prepisu na history.go(-1).

<p id="back">
	<a href="{link ...nekam kde to dava nejvetsi smysl..}">"Back" to "somewhere"</a>
	<script type="text/javascript">
		document.getElementById("back").innerHTML =
			'<a href="javascript:window.history.go(-1);">Back<\/a>';
	</script>
</p>
norbe
Backer | 405
+
0
-

Tohle mi přijde taky jako naprostý nesmysl, spíš bych vynaložil síly na užitečnější věci jako je např. drobečková navigace, díky které se uživatel snadno zorientuje ve struktuře webu.

toka
Člen | 253
+
0
-

To ano, ale pokud se dostane třeba uživatel na detail produktu z vyhledávacího formuláře, tak by tlačítko „Zpět“ mělo vracet do výsledků vyhledávání. Pokud se na detail dostane klikáním ve stromu produktů, tak „Zpět“ by ho mělo vracet o úroveň výše.

Ač se mi to nikdy moc nelíbilo, řešit tuto situaci pomocí JS, a vždy jsem si nějakou informaci, odkud požadavek přišel, ukládal, tak nyní jsem pro, to řešit přes JS: javascript:history.go(-1); – je to nejjednodušší.

Drobečková navigace je super, můžu doporučit Navigation od Honzy Marka, ale i tak, je potřeba nějak řešit situace, kdy je možné přijít na stránku více způsoby. Viz uvedené vyhledávání.

Pokud se vám něco z mého tvrzení nelíbí, nekamenujte mne, ale spíše mne zajímá vaše řešení. Rozhodně více řešení, než argument „to je nesmysl“.

raia
Člen | 25
+
0
-

No, trochu jsem se do toho zamotal a SEO jsem vytáhl jak úplnej ňoumič – to je až ta poslední věc. To, co to zmínil toka je asi nejblíž tomu, na co jsem se chtěl zeptat, jen nevěděl, jak to vyjádřit. Takže se všem omlouvám za vytvoření diskuze nad „zbytečným tématem“.

Spíš jsem měl vytvořit dotaz na vámi používané koncepty provázání více formulářů.

Presenter v Nette společně s flash zprávami a formulářovým komponentem umí moc hezky zpracovávat jeden formulář.

Představme si ale, že těch formulářů máme víc a je třeba je provázat. Zkusím napsat příklad z praxe (zrovna co řeším):

  1. Mám formulář, kterým zadávám Album (createNewAlbum). Součástí tohoto formuláře je i zvolení Autora (select). Pokud tento select neobsahuje požadovaného Autora, je k dispozici odkaz (formulářový submit) na formulář díky němuž se může zadat Autor.
  2. Při přechodu na zadání Autora je tedy nutné uložit rozpracované Album (createNewAlbum), předám flash zprávu o uložení, a předám „zpětný odkaz“ , ne backlink, ale odkaz na stránku fillEditedAlbum s ID předvytvořeného záznamu Alba.
  3. Jsem tedy na „stránce“ (nechci používat slovo presenter, jelikož ten může být pro oba formuláře stejný, jen se jedná o jinou akci) createNewAuthor. Zpětný odkaz ukazuje, ne na createNewAlbum, ale na fillEditedAlbum.

Předpokládám, že správný koncept by pro splnění tohoto mohl být:

  • odeslání createNewAlbum
  • zpracování Albumu
  • redirect/forward(?) na fillEditedAlbum (s příznakem pro následné přesměrování na vytvoření nového Autora)
  • redirect(?) na createNewAuthor, a nakonec
  • zobrazení flash zprávy o tom, že bylo Album předuloženo.

Toto by mělo umožnit vrácení pomocí javascript:history.go(-1); na fillEditedAlbum , ok?

(backlink by byl taktéž na fillEditedAlbum, tak aby po vyplnění autora bylo možné stránku znovu přesměrovat na editaci Alba, ok? )


Pokud by na stránce vytvoření Autora bylo zase něco podobného jak na Albumu – např. „vytvoř nové datum narození“ = createNewBirthdayDatum, zpracovávalo by se předání z Autora obdobně, jak bylo uvedeno výše.

Nicméně, pokud bych se chtěl vracet z třetí úrovně na první, návrat z třetí na druhou nebude mít backlink první, ale třetí (tzn javascript:history.go(-1); mne vrací na vytvoření/editaci „nového datumu narození“ namísto editaci Alba (což je a není správně)).
Je tedy třeba se po zpracování data narození vrátit forwardem/redirectem na editAlbum a od tama přejít znovu na editaci Autora?

Stejně tak editace Autora si musí pamatovat, že „zpět“ vás má vrátit na editaciAlbumu, ne Data narození.


A jak to udělat tak, aby se na jednotlivé formuláře s editací mohlo přistoupit přímo z jakékoliv stránky a na ni se po dokončení editace (více úrovní editací) mohli vrátit?


Doufám, že jsem ten můj dotaz popsal už nějak smysluplněji.

Díky za jakékoliv ohlasy.

PS: Jedu na PHP 5.3 / Nette 9.3

Editoval raia (18. 5. 2010 9:24)