Ankündigung

Einklappen
Keine Ankündigung bisher.

Kommentar script in PHP

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Kommentar script in PHP

    Hallo,
    Ich suche ein Kommentar script für einen blog in php.
    Es sollten angaben für webside, mail und name gegeben sein.
    Wenn möglich ohne datenbank, hab schon im forum gesucht aber alles was ich finden konnte war nicht so mein fall.
    Es sind doch bestimmt ein paar fertig scripte in umlauf

  • #2
    Was soll das Skript machen? Konkretisiere deine Vorstellung.

    Kommentar


    • #3
      Hier findest du, wie man es machen kann.
      MfG, Andy

      Kommentar


      • #4
        Zitat von PTC Beitrag anzeigen
        Was soll das Skript machen? Konkretisiere deine Vorstellung.
        Möglichst nahe an die Kommentar funkion von wordpress heranreichen.

        Kommentar


        • #5
          Kommentarscript

          PHP-Code:
          <?
          /*
           * messagebox class
           * 
           * Author: xxx
           * Date: 09.11.2008
           * 
           * inputform
           * list last 5 messages
           * optional list all messages
           * append input to xml with id
           * remove message
           * read xml 
           */
          class messagebox extends modClass{
              protected $xmlFile = "xml/messages.xml";
              function messagebox($mode=null){
                  $this->domDoc =& new DOMIT_Document();$this->domDoc->loadXML($this->xmlFile);
                  $expansionExceptions = array('br', 'hr', "input");$this->domDoc->expandEmptyElementTags(true, $expansionExceptions);
                  $this->intID = $this->domDoc->documentElement->getAttribute("id");
                  $this->saveMessage();
                  if($mode == "") $this->getLastMessages(5);
                  $domExample =& $this->domDoc->documentElement->getElementsByAttribute("mbtype","example", true);$domExample->parentNode->removeChild($domExample);
                  $this->domResult = $this->domDoc->documentElement->firstChild;
                  $this->domResult->removeAttribute("mbtype");
              }
              private function saveMessage(){
                  //save new message
                  $domItems =& $this->domDoc->documentElement->getElementsByTagName("input");$domAreas =& $this->domDoc->documentElement->getElementsByTagName("textarea");
                  $arrPostValues = array_merge($this->getPostValues($domItems),$this->getPostValues($domAreas));
                  $domExample =& $this->domDoc->documentElement->getElementsByAttribute("mbtype","example", true);
                  $domList =& $this->domDoc->documentElement->getElementsByAttribute("mbtype","list", true);
                  if(isset($_POST["senden"]) && $_POST["title"] != ""){
                      $domMessage = $domExample->cloneNode(true);
                      $domChildNode =& $domList->firstChild;
                      $domChildNode =& $domChildNode->nextSibling;
                      $domList->insertBefore($domMessage, $domChildNode->nextSibling);
                      $domMessage->setAttribute("mbtype", "message");
                      $this->domDoc->documentElement->setAttribute("id", ($this->intID = $this->intID+1));$domMessage->setAttribute("id", $this->intID);
                      $domValues = $domMessage->getElementsByTagName("value");$intValues = $domValues->getLength();
                      for($i=0;$i<$intValues;$i++){
                          $domItem = $domValues->item($i);
                          if(($strValue = $arrPostValues[$domItem->getAttribute("name")]) != null) $domItem->parentNode->replaceChild($this->domDoc->createTextNode($strValue), $domItem);
                      }
                      $this->domDoc->saveXML($this->xmlFile, true);
                  }
              }
              private function getPostValues($domList){
                  $arrResult = array();
                  if(($intList = $domList->getLength()) > 0) for($i=0;$i<$intList;$i++){
                      $domItem = $domList->item($i); $arrResult[$domItem->getAttribute("name")] = $_POST[$domItem->getAttribute("name")];
                      if($domItem->getAttribute("name")=="date")$arrResult[$domItem->getAttribute("name")] = date("d.m.Y - H:i");
                  }return $arrResult;
              }
              private function removeMessage($intID){
                  $domItem = $domDoc->getElementsByAttribute("id", $intID, true);$domItem->parentNode->removeChild($domItem);
                  $this->domDoc->saveXML($this->xmlFile);
              }
          }
          class modClass{
              protected $domDoc;
              protected $domResult;
              protected function setNode($domRequest){
                  //Fill domNode with function generated Data
                  $domRequest->parentNode->replaceChild($this->domResult->cloneNode(true), $domRequest);
              }
              protected function getLastMessages($intMessageLimit){
                  $domMessages = $this->domDoc->documentElement->getElementsByAttribute("mbtype", "message");
                  if(($intMessages=$domMessages->getLength()) > $intMessageLimit)for($i=0;$i<$intMessages;$i++)if($i>=$intMessageLimit){
                      $domItem = $domMessages->item($i);$domItem->parentNode->removeChild($domItem);
                  }
              }
          }
          ?>
          Die dazugehörige XML Datei:
          Code:
          <?xml version="1.0" encoding="UTF-8"?>
          <html id="1">
          	<div id="shoutbox"  mbtype="list">
          		<div id="shoutbox_head	">SHOUTBOX</div>
          		<div class="shoutbox_block">
          			<form method="post">
          				<input type="hidden" name="date" />
          				<input type="text" name="title" />
          				<br />
          				<textarea name="text"></textarea>
          				<br />
          				<input type="submit" name="senden" />
          			</form>
          		</div>
          	</div>
          	<div class="shoutbox_block" mbtype="example">
          		<p class="name"><value name="title" /></p>
          		<p class="date"><value name="date" /></p>
          		<p class="text"><value name="text" /></p>
          	</div>
          </html>
          Als Erweiterung benötigt man hier den DOMIT XML Parser .

          Der Script arbeitet komplett ohne Datenbank ist aber sicher nicht optimal, da er für das von mir geschriebene System erstellt wurde und eine CSS benötigt.

          Viel Spaß damit - Leon

          Kommentar


          • #6
            @leonv: Deine Artd einen Quelltext zu strukturieren ist ja auch schrecklich ...

            Kommentar


            • #7
              Quelltext Übersicht

              Der Script war eigentlich nicht zur Veröffentlichung gedacht, weshalb er einen etwas komprimierten Aufbau und keine Kommentare hat.

              Kommentar


              • #8
                hallo leon

                ich suche auch genau nach solch einem script

                ich weiß allerdings nicht, was ich mit dem von dir besagten DOMIT XML Parser anstellen soll.

                wenn ich deinen php code so eingebe, bekomme ich folgende fehlermeldung:


                Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /srv/www/vhosts/sh-gilde.de/httpdocs/ken/beta/bs/kommentartest/test.php on line 16


                bitte um hilfe

                Kommentar


                • #9
                  Schau mal ob du in Zeile 16 das } hast oder in der Zeile 15 ; vergessen hast

                  Kommentar

                  Lädt...
                  X