Avatar billede dotcom1 Nybegynder
02. november 2004 - 21:58 Der er 7 kommentarer og
1 løsning

Implementere tagster_lib i php-script

Hej.

Jeg vil gerne bruge tagster_lib-funktionen som her på Eksperten, der gør at url og e-mailadresser bliver lavet om til klikbare links. Tagster findes her: http://www.ljweb.com/usefulscripts/
Jeg er dog i tvivl om hvordan jeg skal implementere tagster i mit kommentar-script. Kan nogen hjælpe.

Mit kommentar-script:

<?PHP

/*  ULTRAKORT BRUGERVEJLEDNING:

        TABLE DUMP:

  DROP TABLE IF EXISTS `comments_danish`;
  CREATE TABLE `comments_danish` (
  `commentID` int(11) NOT NULL auto_increment,
  `comment` text,
  `URL` text,
  `email` varchar(100) default NULL,
  `name` varchar(40) default NULL,
  `postNo` varchar(100) NOT NULL default '',
  `theDate` datetime default NULL,
  PRIMARY KEY  (`commentID`)
) TYPE=MyISAM;
 
  */

    //KONFIGURERBARE VARIABLER
    /* Der bliver sendt en email til denne adresse hver gang der
        bliver skrevet en ny kommetar */
  $GLOBALS['email'] = "webmaster@domain.dk";
  /* Dette er den titel man ser øverst i kommentarvinduet */
    $GLOBALS['title'] = "Comments:";           
    /* Den absolutte sti til den mappe på webserveren kommentarscriptet ligger i
      For eksempel http://www.domain.dk/comments/ */       
    $GLOBALS['root'] = "http://www.domain.dk/comments/";
    /* Addressen på databasen f.eks domain.dk */
    $GLOBALS['database_adress'] = "";
    /* Disse variabler skulle give sig selv */
    $GLOBALS['database_navn'] = "";
    $GLOBALS['database_bruger'] = "";
    $GLOBALS['database_password'] = "******";
   
  // FUNKTIONER
  function writeCommentHeader()  {
  echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
  echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"DTD/xhtml1-transitional.dtd\">\n";
  echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"da\">\n";
  echo "<head>\n";
  echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />";
  echo "    <link rel=\"stylesheet\" type=text/css href=\"comments.css\"/>\n";
  echo "    <title>\n";
  echo "      Add and view comments\n";
  echo "    </title>\n";
  echo "    <base target=\"_blank\" />\n";
  echo "  </head>\n";
  echo "  <body>\n\n";   
}

    function sendCommentMail($from, $body) {
        $subject = "Ny kommentar fra " . $from;
        mail($GLOBALS['email'], $subject, $body, "From: webmaster@studenterforum.dk\r\n");
    }
 
  function insertComment($postNo) {
    if (isset($_POST['theComment']) && isset($_POST['theName']) && isset($postNo)) {
      if ($_POST['theComment'] != "" && $_POST['theName'] != "" && is_numeric($postNo)) {
       
        $aComment = htmlspecialchars(mysql_escape_string($_POST['theComment']));
        $aName = htmlspecialchars(mysql_escape_string($_POST['theName'])); 
        $aURL = htmlspecialchars(mysql_escape_string($_POST['theURL']));
        $anEmail = htmlspecialchars(mysql_escape_string($_POST['theEmail']));             
       
                sendCommentMail($_POST['theName'], $_POST['theComment']);
        $query = ("INSERT INTO comments_danish (comment, URL, email, name, postNo, theDate) VALUES ('$aComment', '$aURL', '$anEmail', '$aName', '" . $postNo . "', NOW())");
        //executeSQL lukker selv linket til databasen
        executeSQL($query);
      }
    }
  }
 
 
  function getComments($postNo)  {
    $comments = executeSQL("SELECT name, email, comment, URL, DATE_FORMAT(theDate, '%e/%m %Y @ %H:%i') AS thisDate FROM comments_danish WHERE postNo = '" . $postNo . "' ORDER BY theDate");
    //hvis der ikke er nogen kommentarer kører løkken ikke
    while ($data = mysql_fetch_array($comments))  {
        $comment = stripslashes($data['comment']);
        $comment = nl2br($comment);
      echo "<div class=\"box\">\n";
      echo "<p class=\"date\">" . stripslashes($data['thisDate']) . "</p>\n";
      echo "<p>" . $comment . "</p>";
      echo "<span class=\"small\">Posted by</span><span class=\"titel\"><b>" . stripslashes($data['name']) . "</b></span>\n";
      if ($data['email'] != "") {
        echo "  &nbsp;| <a class=\"plain\" title='Email' href=\"mailto:" . $data['email'] . "\">&nbsp;@&nbsp;</a>\n";
      }
      if ($data['URL'] != "") {
     
        echo " | <a class=\"plain\" title='Website' href=\"" . $data['URL'] . "\">&nbsp;www&nbsp;</a>\n";
      }
      echo "</p></div>\n\n";
    }
  }
 
  function getNumOfComments($itemNo) {

  $numOfComments = executeSQL("SELECT COUNT(postNo) AS numOfCom FROM comments_danish WHERE postNo = '$itemNo'");
  $tag = "Comments";
  $data = mysql_fetch_array($numOfComments);
    if ($data['numOfCom'] == 1) {
      $tag = "Comment";
    }
  echo "<a class=\"plain\" title=\"Add or view comments\" href=\"#\"onclick=\"Camillog_comment=window.open('" . $GLOBALS['root'] . "comments_danish.php?postNo=" . $itemNo . "','commentWindow','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=500,height=510'); return false;\">" . $tag . " (" . $data['numOfCom'] . ")</a>";

  }   
 
  function executeSQL($strSQL, $close="true")  {
   
    //åbner forbindelsen 
    $link = mysql_connect($GLOBALS['database_adress'], $GLOBALS['database_bruger'], $GLOBALS['database_password']);
    if (!$link) {
      //hvis forbindelsen fejler får brugeren en fejlmeddelelse og funktionen går ikke videre
      echo "<p>" . mysql_error() . "</p>";
    }
    //ellers vælges databasen
    else  {
      if(!mysql_select_db($GLOBALS['database_navn'], $link)) {
        //hvis der er fejl sker der ikke mere, blot lukkes databasen med mysql_close()
        echo "<p>" . mysql_error() . "</p>";
      }
      //ellers udføres en query
      else  {
        $result = mysql_query($strSQL);
       
        if (!$result) {
          //evt. fejl smides efter brugeren
          echo "<p>" . mysql_error() . "</p>";
        }
      }
          if ($close == "true") {
          if (!mysql_close()) {
            echo "<p>" . mysql_error() . "</p>";
          }
        }
      return $result;
    }
  }//slut på executeSQL
