Autor Zpráva
jansfabik
Profil
zdravím,
jak by měly vypadat správně logicky strukturované komentáře?

Náhled:


Zatím mám jenom toto:
- každý komentář bude v <li id="comment12345"> ... </li> uvnitř <ol>
- text komentáře bude v tazích <p></p>, rozdělený na jednotlivé odstavce

Potřebuji vědět:
1. do jakého tagu dát číslo příspěvku
2. do jakého tagu dát informace o autorovi
3. do jakého tagu dát datum
4. do jakého tagu dát ty dolní odkazy a hodnocení
5. jak co nejlépe vyřešit hodnocení (chci, aby se to posílalo AJAXem, ale aby se to v případě vypnutého prohlížeče poslalo přes POST - aby na to roboti a vyhledávače neklikali a neindexovali to)

Děkuji za pomoc.
Miloš
Profil
Osobně bych to zapsal následovně:

<div class="prispevek" id="comment12345">
   <h2>
      <span class="cislo>#1</span>
      <span class="autor>Jan-Sebastian Fabík</span>
      <span class="os_a_ip">ip 89-123-123-12 karneval.cz</span>
      <span class="datum">15. 10. 2008</span>
   </h2>
   <p>lorem ipsum…</p>
   <p>Suspendisse potenti…</p>
   <p class="pata_prispevku>
      <a href="#" class="reagovat">reagovat</a>
      <a href="#" class="nahlasit">nahlásit nevhodný příspěvek</a>
      <a href="#" class="hodnoceni">hodnocení</a>
   </p>
</div>


V případě, že trváš na seznamu (<ol>), stojí za zvážení, jestli číslovat příspěvky uvnitř (#1), když už budou číslované tím seznamem.
Taky v tomto případě bude potřeba nahradit <h2> něčím jiným, nejspíš <p class="hlava_prispevku">.

V případě, že netrváš na seznamu, připadá mi členění do divů srozumitelné.
<h2> je v tomto případě výstřel od boku – záleží na hierarchii nadpisů na dané stránce, tzn. že to může být klidně <h3> nebo <h4>…


Doplňuji:
považuješ-li číslo příspěvku (#1) a autora za důležité, možná by bylo sémanticky správnější nahradit neutrální spany v tomto případě sémantičtějšími značkami:
<strong class="cislo"> a <strong class="autor">.
Str4wberry
Profil
Osobně komentáře dávám navíc do <dl>, tedy:
<dl>
  <dt>Jméno
  <dd><p>Text.
</dl>

1. Asi odkaz, který povede na kotvu.
2. Třeba do odstavce.
3. Na příklad <time>. Zatím tedy spíše <span>.
4. Dal bych je taktéž do odstavce.
5. Dát tam dvě tlačítka, která odešlou formulář, a ty JavaScriptem nahradíte obrázky.
Miloš
Profil
Pravda, číslo příspěvku a autor jsou (mohou být) vlastně odkazy, takže pak <a href="#" class="cislo"> a <a href="#" class="autor"> dává smysl ještě víc než <strong>y.
jansfabik
Profil
dal jsem dohromady toto, připadá mi to logičtější:
<h3>Komentáře</h3>
<form method="post" action="?" onsubmit="return sendRequest('comments');" name="comments">
<ol id="comments">
    <li id="comment-123">
        <h4><a href="#comment-123" title="trvalý odkaz">#1</a></h4>
        <address>
            <strong>
                <a href="jan-sebastian-fabik">Jan-Sebastian Fabík</a>
            </strong>
            <img src="img/windows.png" alt="Windows Vista" />
            <img src="img/opera.png" alt="Opera 9.60" />
            <span>ip 89-123-123-12 karneval.cz</span>
            <em>15. 2. 2008</em>
        </address>
        <div class="content">
            <p>První odstavec</p>
            <p>Druhý odstavec</p>
        </div>
        <div class="meta">
            <a href="?quote=123">reagovat</a>
            <a href="?report=123">nahlásit nevhodný příspěvek</a>
            <div id="comment-rating-123">
                hodnocení: <em>+5</em>
                <input type="image" src="bad.png" name="comment[123][bad]" />
                <input type="image" src="good.png" name="comment[123][good]" />
            </div>
        </div>
    </li>
</ol>
</form>


co si o tom myslíte?
Chamurappi
Profil
Reaguji na jansfabika:
Má nějaký smysl zobrazování prohlížeče a OS pisatele? Nebo jen ukazuješ, že to umíš zjistit? Když k tomu ještě přidáš celou IP či hostname, máš zaručeno, že na svém webu můj komentář nikdy neuvidíš.

<em>15. 2. 2008</em>
Proč ne <span>?

hodnocení: <em>+5</em>
Proč ne <span>?

<adress>
Proč jen jedno D?

onsubmit="return sendRequest('comments');" name="comments"
Kdybys vhodně uzpůsobil volanou funkci, nepotřeboval bys předávání jména formuláře.
Dranel
Profil
jansfabik
Tak tak, jak říká Ch. Tím více informací na tý ztránce je, tím méně to přečtu. Dle mě bohatě stačí číslo, jméno a datum nahoře, reakci, nahlášení a hodnocení dole.
jansfabik
Profil
Chamurappi
Má nějaký smysl zobrazování prohlížeče a OS pisatele? Nebo jen ukazuješ, že to umíš zjistit? Když k tomu ještě přidáš celou IP či hostname, máš zaručeno, že na svém webu můj komentář nikdy neuvidíš.
ten OS/prohlížeč si uživatel bude moci vybrat, jestli to chce zveřejnit - mě zveřejnění os a prohlížeče vůbec nevadí, na nazory.5w.cz jsem to viděl, tak mě napadlo to tam taky dát

zveřejním z IP adresy jen 89.123.***.***
- kvůli primitivnímu zastrašení případných spamerů
- kvůli primitivnímu rozpoznání, zda uživatel nepoužívá více jmen (párkrát jsem se s tím už setkal)

„<em>15. 2. 2008</em>“
Proč ne <span>?
protože mi to připadá jako důležitý údaj, který by měl být při vypnutém CSS zvýrazněn, a ten zápis mi přijde přehlednější než dlouhé <span class="datum">

„hodnocení: <em>+5</em>“
Proč ne <span>?
jako u data přidání

„<adress>“
Proč jen jedno D?
pardon ;-)

„onsubmit="return sendRequest('comments');" name="comments"“
Kdybys vhodně uzpůsobil volanou funkci, nepotřeboval bys předávání jména formuláře.
ta funkce bude uzpůsobená tomu, aby zvládla odeslat i jiné formuláře, takže se musí vždy odeslat i jméno, aby funkce poznala, který formulář se má odeslat
Str4wberry
Profil
Rozhodně bych doplnil alt k <input type=image>.
Chamurappi
Profil
Reaguji na jansfabika:
na nazory.5w.cz jsem to viděl, tak mě napadlo to tam taky dát
Super. Já se ale ptal, jestli to má nějaký smysl.

protože mi to připadá jako důležitý údaj, který by měl být při vypnutém CSS zvýrazněn
Vzhled při výchozím stylopisu prohlížeče není podstatný. Ale také bych asi použil <em>. Nebo spíš <b> nebo <i>.
Nezapomeň k datumu doplnit také čas.

takže se musí vždy odeslat i jméno, aby funkce poznala, který formulář se má odeslat
Můžeš přeci zavolat sendRequest(this) a v argumentu mít místo jména formuláře rovnou příslušný objekt, ne?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0