WebToDate/Poradny a rozhovory/Tipy a návody: Porovnání verzí
Bez shrnutí editace |
V ramci predlohy pro seznam dotazu presunuto WTD_ADVICE(AID) z pole input/hidden do form/action |
||
| (Nejsou zobrazeny 4 mezilehlé verze od 2 dalších uživatelů.) | |||
| Řádek 1: | Řádek 1: | ||
[[Category:WebToDate | [[Category:WebToDate Poradny a rozhovory]] | ||
[[Category:Poradny a rozhovory]] | [[Category:Poradny a rozhovory]] | ||
== Druhy výpisů seznamů dotazů == | == Druhy výpisů seznamů dotazů == | ||
| Řádek 87: | Řádek 87: | ||
<code> | <code> | ||
<nowiki><h3>Nová otázka do rozhovoru "<!--WTD_ADVICE(ANAME)-->"</h3></nowiki> | <nowiki><h3>Nová otázka do rozhovoru "<!--WTD_ADVICE(ANAME)-->"</h3></nowiki> | ||
<nowiki><form name="formular" id="formular" action="/scripts/modules/advice/newquestion.php" method="post"></nowiki> | <nowiki><form name="formular" id="formular" action="/scripts/modules/advice/newquestion.php?id=<!--WTD_ADVICE(AID)-->" method="post"></nowiki> | ||
<nowiki><!-- url, ktere se zobrazi po ulozeni stranky --></nowiki> | <nowiki><!-- url, ktere se zobrazi po ulozeni stranky --></nowiki> | ||
<nowiki><input type="hidden" name="url" id="url" value="firstpage.php?id=<!--WTD_ADVICE(AID)-->" /></nowiki> | <nowiki><input type="hidden" name="url" id="url" value="firstpage.php?id=<!--WTD_ADVICE(AID)-->" /></nowiki> | ||
<nowiki><!-- cislo poradny --></nowiki> | <nowiki><!-- cislo poradny --></nowiki> | ||
<nowiki><input type="hidden" name="name" id="name" value="Dotaz v chatu <!--WTD_ADVICE(ANAME)-->" size="60" /></nowiki> | <nowiki><input type="hidden" name="name" id="name" value="Dotaz v chatu <!--WTD_ADVICE(ANAME)-->" size="60" /></nowiki> | ||
<nowiki></nowiki> | <nowiki></nowiki> | ||
| Řádek 155: | Řádek 154: | ||
<nowiki><!--WTD_ADVICE(ADESCRITPION)--></nowiki> | <nowiki><!--WTD_ADVICE(ADESCRITPION)--></nowiki> | ||
<nowiki><!--WTD_IF(WRITEACCESS,"</nowiki> | <nowiki><!--WTD_IF(WRITEACCESS,"</nowiki> | ||
<nowiki> <form action="/scripts/modules/advice/newquestion.php" method="post"></nowiki> | <nowiki> <form action="/scripts/modules/advice/newquestion.php?id=<!--WTD_ADVICE(AID)-->" method="post"></nowiki> | ||
<nowiki><div></nowiki> | <nowiki><div></nowiki> | ||
<nowiki><input type="hidden" name="url" id="url" value="questionlist.php?id=<!--WTD_ADVICE(AID)-->&vlozeno=1" /></nowiki> | <nowiki><input type="hidden" name="url" id="url" value="questionlist.php?id=<!--WTD_ADVICE(AID)-->&vlozeno=1" /></nowiki> | ||
<nowiki><input type="hidden" name="vlozeno" id="vlozeno" value="1" /></nowiki> | <nowiki><input type="hidden" name="vlozeno" id="vlozeno" value="1" /></nowiki> | ||
<nowiki | <nowiki></div></nowiki> | ||
<nowiki><h2>Váš dotaz</h2></nowiki> | <nowiki><h2>Váš dotaz</h2></nowiki> | ||
<nowiki><table></nowiki> | <nowiki><table></nowiki> | ||
| Řádek 217: | Řádek 216: | ||
<nowiki><!--WTD_ADVICE(ADESCRITPION)--></nowiki> | <nowiki><!--WTD_ADVICE(ADESCRITPION)--></nowiki> | ||
<nowiki><!--WTD_IF(WRITEACCESS,"</nowiki> | <nowiki><!--WTD_IF(WRITEACCESS,"</nowiki> | ||
<nowiki> <form class="clear" action="/scripts/modules/advice/newquestion.php" method="post"></nowiki> | <nowiki> <form class="clear" action="/scripts/modules/advice/newquestion.php?id=<!--WTD_ADVICE(AID)-->" method="post"></nowiki> | ||
<nowiki><div><input type="hidden" name="lid" id="lid" value="<!--WTD_ADVICE(LID)-->" /></nowiki> | <nowiki><div><input type="hidden" name="lid" id="lid" value="<!--WTD_ADVICE(LID)-->" /></nowiki> | ||
<nowiki><input type="hidden" name="url" id="url" value="questionlist.php?id=<!--WTD_ADVICE(AID)-->&vlozeno=1" /></nowiki> | <nowiki><input type="hidden" name="url" id="url" value="questionlist.php?id=<!--WTD_ADVICE(AID)-->&vlozeno=1" /></nowiki> | ||
<nowiki><input type="hidden" name="vlozeno" id="vlozeno" value="1" /></nowiki> | <nowiki><input type="hidden" name="vlozeno" id="vlozeno" value="1" /></nowiki> | ||
<nowiki | <nowiki></div></nowiki> | ||
<nowiki><h2>Váš dotaz</h2></nowiki> | <nowiki><h2>Váš dotaz</h2></nowiki> | ||
<nowiki><table></nowiki> | <nowiki><table></nowiki> | ||
Aktuální verze z 8. 4. 2010, 09:26
Druhy výpisů seznamů dotazů
Pomocí skriptu questionlist.php lze zpřístupnit následující druhy výpisů seznamů dotazů:
- seznam všech dotazů v poradně, které jsou označeny jako zodpovězené nebo Zveřejněn - nezodpovězen
- seznam všech dotazů v poradně, které jsou označeny jako Zveřejněn - nezodpovězen
- seznam všech zodpovězených dotazů v poradně
- seznam těch dotazů v poradně, které jsou označeny jako zodpovězené a zároveň příznakem "Častý dotaz"
- seznam těch dotazů, které jsou označeny jako Nebude zodpovězen
- seznam zodpovězených dotazů z dané kategorie
Nejjednodušší nástroj, jak zpřístupnit první tři druhy výpisů je použít např. v předloze pro úvodní stránku poradny následující kód:
<a href="questionlist.php?id=<!--WTD_ADVICE(AID)-->">Všechny dotazy</a> |
<a href="questionlist.php?id=<!--WTD_ADVICE(AID)-->&aw=answered">Zodpovězené dotazy</a> |
<a href="questionlist.php?id=<!--WTD_ADVICE(AID)-->&aw=published">Dotazy čekající na zodpovězení</a> |
<a href="questionlist.php?id=<!--WTD_ADVICE(AID)-->&frequent=y">Nejčastější dotazy</a> |
<a href="questionlist.php?id=<!--WTD_ADVICE(AID)-->&noreply=y">Nebude zodpovězeno</a> |
<a href="newquestion.php?id=<!--WTD_ADVICE(AID)-->">Nový dotaz</a>
Pro výpis zobrazení obsahu dané kategorie se používá v URL parametr categid, nejjednodušší je použít v předloze výpis seznamu kategorií se stylem
<li><a href="<!--WTD_ADVICE(CATEGORYURL)-->"><!--WTD_ADVICE(CATEGORY)--></a></li>
Tento způsob generuje URL odkazy na výpisy dle kategorií automaticky.
Předlohy pro e-maily
Jednoduchá předloha pro textové e-maily zasílané správci poradny ve chvíli, kdy je vložen nový dotaz z veřejně přístupné části www prezentace vypadá např. takto:
V poradně je nový dotaz.
ID dotazu: <!--WTD_ADVICE(ID)-->
Název dotazu: <!--WTD_ADVICE(NAME)-->
Text dotazu: <!--WTD_ADVICE(QUESTION)-->
Datum vložení dotazu: <!--WTD_ADVICE(DATE_QUESTION)-->
Jednoduchá předloha pro zaslání odpovědi tazateli (opět v textovém e-mailu) vypadá např. takto:
Váš dotaz v naší poradně byl zodpovězen.
ID dotazu: <!--WTD_ADVICE(ID)-->
Název dotazu: <!--WTD_ADVICE(NAME)-->
Text dotazu: <!--WTD_ADVICE(QUESTION)-->
Text odpovědi: <!--WTD_ADVICE(ANSWER)-->
Zodpovězeno dne: <!--WTD_ADVICE(DATE_ANSWER)-->
Příprava rozhovorů s osobností
Jednoduchá implementace
Jednoduchá implementace poradny v režimu rozhovoru s osobností vystačí s nastavením dvou typů stránek v předpisu – seznamu dotazů a stránky pro vkládání nového dotazu.
Jednoduchý styl pro seznam dotazů je např.
Hlavička
<table cellpadding="6" class="rozhovor">
Tělo
<tr><td colspan="2" bgcolor="#efefef"><strong><!--WTD_USER(NICKNAME)--></strong> <!--WTD_ADVICE(ADATE)--> <!--WTD_ADVICE(ATIME)--> </td></tr>
<tr><td>Otázka</td><td><!--WTD_ADVICE(QUESTION)--></td></tr>
<tr><td>Odpověď</td><td><!--WTD_ADVICE(ANSWER)--></td></tr>
Patička
</table>
Stránka s rozhovorem pak vypadá zhruba tak, jak je vidět na následujícím otisku obrazovky.

Ve stránce pro vkládání nových dotazů je pak často žádoucí minimalizovat počet vstupních polí, nejlépe na přezdívku a text otázky. HTML kód v předloze pro vkládání dotazů pak může vypadat např. takto:
<h3>Nová otázka do rozhovoru "<!--WTD_ADVICE(ANAME)-->"</h3>
<form name="formular" id="formular" action="/scripts/modules/advice/newquestion.php?id=<!--WTD_ADVICE(AID)-->" method="post">
<!-- url, ktere se zobrazi po ulozeni stranky -->
<input type="hidden" name="url" id="url" value="firstpage.php?id=<!--WTD_ADVICE(AID)-->" />
<!-- cislo poradny -->
<input type="hidden" name="name" id="name" value="Dotaz v chatu <!--WTD_ADVICE(ANAME)-->" size="60" />
<table class="descr_large">
<tr>
<td align=right>
<label for="nickname">Vaše přezdívka</label>
</td>
<td>
<input type="text" name="nickname" id="nickname" value="<!--WTD_USER(NICKNAME)-->" size="30" />
</td>
</tr>
<tr>
<td align=right>
<label for="question">Otázka</label>
</td>
<td>
<textarea cols="40" rows="12" name="question"><!--WTD_ADVICE(QUESTION)--></textarea>
</td>
</tr>
<tr>
<td align="right" colspan="2">
<input type="submit" name="send" id="send" value="Odeslat" />
</td>
</tr>
</table>
</form>
Pomocí hidden pole se zde vyplňuje název dotazu, uživatel zadává jen svoji přezdívku a text dotazu. Do hidden pole url formuláře je dále vhodné zadat adresu např. staticky vygenerované stránky informující o uložení dotazu, nebo naopak přesměrovat uživatele na stránku se seznamem dotazů.
Rozhovor ve více stavech
Možný požadavek na nasazení modulu v režimu rozhovorů může být složitější, např.:
- Nejprve je rozhovor v režimu připravovaného rozhovoru - uživatelé již mohou klást dotazy, ale ještě je nikdo nezodpovídá; lze přitom v prezentační části zobrazit seznam již položených (a redakcí schválených) dotazů, aby se nepokládaly duplicitní dotazy.
- Ve chvíli, kdy se do redakce dostaví osoba, se kterou se vede rozhovor, je rozhovor v režimu probíhajícího rozhovoru - uživatelé kladou dotazy a člověk, se kterým je chat vede, je zodpovídá. Zobrazuje se seznam dotazů i formulář pro vkládání.
- Po ukončení rozhovoru je možné prohlížet seznam zodpovězených dotazů, ale není již samozřejmě možné vkládat dotazy - zobrazuje se jen seznam dotazů bez formuláře pro vkládání.
To lze realizovat následovně:
- Vytvoří se tři předpisy modulu - předpis pro připravovaný rozhovor, probíhající rozhovor a uzavřený rozhovor
- V průběhu "životnosti" rozhovoru se vybere v různých etapách různý předpis a mění se nastavení Data jsou přístupná pro čtení resp. Vkládat data mohou.

Postup je tedy zhruba následující:
- Založí se poradna pro daný rozhovor, zvolí se předpis pro připravovaný rozhovor a nastaví se volby Data jsou přístupná pro čtení:všem a Vkládat data mohou:všichni. V této etapě uživatelé vkládají dotazy, které bude předmětná osoba zodpovídat, mohou se podívat na dotazy, které již byly vloženy a redakce je dala do stavu Zveřejněn - nezodpovězen.
- Ve chvíli, kdy se předmětná osoba dostaví do redakce, změní se předpis na předpis pro probíhající rozhovor. Uživatelé mohou vkládat nové dotazy, tyto nové dotazy i dotazy již položené v předchozí etapě jsou průběžně zodpovídány.
- Ve chvíli, kdy již není žádoucí, aby uživatelé vkládali nové dotazy, ale již vložené dotazy se ještě zodpovídají, změní se nastavení Vkládat data mohou na Nikdo.
- Ve chvíli, kdy již byly zodpovězeny všechny relevantní dotazy, a rozhovor je ukončen, změní se předpis poradny na předpis pro uzavřený rozhovor.
Tento postup lze realizovat pomocí následujících ukázkových kódů, používá se předloha pro seznam dotazů, která zároveň obsahuje i vstupní formulář pro vkládání dotazů. K těmto kódům je ještě navíc třeba vytvořit standardním způsobem jednu předlohu pro nový dotaz, která je ve všech etapách stejná.
Předloha pro seznam dotazů - připravovaný rozhovor může vypadat následovně:
<h1><!--WTD_ADVICE(ANAME)--></h1>
<div>
<!--WTD_ADVICE(ADESCRITPION)-->
<!--WTD_IF(WRITEACCESS,"
<form action="/scripts/modules/advice/newquestion.php?id=<!--WTD_ADVICE(AID)-->" method="post">
<div>
<input type="hidden" name="url" id="url" value="questionlist.php?id=<!--WTD_ADVICE(AID)-->&vlozeno=1" />
<input type="hidden" name="vlozeno" id="vlozeno" value="1" />
</div>
<h2>Váš dotaz</h2>
<table>
<tbody><tr>
<th><label for="formfield01">Jméno:</label></th>
<td><input type="text" name="nickname" id="formfield01" value="" /></td>
</tr>
<tr>
<th><label for="formfield02">Dotaz:</label></th>
<td><textarea id="formfield02" cols="40" rows="6" name="question"></textarea>
<input type="hidden" name="question_required" id="question_required" value="1" /></td>
</tr>
</tbody></table>
<p><input value="Odeslat" name="send" type="submit" /></p>
</form>
<!--WTD_ADVICE(ITEMSLIST)-->
<!--WTD_ADVICE(NAVIG)-->
")-->
</div>
<div>
<p>Rozhovor ještě neproběhl.</p>
<!--WTD_IF(WRITEACCESS,"<h2>Podmínky pro dotazy</h2>
<dl><dt>Podmínky pro vkládání dotazu</dt>
<dd>Ujistěte se, zda váš dotaz nebyl již položen, duplicitní otázka bude vymazána.</dd>
<dd>Text, který nesplňuje pravidla zveřejňování na tomto serveru bude vymazán.</dd></dl>")-->
</div>
Styl pro seznam dotazů v připravovaném rozhovoru může vypadat následovně:
Hlavička
<h2>Otázky a odpovědi</h2>
<dl>
Tělo
<!--WTD_IF(STATUS_PUBLISHED,"<dt><!--WTD_USER(NICKNAME)-->, <!--WTD_ADVICE(QDATE)-->, <!--WTD_ADVICE(QTIME)--><br /><!--WTD_ADVICE(QUESTION)--></dt><dd> </dd>")-->
Patička
</dl>
Předloha pro seznam dotazů - probíhající rozhovor může vypadat následovně:
<h1><!--WTD_ADVICE(ANAME)--></h1>
<div>
<!--WTD_ADVICE(ADESCRITPION)-->
<!--WTD_IF(WRITEACCESS,"
<form class="clear" action="/scripts/modules/advice/newquestion.php?id=<!--WTD_ADVICE(AID)-->" method="post">
<div><input type="hidden" name="lid" id="lid" value="<!--WTD_ADVICE(LID)-->" />
<input type="hidden" name="url" id="url" value="questionlist.php?id=<!--WTD_ADVICE(AID)-->&vlozeno=1" />
<input type="hidden" name="vlozeno" id="vlozeno" value="1" />
</div>
<h2>Váš dotaz</h2>
<table>
<tbody><tr>
<th><label for="formfield01">Jméno:</label></th>
<td><input type="text" name="nickname" id="formfield01" value="" /></td>
</tr>
<tr>
<th><label for="formfield02">Dotaz:</label></th>
<td><textarea id="formfield02" cols="40" rows="6" name="question"></textarea>
<input type="hidden" name="question_required" id="question_required" value="1" /></td>
</tr>
</tbody></table>
<p><input value="Odeslat" name="send" type="submit" /></p>
</form>
")-->
<!--WTD_ADVICE(ITEMSLIST)-->
<!--WTD_ADVICE(NAVIG)-->
</div>
<div>
<p>Rozhovor právě probíhá.</p>
<!--WTD_IF(WRITEACCESS,"
<h2>Podmínky pro dotazy</h2>
<dl class="terms">
<dt>Podmínky pro vkládání dotazu</dt>
<dd>Text, který nesplňuje pravidla zveřejňování na tomto serveru bude vymazán.</dd>
</dl>")-->
<!--WTD_IF(NOWRITEACCESS,"<p>Již byl položen maximální počet dotazů.</p>")-->
</div>
Styl pro seznam dotazů v probíhajícím rozhovoru může vypadat následovně:
Hlavička
<h2>Otázky a odpovědi</h2>
<dl>
Tělo
<dt><!--WTD_USER(NICKNAME)-->, <!--WTD_ADVICE(QDATE)-->, <!--WTD_ADVICE(QTIME)--><br />
<!--WTD_ADVICE(QUESTION)--></dt>
<dd><!--WTD_IF(STATUS_ANSWERED,"zodpovězeno, <!--WTD_ADVICE(ADATE)-->, <!--WTD_ADVICE(ATIME)--><br /><!--WTD_ADVICE(ANSWER)-->")-->
<!--WTD_IF(STATUS_PUBLISHED,"zatím nezodpovězeno")--></dd>
Patička
</dl>
Předloha pro seznam dotazů - uzavřený rozhovor může vypadat následovně:
<h1><!--WTD_ADVICE(ANAME)--></h1>
<div>
<!--WTD_ADVICE(ADESCRITPION)-->
<!--WTD_ADVICE(ITEMSLIST)-->
<!--WTD_ADVICE(NAVIG)-->
</div>
<div><p>Rozhovor je ukončen.</p></div>
Styl pro seznam dotazů v uzavřeném rozhovoru lze použít stejný jako pro probíhající rozhovor.