?>

At include tagster er ikke svært, men hvor skriver jeg tagster_format()?

Mvh.
Avatar billede olebole Juniormester
02. november 2004 - 23:21 #1
<ole>

F.eks:
    echo " | <a class=\"plain\" title='Website' href=\"" . $data['URL'] . "\">".tagster_format($data['URL'])."</a>\n";


/mvh
</bole>
Avatar billede olebole Juniormester
02. november 2004 - 23:22 #2
... det kommer helt anpå, hvad du vil bruge det til - og hvordan  :)
Avatar billede exp Juniormester
03. november 2004 - 10:58 #3
og så skal du huske:

include('sti/til/tagster_lib.php');

i toppen af siden...
Avatar billede dotcom1 Nybegynder
03. november 2004 - 11:29 #4
Ole>> Det er i kommentar-scriptets textarea, at jeg gerne vil bruge tagster.

Den anden del af scriptet består af et popup-vindue, hvori man kan skrive sine kommentarer:

<?PHP
  //napper postNo med det samme så det altid er til at få fat i
  if (isset($_GET['postNo']))  {
    $postNo = $_GET['postNo'];
  } else {
    $postNo = $_POST['postNo'];
  }
  include("commentFunctions_danish.inc.php");
 
  //writes a header
  writeCommentHeader();
?>
<link href="/comments/comments.css" rel="stylesheet" type="text/css">
<body onload="if(document.formnavn)document.formnavn.theName.focus()">
  <h2>
    <?PHP echo $GLOBALS['title']; ?>
  </h2>

<?PHP
  //så man ikke straffes for hårdt for at glemme at udfylde alle felter
  if (isset($_POST['send']))  {
      if ($_POST['theComment'] == "" || $_POST['theName'] == "") {
        echo "<div class\"box\"><p class=\"error\">Please enter at least your name and a comment - otherwise what's the point pushing the button...</p></div>";
      } else  {
    insertComment($postNo);
    }
  }

  //vis kommentarerne for posten med postNo
  getComments($postNo);
?>
 
  <form name="formnavn" action="<?PHP echo $_SERVER['PHP_SELF']; ?>" method="post" target="_top" style="display:inline; margin:0px;">
    <b>
      Name:<span class="stjerne">*</span><br />
      <input name="theName" type="text" style="border:1px solid #999;" size="30" />
      <br />
      Email:<br />
      <input name="theEmail" type="text" style="border:1px solid #999;" size="30" />
      <br />
      Website: <br />
      <input name="theURL" type="text" style="border:1px solid #999;" size="30" />
      <br />
    Comment:</b><span class="stjerne">*</span><br />
      <textarea name="theComment" style="border:1px solid #999;" rows="10" cols="45"></textarea>
      <br />
      <input type="hidden" name="postNo" value="<?PHP echo $postNo ?>" />
      <input type="submit" style="font-size: 12px; width:90px; border: 1px solid #000000; background-color: #e9e9e9;cursor:pointer;" name="send" value=" Post comment" />
      &nbsp;
      <input type="reset" style="font-size: 12px; width:50px; border: 1px solid #000000; background-color: #e9e9e9;cursor:pointer;" value=" Clear " />
  </form><br />
  <br>
    <table width="300" border="0" cellpadding="0" style=" font-family:Arial, Helvetica, sans-serif; font-size:9px;">
      <tr>
        <td>*=Required field.</td>
      </tr>
    </table>
    <br>
    <table width="300" border="0" cellpadding="0">
      <tr>
        <td style="text-align:center;"><input name="button" type="button" onClick="window.close()" value="Close window" class="submit_knap"></td>
      </tr>
    </table>
</body>
</html>

Tagster skal vel bruges i den første del af scriptet, men hvor? Dit eksempel er dér hvor man kan angive sit website, så tagster-format() skal vel indsættes et sted i denne blok - eller?

  echo "<a class=\"plain\" title=\"Add or view comments\" href=\"#\"onclick=\"Camillog_comment=window.open('" . $GLOBALS['root'] . "comments_danish.php?postNo=" . $itemNo . "','commentWindow','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=500,height=510'); return false;\">" . $tag . " (" . $data['numOfCom'] . ")</a>";

Mvh.
Avatar billede dotcom1 Nybegynder
03. november 2004 - 11:44 #5
Du kan forresten se kommentar-scriptet i brug f.eks. her...
http://www.studenterforum.dk/opgaver/opgaver.php
Avatar billede dotcom1 Nybegynder
03. november 2004 - 19:02 #6
Ingen, der har et bud?
Avatar billede dotcom1 Nybegynder
04. november 2004 - 23:00 #7
Forhøjer points.
Avatar billede dotcom1 Nybegynder
05. november 2004 - 16:19 #8
Lukker og slukker :(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester