close× Call Us +49 (1805) 01 29 59

PHPFusion DE NSS
Thread Author: Layzee
Thread ID: 1520
Thread Info
Es gibt 8 Beiträge zu diesem Thema, und es wurde 2833 mal angesehen.
Wer ist hier? 1 Gäste
 Thema drucken
[Gelöst] fsc_userguestbook BBCodes
Layzee
Hallo,

Ich nutze auf unserer Webseite das fsc_usergästebuch (V7), bei dem ja jeder User ein eigenes Gästebuch im Profil bekommt (auf anderen Webseiten heisst das Pinnwand o.ä.).
Die Infusion funktioniert auch soweit bestens, allerdings würde ich gerne zulassen, dass User dort auch Bilder einfügen/verlinken können, damit es dem Begriff "Pinnwand" auch ein Stück näher kommt. Normalerweise sollte dies mit BBCodes doch möglich sein?

Angezeigt werden derzeit nur "Smilies", "Fettschrift", "Unterstrichen", "URL" und "Schriftfarbe". Ich nehme mal an, dass sich die BBCodes für das Usergästebuch an denen für die Shoutbox orientieren, da dort auch nur genannte BBCodes erlaubt sind.

Da die BBCodes ja im Forum (wir nutzen das fusionboard4) auch angezeigt werden, also auch das für das Verlinken von Bildern, sollte das doch im Usergästebuch auch gehen oder?

Im Moment sieht das Ganze so aus:
www.t-u-w.de/pics/ug2.jpg

Man sieht, dass durchaus noch Platz wäre für weitere BBCode-Buttons.

Die Frage: Wo hole ich die BBCodes her und wo genau binde ich sie in das Script ein, damit sie angezeigt und auch zugelassen werden? Das Usergästebuch hat leider keinen eigenen Adminbereich - wäre ja auch zu einfach *g*.
Das Ganze sollte dann natürlich auch NUR für das Usergästebuch gelten und NICHT für die Shoutbox - für den Fall dass diese irgendwie zusammenhängen.

Für Ideen, Vorschläge und Lösungsansätze bedanke ich mich im Voraus ;)
Bearbeitet von am 25.08.2009 00000008 19:24
 
SC-Ad-Bot
 
Layzee
Erst einmal danke für den Hinweis.

Ich habe jetzt die BBCodes entsprechend der Namen im BBCode-Admin in den (hoffentlich) zuständigen Zeilen ergänzt, sie werden aber dennoch nicht angezeigt...

Wo hab ich noch den Denkfehler?

Code der fsc_userguestbook.php:

<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright © 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Usergästebuch for PHP-Fusion v7
| Author: Ralf Thieme
| Homepage: www.PHPFusion-SupportClub.de
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined("IN_FUSION")) { die("Access Denied"); }

