Autor Zpráva
Rodgers23
Profil
Mám dotaz. Na webové stránce se mi zobrazují články z databáze, které se mi stránkují na další stránky. Pod každým článkem mají uživatelé možnost přidat komentář. A teď...v profilu uživatele se zobrazují odkazy na ty jeho komentáře (které napsal) ke článkům. Jenže jak mám udělat odkaz na ten článek, který se např. nachází na druhé stránce? Jde mi o to, že články se budou neustále přidávat do databáze a tím pádem se budou i posouvat ve stránkovací třídě, takže pod tím odkazem ho už nenajdu protože již bude např. na stránce 3.
Př:
Vložil jste komentář <b>{comment}</b> ke článku <a href="clanky/#{ID}"><b>{name}</b></a>
Pokud se článek s tímto ID nachází v controllers "clanky", není problém ho najít, ale co když už se mi nachází na druhé stránce? To bych zase musel mít odkaz:
<a href="clanky/2/#{ID}"><b>{name}</b></a>
Alphard
Profil
Stránkování se většinou týká jen výpisu článků. Odkaz by měl vést na jeden konkrétní článek, který si zachovává svoji url (a to i kvůli vyhledávačům, záložkám atd.).
A to teď nechávám stranou, že se při stránkování doporučuje počítat stránky od konce, právě proto, aby návštěvníci z vyhledávačů našli obsah, který hledali.
Rodgers23
Profil
JJ, a něco jak má Facebook, který komentářema odkazuje na statusy, které se při této akci vyscrollují? Statusy se tam přece taky neukládají pod jednotlivou url.
Alphard
Profil
V principu má identifikátor vše, co se jako entita ukládá do databáze (a na co lze následně vázat další obsah). Pokud nevytvoříte rozhraní pro samostatné zobrazení entity, nemůžete se na ni později rozumně odkázat. To je ale vaše rozhodnotí.

Pokud trváte na odkazu clanky/2/#{ID}, číslujte to od konce, tím se jednotlivá místa zafixují (ale nesmíte nic smazat, maximálně skrýt s tím, že se na dané stránce zobrazí méně obsahu).

PS: facebook obsah zobrazuje dost náhodně na základě různých heuristik, tam bych se pro běžný web neinspiroval.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0