× Aktuálně z oboru

SHIELD Experience Upgrade 7 – méně hledání a více zábavy [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]
Celá zprávička [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]

Ankety k článkům v phpRS

[ http://programujte.com/profil/5-tomas-vinduska/ ]Google [ ?rel=author ]       [ http://programujte.com/profil/118-zdenek-lehocky/ ]Google [ ?rel=author ]       2. 11. 2005       12 568×

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 [ http://www.phprs.cz ] 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í.


Článek stažen z webu Programujte.com [ http://programujte.com/clanek/1970010196-ankety-k-clankum-v-phprs/ ].