if (iMEMBER && isset($_GET['lookup']) && isnum($_GET['lookup'])) {
   if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
   include INFUSIONS."fsc_userguestbook/infusion_db.php";
   include_once INCLUDES."bbcode_include.php";
   if (!function_exists('sbwrap')) {
      function sbwrap($text) {
         $i = 0; $tags = 0; $chars = 0; $res = "";
         $str_len = strlen($text);
         for ($i = 0; $i < $str_len; $i++) {
            $chr = substr($text, $i, 1);
            if ($chr == "<") {
               if (substr($text, ($i + 1), 6) == "a href" || substr($text, ($i + 1), 3) == "img") {
                  $chr = " ".$chr;
                  $chars = 0;
               }
               $tags++;
            } elseif ($chr == "&") {
               if (substr($text, ($i + 1), 5) == "quot;") {
                  $chars = $chars - 5;
               } elseif (substr($text, ($i + 1), 4) == "amp;" || substr($text, ($i + 1), 4) == "#39;" || substr($text, ($i + 1), 4) == "#92;") {
                  $chars = $chars - 4;
               } elseif (substr($text, ($i + 1), 3) == "lt;" || substr($text, ($i + 1), 3) == "gt;") {
                  $chars = $chars - 3;
               }
            } elseif ($chr == ">") {
               $tags--;
            } elseif ($chr == " ") {
               $chars = 0;
            } elseif (!$tags) {
               $chars++;
            }
            
            if (!$tags && $chars == 18) {
               $chr .= "<br />";
               $chars = 0;
            }
            $res .= $chr;
         }
         
         return $res;
      }
   }
   if (file_exists(INFUSIONS."fsc_userguestbook/locale/".LOCALESET."index.php")) {
      include INFUSIONS."fsc_userguestbook/locale/".LOCALESET."index.php";
   } else {
      include INFUSIONS."fsc_userguestbook/locale/German/index.php";
   }
   if (function_exists('score_positive')) {
      $aktion_brows = dbrows(dbquery("SELECT * FROM ".DB_SCORE_SCORE." WHERE sco_aktion='UGB'"));
      if ($aktion_brows == 0) {
         $result = dbquery("INSERT INTO ".DB_SCORE_SCORE." (sco_aktion, sco_titel, sco_score, sco_max, sco_status, sco_power) VALUES('UGB', '".$locale['pfgb_score']."', '1', '2', '0', '1')");
         redirect(FUSION_SELF.(FUSION_QUERY ? "?".FUSION_QUERY : ""));
      }
   }
   
   opentable($locale['pfgb_01'].$user_data['user_name']);
   if ($userdata['user_id'] != $_GET['lookup']) {
      if (isset($_POST['save'])) {
         $text = str_replace("\n", " ", $_POST['text']);
         $text = preg_replace("/^(.{255}).*$/", "$1", $text);
         $text = trim(stripinput(censorwords($text)));
         if ($text) {
            $result = dbquery("INSERT INTO ".DB_FSC_USERGUESTBOOK." (use_user_1, use_user_2, use_text, use_privat, use_datum) VALUES ('".$_GET['lookup']."', '".$userdata['user_id']."', '".$text."', '".(isset($_POST['privat']) && isnum($_POST['privat']) ? $_POST['privat'] : 0)."', '".time()."')");
            if (function_exists('score_positive')) {
               score_positive("UGB");
            }
         }
         redirect(FUSION_SELF.(FUSION_QUERY ? "?".FUSION_QUERY : ""));
      }
      echo "<form name='guestebook' method='post' action='".FUSION_SELF.(FUSION_QUERY ? "?".FUSION_QUERY : "")."'>\n";
      echo "<table cellpadding='0' cellspacing='1' width='400' class='tbl-border center'>\n<tr>\n";
      echo "<td class='tbl2' colspan='3'><strong>".$locale['pfgb_02']."</strong></td>\n";
      echo "</tr>\n<tr>\n";
      echo "<td class='tbl1' colspan='3' align='center'><textarea name='text' rows='4' cols='20' class='textbox' style='width:385px'></textarea></td>\n";
      echo "</tr>\n<tr>\n";
      echo "<td class='tbl1'>".display_bbcodes("120px;", "text", "guestebook", "smiley|b|u|url|color|img|Center|Youtube")."</td>\n";
      echo "<td class='tbl1'><input type='checkbox' name='privat' value='1' />".$locale['pfgb_03']."</td>\n";
      echo "<td class='tbl1' align='right'><input type='submit' name='save' class='button' value='".$locale['pfgb_04']."' /></td>\n";
      echo "</tr>\n</table>\n</form>\n<br />\n";
   } else {
      if (isset($_GET['delete']) && isnum($_GET['delete'])) {
         $result = dbquery("DELETE FROM ".DB_FSC_USERGUESTBOOK." WHERE use_id='".$_GET['delete']."'");
         $search = array("&amp;delete=".$_GET['delete'], "delete=".$_GET['delete']);
         $replace = array("", "");
         $query = str_replace($search, $replace, FUSION_QUERY);
         redirect(FUSION_SELF.($query != "" ? "?".$query : ""));
      }
      if (isset($_POST['kom'])) {
         $text = str_replace("\n", " ", $_POST['text']);
         $text = preg_replace("/^(.{255}).*$/", "$1", $text);
         $text = trim(stripinput(censorwords($text)));
         if ($text && isset($_POST['id']) && isnum($_POST['id'])) {
            $result = dbquery("UPDATE ".DB_FSC_USERGUESTBOOK." SET use_text_kom='".$text."' WHERE use_id='".$_POST['id']."'");
         }
         redirect(FUSION_SELF.(FUSION_QUERY ? "?".FUSION_QUERY : ""));
      }
   }
   $result = dbquery("SELECT ug.*, uu.* FROM ".DB_FSC_USERGUESTBOOK." ug
   LEFT JOIN ".DB_USERS." uu ON ug.use_user_2=uu.user_id
   WHERE use_user_1='".$_GET['lookup']."' AND (use_privat=0 OR (use_privat=1 AND (use_user_1=".$userdata['user_id']." OR use_user_2=".$userdata['user_id']."))) ORDER BY use_id DESC LIMIT ".$_GET['rowstart'].",5");
   if (dbrows($result)) {
      $i=1;
      while ($data = dbarray($result)) {
         if ($i > 1) { echo "<br />"; }
         echo "<table cellpadding='0' cellspacing='1' width='400' class='tbl-border center'>\n<tr>\n";
         echo "<td class='tbl2'".($userdata['user_id'] != $_GET['lookup'] ? " colspan='2'" : "")."><a href='".BASEDIR."profile.php?lookup=".$data['use_user_2']."'><strong>".$data['user_name']."</strong></a>".($data['use_privat'] == 1 ? $locale['pfgb_05'] : "")." (".showdate("shortdate", $data['use_datum']).")</td>\n";
         if ($userdata['user_id'] == $_GET['lookup']) {
            echo "<td class='tbl2' align='right' width='50%'>".($data['use_new'] == 0 ? $locale['pfgb_06'] : "").(!$data['use_text_kom'] ? "<a onclick='javascript:toggle(".$data['use_id'].")'>".$locale['pfgb_07']."</a> | " : "")."<a href='".FUSION_SELF.(FUSION_QUERY ? "?".FUSION_QUERY."&amp;delete=".$data['use_id'] : "?delete=".$data['use_id'])."'>".$locale['pfgb_08']."</a></td>\n";
            if ($data['use_new'] == 0) {
               $result2 = dbquery("UPDATE ".DB_FSC_USERGUESTBOOK." SET use_new='1' WHERE use_user_1='".$userdata['user_id']."' AND use_id='".$data['use_id']."'");
            }
         }
         echo "</tr>\n<tr>\n";
         echo "<td class='tbl1' colspan='2'>".sbwrap(parseubb(parsesmileys($data['use_text']), "b|i|u|url|color|img|Center|Youtube"));
         if ($data['use_text_kom']) {
            echo "<hr class='side-hr' />".sbwrap(parseubb(parsesmileys($data['use_text_kom']), "b|i|u|url|color|img|Center|Youtube"));
         } elseif ($userdata['user_id'] == $_GET['lookup']) {
            echo "<span id='toggle_".$data['use_id']."' style='display:none'>\n";
            echo "<hr class='side-hr' />";
            echo "<form name='guestebook_".$data['use_id']."' method='post' action='".FUSION_SELF.(FUSION_QUERY ? "?".FUSION_QUERY : "")."'>\n";
            echo "<table cellpadding='0' cellspacing='1' border='0' width='100%' class='tbl-border center'>\n<tr>\n";
            echo "<td class='tbl1' colspan='2' align='center'><textarea name='text' rows='4' cols='20' class='textbox' style='width:370px'></textarea></td>\n";
            echo "</tr>\n<tr>\n";
            echo "<td class='tbl1' width='50%'>".display_bbcodes("120px;", "text", "guestebook_".$data['use_id']."", "smiley|b|u|url|color|img|Center|Youtube")."</td>\n";
            echo "<td class='tbl1' width='50%' align='right'><input type='hidden' name='id' value='".$data['use_id']."' /><input type='submit' name='kom' class='button' value='".$locale['pfgb_09']."' /></td>\n";
            echo "</tr>\n</table>\n</form>\n";
            echo "</span>";
         }
         echo "</td>\n</tr>\n</table>\n";
         $i++;
      }
      $rows = dbrows(dbquery("SELECT * FROM ".DB_FSC_USERGUESTBOOK." WHERE use_user_1='".$_GET['lookup']."' AND (use_privat=0 OR (use_privat=1 AND (use_user_1=".$userdata['user_id']." OR use_user_2=".$userdata['user_id']."))) ORDER BY use_id DESC"));
      echo "<div align='center'>".makepagenav($_GET['rowstart'],5,$rows,3, FUSION_SELF.(FUSION_QUERY ? "?".FUSION_QUERY."&amp;" : ""))."</div>";
      echo '<script type="text/javascript">
      function toggle(id) {
        spanid = "toggle_"+id;
        val = document.getElementById(spanid).style.display;
        if (val == "none") {
          document.getElementById(spanid).style.display = "block";
        }
        else {
          document.getElementById(spanid).style.display = "none";
        }
      }
      </script>';
   } else {
      echo "<div align='center'>".$locale['pfgb_10']."</div>";
   }
   closetable();
}
?>
 
Layzee
Wenn man den Wald vor lauter Bäumen nicht sieht Smile

Danke MarcusG, jetzt funktionierts.
 
Layzee
Ok, danke erstmal soweit und entschuldige den unnötigen zweiten Post, ich dachte weil der andere halt als "gelöst" mrakiert war...

Aber ok.

Den Link zum eigenen Profil hab ich mit ein wenig Tüftelei dann doch selbst hinbekommen und er funktioniert auch.
Allerdings srpachst Du von einem "Nachbarthread", in dem das "Problem" mit der Benachrichtigung gelöst wurde?
Vielleicht bin ich blind oder so, aber ich finde auch über die Suche keinen Thread der sich mit diesem Thema befasst ?!

Wenn Du mir da noch einmal auf die Sprünge helfen könntest? *ganzliebguck*
 
Gerry

Zitat

Layzee schrieb:
Allerdings srpachst Du von einem "Nachbarthread", in dem das "Problem" mit der Benachrichtigung gelöst wurde?
Vielleicht bin ich blind oder so, aber ich finde auch über die Suche keinen Thread der sich mit diesem Thema befasst ?!

Wenn Du mir da noch einmal auf die Sprünge helfen könntest? *ganzliebguck*


http://www.phpfusion-supportclub.de/clubforum/viewthread_1396.html&pid=12712#post_12706

Wink
 
Layzee
Ehm ja, danke.
Allerdings bezieht sich dieser Thread auf eine PN wenn ein neuer Eintrag getätigt wurde. Ich habe aber in meinem Panel eine PN-Benachrichtigung für neue private Nachrichten. Genau das gleiche hätte ich nun gern auch nochmal für das Usergästebuch.
Also im Prinzip so, dass es im Panel angezeigt wird, wenn neue Einträge im Gästebuch stehen.

Für PN ist es ja so, dass nach dem Einloggen bei evtl vorhandenen neuen PN´s angezeigt wird "Du hast xy neue Nachrichten!"
Wenn keine neuen Nachrichten vorhanden sind zeigt das Panel auch nichts an.

Genau das gleiche bräuchte ich für das Usergästebuch. Auch hier soll NICHTS angezeigt werden wenn keine neuen Einträge vorhanden sind und eine Nachricht angezeigt werden wenn neue EInträge seit dem letzten Besuch gemacht wurden.

Hmm... ich hoffe ich hab das jetzt ausführlich genug und verständlich erklärt Wink
 
Gerry
Ja ich hab verstanden was du meinst! Wink

Es ist sicher machbar, nur müssen da Änderungen an der Datei und an der Datenbank vorgenommen werden.
Den da muss dann ein neues Feld in die DB, wo eben ausgelesen wird ob der User (Empfänger) den Eintrag schon gelesen hat, oder nicht!

Werde es mir mal ansehen, nur kann ich dir leider noch nicht sagen wann, hatte nämlich Probleme mit meinem VServer und hab da nun etwas Stress! Sad

L.g. Gerry
 
Layzee
@Marcus:
Stimmt schon was Du sagst, es wäre ein "Doppelfeature".
Allerdings entwickelt sich das Usergästebuch auf unserer Radio-Page gerade für die DJs als zentrale Mitteilungsstelle.
Also wenn die Hörer die DJs grüssen möchten tun sie das seltener über PN als über das Usergästebuch.
Nun kam es schon ein paarmal vor, dass Hörer sich "beschwert" hatten, dass auf diese Nachrichten nicht reagiert wurde.
Man schaut ja auch im Grunde recht selten ins eigene Profil (es sei denn man richtet es für registrierte Benutzer als Startseite ein), weshalb wir auf der Webseite nun beispielsweise dieses eigene Panel haben, welches nur erscheint wenn neue PNs im Postfach liegen (zusätzlich noch akkustisches Signal, welches bei jedem Besuch der Seite solange kommt bis die Nachricht gelesen wurde).

Ich weiss, es gibt die SB, das Forum, die PN-Funktion und auch die Grussbox für solche Dinge.
Nur wie ich bereits im anderen Thread (oder wars sogar dieser hier?) sagte, ist dieses "Pinnwand-Feature" auf immer mehr Communityseiten Standard - und das wollen die User dann natürlich bei uns auch.
Das Ganze funktioniert ja auch perfekt, nur bekommt man eben keine Benachrichtigung über neue Einträge...

EDIT:
Ich habe die Funktion mit der Benachrichtigung nun eingebaut.
Hatte garnicht gesehen (und nicht getestet) wie genau das funktioniert. Allerdings reicht mir das nun DOCH - und zwar völlig.

Den Support hier empfehle ich uneingeschränkt weiter Wink

Danke Jungs, der Thread kann dann closed werden Smile
Bearbeitet von Layzee am 26.08.2009 00000008 13:46
 
Springe ins Forum:

 Ähnliche Themen 

TEST
Thema Forum Antworten Letzter Beitrag
[Gelöst] Foto Galerie Allgemeine Support Fragen 13 20.12.2014 00000012 16:58
[gelöst] Subdomain nicht als ext. Link anzeigen Allgemeine Support Fragen 9 01.01.2013 00000001 19:36
[gelöst] Kontaktdaten nicht einsehbar Allgemeine Support Fragen 12 04.12.2012 00000012 15:51
[Gelöst] ID Nummer anzeigen im Profil Allgemeine Support Fragen 46 20.08.2012 00000008 05:32
[gelöst] Design erstellen Grafik und Design 21 19.08.2012 00000008 05:32
Datalus