WebToDate/Poradny a rozhovory/Tipy a návody: Porovnání verzí

Z WebToDate
Skočit na navigaciSkočit na vyhledávání
Vitas (diskuse | příspěvky)
Vitas (diskuse | příspěvky)
V ramci predlohy pro seznam dotazu presunuto WTD_ADVICE(AID) z pole input/hidden do form/action
 
(Není zobrazena jedna mezilehlá verze od stejného uživatele.)
Řádek 154: Řá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)-->&amp;vlozeno=1" /></nowiki>
  <nowiki><input type="hidden" name="url" id="url" value="questionlist.php?id=<!--WTD_ADVICE(AID)-->&amp;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><input type="hidden" name="id" id="id" value="<!--WTD_ADVICE(AID)-->" /></div></nowiki>
  <nowiki></div></nowiki>
  <nowiki><h2>Váš dotaz</h2></nowiki>
  <nowiki><h2>Váš dotaz</h2></nowiki>
  <nowiki><table></nowiki>
  <nowiki><table></nowiki>
Řádek 216: Řá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)-->&amp;vlozeno=1" /></nowiki>
  <nowiki><input type="hidden" name="url" id="url" value="questionlist.php?id=<!--WTD_ADVICE(AID)-->&amp;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><input type="hidden" name="id" id="id" value="<!--WTD_ADVICE(AID)-->" /></div></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ů:

  1. seznam všech dotazů v poradně, které jsou označeny jako zodpovězené nebo Zveřejněn - nezodpovězen
  2. seznam všech dotazů v poradně, které jsou označeny jako Zveřejněn - nezodpovězen
  3. seznam všech zodpovězených dotazů v poradně
  4. seznam těch dotazů v poradně, které jsou označeny jako zodpovězené a zároveň příznakem "Častý dotaz"
  5. seznam těch dotazů, které jsou označeny jako Nebude zodpovězen
  6. 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ř.:

  1. 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.
  2. 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í.
  3. 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í:

  1. 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.
  2. 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.
  3. 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.
  4. 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.