Požíváte redakční systém phpRS? Tak pro vás mám jednoduchou, ale velice efektní úpravu systému, spočívající v možnosti vkládání anket přímo do článků.
Každý, kdo používá phpRS určitě ví, že se dají do článků pomocí tzv. phpRS značek vkládat obrázky uložené v galerii. Díky tomu nám nic nebrání ukázat si jak pomocí těchto značek vkládat ankety přímo do vašich článků. Předpokladem je, že používáte phpRS nejvyšší verze.
Postup:
Nejprve si upravíme administrační soubor anket, tedy aankety.php.
Řádek 159:
".RS_AKT_SA_TITULEK."\n";
?>
nahradíme tímto:
".RS_AKT_SA_ID."\n";
echo "".RS_AKT_SA_TITULEK."\n";
?>
Dále řádek 168:
".$pole_data["titulek"]."\n";
?>
nahradíme tímto:
".$pole_data["ida"]."\n";
echo "".$pole_data["titulek"]."\n";
?>
Pak musíme uprvit jazykový soubor admin_sl_ankety_cz.php, do kterého pouze přidáme tento řádek:
Tímto jsme docílili, že se nám při výpisu anket zobrazí i ID každé ankety. Poté následuje soubor trclanek.php, zde si najdeme řádek 233 a do funkce Dekoduj():
přidáme tyto řádky:
function Dekoduj($text = "")
{
// anketa
if ($text!=""):
$pozice=strpos("x".$text,"<anketa");
if ($pozice>0): // exsituje min. 1 znacky
$pozice--; // prevod na realnou pozici
$rotuj=1; // inic. rotace
while ($rotuj):
$retezec=substr($text,$pozice,60); // vykopirovani
$konec=strpos($retezec,">"); // konec znacky
$konec++; // pricitam 1 kvuli pocitani pozice od 0
$znacka=substr($retezec,0,$konec); // znacka
// zpracovani znacky
$atributy=str_replace("<anketa ","",$znacka); // co,cim,kde
$atributy=str_replace(">","",$atributy);
$atributy=str_replace('"',"",$atributy);
$atributy=trim($atributy);
// sestaveni pole s atributy
$pole_atr=explode(" ",$atributy);
$pocet_atr=count($pole_atr);
// zpracovani pole atributu
$zjistanketa=0;
$zaobrazku='center'; // prednastaveni atributu zarovnani
for ($pom=0;$pom<$pocet_atr;$pom++):
$jmeno="";
list($jmeno,$hodnota)=explode("=",$pole_atr[$pom]);
switch($jmeno):
case 'id': $zjistanketa=mysql_escape_string($hodnota); break;
case 'zarovnani':
switch($hodnota):
case 'nastred': $zaobrazku='center'; break;
case 'vlevo': $zaobrazku='left'; break;
case 'vpravo': $zaobrazku='right'; break;
endswitch;
break;
endswitch;
endfor;
// dotaz na obrazek
$dotazotazka=mysql_query("select otazka from ".$GLOBALS["rspredpona"]."ankety where ida='".$zjistanketa."'",$GLOBALS["dbspojeni"]);
$error=0;
@$ankotazka=mysql_result($dotazotazka,0,"otazka"); // anketni otazka
if ($ankotazka):
$dotazcelkem=mysql_query("select sum(pocitadlo) as celkem from ".$GLOBALS["rspredpona"]."odpovedi where anketa='".$zjistanketa."'",$GLOBALS["dbspojeni"]);
$celkemhlasu=mysql_result($dotazcelkem,0,"celkem"); // celkem hlasu
if ($celkemhlasu==0): $jednoproc=0; else: $jednoproc=100/$celkemhlasu; endif; // zjisteni poctu dilku na jeden hlas
// nacteni prehledu moznych odpovedi
$dotazodp=mysql_query("select ido,odpoved,pocitadlo from ".$GLOBALS["rspredpona"]."odpovedi where anketa='".$zjistanketa."' order by ido",$GLOBALS["dbspojeni"]);
$pocetodp=mysql_num_rows($dotazodp);
$barva_prouzku=1; // barva procentualniho prouzku u odpovedi
$txt_anketa="".$ankotazka."
\n";
$txt_anketa.="\n";
while($akt_pole_data = mysql_fetch_assoc($dotazodp)):
$velikost=ceil($jednoproc*$akt_pole_data["pocitadlo"]);
$txt_anketa.="<a href=\"ankety.php?akce=hlasuj&hlas=".$akt_pole_data["ido"]."&cil=".$GLOBALS['rsconfig']['anketa_cil_str']."&anketa=".$zjistanketa."\">".$akt_pole_data["odpoved"]."
\n";
$txt_anketa.="<img src=\"pictures.php?rvel=".$velikost."&barva=".$barva_prouzku."\" height=\"8\" width=\"".$velikost."\" alt=\"".$akt_pole_data["pocitadlo"]."\" /> (".$akt_pole_data["pocitadlo"]." ".RS_SP_POCET_HLA.")
\n";
$barva_prouzku++;
endwhile;
$txt_anketa.="\n";
$txt_anketa.="".RS_SP_CELKEM_HLA.": ".$celkemhlasu."
\n";
else:
$error=1;
endif;
if ($error==0):
$text=str_replace($znacka,$txt_anketa,$text);
else:
$text=str_replace($znacka,"",$text);
$error=0;
endif;
// test na existenci dalsi znacky
$pozice=strpos($text,"<anketa");
if ($pozice==0): $rotuj=0; endif; // konec kompilace znacek
endwhile;
endif;
endif;
// anketa konec
A nyní stačí do zvoleného článku vložit tuto phpRS značku, kde atribut zarovnání má stejné hodnoty jako značka pro vkládání obrázku, tedy vlevo, nastred, vpravo.
<anketa id="CISLO" zarovnani="ZPUSOB_ZAROVNANI">
Doufám, že Vám tato malá úprava pomůže. Příjemné hlasování.