Powrót

Funkcja służąca do sprawdzania poprawności adresu e-mail.

Gdzie można zobaczyć przykład takiego FAQ?
Właśnie go oglądasz.
Jak wygląda kod?
class buildFAQ{
  var $d;
  var $length;
  function buildFAQ($file){
    $f= fopen($file, "r");
    $this->d = fread($f, filesize($file));
    fclose($f);
  }
  function buildList($fid){
    $q = explode("{q:}", $this->d);
    $out = "<dl class=\"faqdl\">";
    $i = 0;
    foreach ($q as $val){
      if (strlen($val)>3){//skip BOM w pliku UTF
        $i++;
        $ans = explode("{a:}", $val);
        $out.="<dt class=\"faqdt\"> <a href=\"#{$fid}_{$i}\" onclick=\"javascript: show_hide('{$fid}_{$i}'); return false;\">".trim($ans[0])."</a></dt>";  
        $out.="<dd class=\"faqdd\" id=\"{$fid}_{$i}\">".trim($ans[1])."</dd>";
      }
    }
    $this->length=$i;
    $out .= "</dl>";
    return $out;
  }
  function buildOutput($fid, $type="FAQ"){
    $output = "<script type=\"text/javascript\">
      function show_hide(id){
        var o = document.getElementById(id);
        var s = o.style.display;
        if (s != 'none'){
          o.style.display = 'none';
        }else{
          o.style.display = 'block';
        }
      }
      function hide_all(count, fid){
        for(var i=1; i<=count; i++){
          document.getElementById(fid+'_'+i).style.display = 'none';
        }
      }
    </script>
    ";
    switch ($type){
    default:
    case "FAQ":
      $output .= $this->buildList($fid);
      break;
    }
    $output .= "
    <script type=\"text/javascript\">
      hide_all({$this->length}, '$fid')
    </script>
    ";
    return $output;
  }
}
Jak wywołać skrypt na stronie?
include_once("php_function.faq.class.php");//załącz plik klasy
$faq = new buildFAQ("php_function.faq.txt");//zbuduj obiekt $faq w oparciu o zawartość pliku txt
echo $faq -> buildOutput("faq");//zbuduj FAQ o identyfikatorze "faq"
Do czego potrzebny jest identyfikator?
Identyfikator służy do odróżniania poszczególnyc FAQ jeśli jest ich więcej niż jedno na stronie. W takim przypadku każde FAQ powinno mieć unikalny identyfikator.
Jak wygląda struktura danych w pliku?
{q:}Pytanie
{a:}Odpowiedź
Czy można samemu modyfikować wygląd menu?
Oczywiście. Za pomocą CSS można zmienić wygląd FAQ, które jest zbudowane za pomocą listy definicji (<dl>)
Gdzie mogę pobrać skrypt?
Skrypt można pobrać tutaj