[2.3] Quick-Reply 2.0 für wBB 2.3

rellek

relativ sensationell
Teammitglied
Also bei dem SQL-Fehler fehlt ein Komma. Ja, das Template muss ins ACP und einen Edit-Knopf gibts auch im vBulletin *g*
 

Pumuckel

New Member
Ich habe mal eine Frage, seit dem ich die direkt Antwort habe funktionieren die BBCode nicht mehr.

Kann mir vielleicht jemand einen Tipp geben wer mag?
 

Pumuckel

New Member
Gute Frage rellek, ich wollte hier niemandem einfach überrumpeln!


<script type="text/javascript">
<!--
<if($wbbuserdata['usewysiwyg'] == 1)><then>
function getAppletObject() {
if(document.getElementById('embed_wysiwyg') == null || document.getElementById('embed_wysiwyg').getTextLength == null) return document.getElementById('wysiwyg');
return document.getElementById('embed_wysiwyg');
}
function setAppletText(theForm) {
getAppletObject().setText(theForm.message.value);
}
function getHiddenText() {
return document.bbform.message.value;
}
function smilie(theSmilie) {
getAppletObject().insertSmilie(theSmilie);
}
function submitForm() {
if (validate(document.bbform)) document.bbform.submit();
}
</then>
<else>
tag_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT']}";
img_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_IMG']}";
font_formatter_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_FONT']}";
link_text_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_URL_TITLE']}";
link_url_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_URL']}";
link_email_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_EMAIL']}";
list_type_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_LIST_TYPE']}";
list_item_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_LIST_ITEM']}";
</else>
</if><if($wbbuserdata['usewysiwyg'] == 1 && $qr_bbcode_nessarry=="1")><then>
tag_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT']}";
font_formatter_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_FONT']}";
link_text_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_URL_TITLE']}";
link_url_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_URL']}";
link_email_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_EMAIL']}";
list_type_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_LIST_TYPE']}";
list_item_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_LIST_ITEM']}";
</then></if>

function getAppletText(theForm) {
<if($wbbuserdata['usewysiwyg'] == 1)><then>
var appletObj = getAppletObject();
if (appletObj != null) {
theForm.message.value = appletObj.getText();
}
</then></if>
}
function resetAppletText() {
<if($wbbuserdata['usewysiwyg'] == 1)><then>
getAppletObject().reset();
</then></if>
}
function getMessageLength(theform) {
<if($wbbuserdata['usewysiwyg'] == 1)><then>
return getAppletObject().getTextLength();
</then>
<else>
return theform.message.value.length;
</else>
</if>
}

<if($filename=="addreply.php" || $filename=="editpost.php")>
<then>
var postmaxchars = $postmaxchars;
function validate(theform) {
getAppletText(theform);
if (theform.message.value=="") {
alert("{$lang->items['LANG_POSTINGS_JS_ERROR2']}");
return false;
}
return messagetolong(theform);
}
</then>
</if>
<if($filename=="quickreply.php" || $filename=="quickreply_config.php")>
<then>
var postmaxchars = $postmaxchars;
function validate(theform) {
getAppletText(theform);
if (theform.message.value=="") {
alert("{$lang->items['LANG_POSTINGS_JS_ERROR2']}");
return false;
}
return messagetolong(theform);
}
</then>
</if>
<if($filename=="calendar.php")>
<then>
var postmaxchars = $eventmaxchars;
function validate(theform) {
getAppletText(theform);
if (theform.message.value=="" || theform.subject.value=="") {
alert("{$lang->items['LANG_CALENDAR_JS_ERROR3']}");
return false;
}
return messagetolong(theform);
}
</then>
</if>
<if($filename=="newthread.php")>
<then>
var postmaxchars = $postmaxchars;
function validate(theform) {
getAppletText(theform);
if (theform.message.value=="" || theform.topic.value=="") {
alert("{$lang->items['LANG_POSTINGS_JS_ERROR1']}");
return false;
}
return messagetolong(theform);
}
</then>
</if>
<if($filename=="usercp.php")>
<then>
var postmaxchars = $wbbuserdata[max_sig_length];
function validate(theform) {
getAppletText(theform);
return messagetolong(theform);
}
</then>
</if>
<if($filename=="pms.php")>
<then>
var postmaxchars = $pmmaxchars;
function validate(theform) {
getAppletText(theform);
if ((theform.recipients.value=="" && theform.recipients_bcc.value=="") || theform.message.value=="" || theform.subject.value=="") {
alert("{$lang->items['LANG_POSTINGS_JS_ERROR3']}");
return false;
}
return messagetolong(theform);
}
</then>
</if>
function checklength(theform) {
if (postmaxchars != 0) message = " {$lang->items['LANG_POSTINGS_JS_MESSAGE_MAXLENGTH']}";
else message = "";

var messageLength = getMessageLength(theform);
alert("{$lang->items['LANG_POSTINGS_JS_MESSAGE_CHECKLENGTH']}" + message);
}
function messagetolong(theform) {
if (postmaxchars != 0) {
var messageLength = getMessageLength(theform);
if (messageLength > postmaxchars) {
alert("{$lang->items['LANG_POSTINGS_JS_MESSAGE_TOLONG']}");
return false;
}
else {
return true;
}
}
else {
return true;
}
}
function changeEditor(theForm, editorID) {
getAppletText(theForm);
theForm.change_editor.value = editorID;
theForm.submit();
}

activeMenu = false;
menuTimerRunning = false;
function toggleMenu(id, toggle) {
if(document.getElementById) {
if(id && toggle) {
element = document.getElementById(id);
status = element.style.display;
if (!status || status == 'undefined' || status == 'none') {
posLeft = getObjectPosLeft(toggle) + 10;
element.style.left = posLeft + 'px';
element.style.top = '0px';
element.style.display = 'block';
<if($wbbuserdata['usewysiwyg'] == 1)><then>
posTop = getObjectPosTop(toggle) + toggle.offsetHeight + 10;
</then><else>
posTop = getObjectPosTop(toggle) - element.offsetHeight - 10;
</else></if>
element.style.top = posTop + 'px';
element.onmouseover = checkMenuTimer;
element.onmouseout = startMenuTimer;
activeMenu = id;
}
else {
element.style.display = 'none';
activeMenu = false;
}
}
else if(activeMenu) {
checkMenuTimer();
document.getElementById(activeMenu).style.display = 'none';
activeMenu = false;
}
}
}
function getObjectPosLeft(element) {
var left = element.offsetLeft;
while((element = element.offsetParent) != null) {
left += element.offsetLeft;
}
return left;
}
function getObjectPosTop(element) {
var top = element.offsetTop;
while((element = element.offsetParent) != null) {
top += element.offsetTop;
}
return top;
}
function checkMenuTimer() {
if(menuTimerRunning) {
clearTimeout(menuTimerRunning);
menuTimerRunning = false;
}
}
function startMenuTimer() {
menuTimerRunning = setTimeout("toggleMenu();", 500);
}
//-->
</script>
<if($wbbuserdata['usewysiwyg'] != 1 || $qr_bbcode_nessarry=="1")><then>
<script type="text/javascript" src="js/bbcode.js"></script>
</then></if>
 

rellek

relativ sensationell
Teammitglied
Dann probiers mal bitte hiermit:
Code:
<script type="text/javascript">
<!--
<if($wbbuserdata['usewysiwyg'] == 1)><then>
function getAppletObject() {
    if(document.getElementById('embed_wysiwyg') == null || document.getElementById('embed_wysiwyg').getTextLength == null) return document.getElementById('wysiwyg');
    return document.getElementById('embed_wysiwyg');
}

function setAppletText(theForm) {
    getAppletObject().setText(theForm.message.value);
}

function getHiddenText() {
    return document.bbform.message.value;
}

function smilie(theSmilie) {
    getAppletObject().insertSmilie(theSmilie);
}

function submitForm() {
    if (validate(document.bbform)) document.bbform.submit();
}
</then>
<else>
tag_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT']}";
img_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_IMG']}";
font_formatter_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_FONT']}";
link_text_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_URL_TITLE']}";
link_url_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_URL']}";
link_email_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_EMAIL']}";
list_type_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_LIST_TYPE']}";
list_item_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_LIST_ITEM']}";
</else>
</if>
<if($wbbuserdata['usewysiwyg'] == 1 && $qr_bbcode_nessarry=="1")><then>
tag_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT']}";
font_formatter_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_FONT']}";
link_text_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_URL_TITLE']}";
link_url_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_URL']}";
link_email_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_EMAIL']}";
list_type_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_LIST_TYPE']}";
list_item_prompt = "{$lang->items['LANG_POSTINGS_JS_PROMPT_LIST_ITEM']}";
</then></if>


function getAppletText(theForm) {
<if($wbbuserdata['usewysiwyg'] == 1)><then>
    var appletObj = getAppletObject();
    if (appletObj != null) {    
        theForm.message.value = appletObj.getText();
    }
</then></if>
}

function resetAppletText() {
<if($wbbuserdata['usewysiwyg'] == 1)><then>
    getAppletObject().reset();
</then></if>
}

function getMessageLength(theform) {
<if($wbbuserdata['usewysiwyg'] == 1)><then>
    return getAppletObject().getTextLength();
</then>
<else>
    return theform.message.value.length;
</else>
</if>
}


<if($filename=="addreply.php" || $filename=="editpost.php")>
<then>
var postmaxchars = $postmaxchars;
function validate(theform) {
 getAppletText(theform);
 if (theform.message.value=="") {
  alert("{$lang->items['LANG_POSTINGS_JS_ERROR2']}");
  return false;
 }
 return messagetolong(theform);
}
</then>
</if>
<if($filename=="quickreply.php" || $filename=="quickreply_config.php")>
<then>
var postmaxchars = $postmaxchars;
function validate(theform) {
 getAppletText(theform);
 if (theform.message.value=="") {
  alert("{$lang->items['LANG_POSTINGS_JS_ERROR2']}");
  return false;
 }
 return messagetolong(theform);
}
</then>
</if>

<if($filename=="calendar.php")>
<then>
var postmaxchars = $eventmaxchars;
function validate(theform) {
 getAppletText(theform);
 if (theform.message.value=="" || theform.subject.value=="") {
  alert("{$lang->items['LANG_CALENDAR_JS_ERROR3']}");
  return false;
 }
 return messagetolong(theform);
}
</then>
</if>

<if($filename=="newthread.php")>
<then>
var postmaxchars = $postmaxchars;
function validate(theform) {
 getAppletText(theform);
 if (theform.message.value=="" || theform.topic.value=="") {
  alert("{$lang->items['LANG_POSTINGS_JS_ERROR1']}");
  return false;
 }
 return messagetolong(theform);
}
</then>
</if>

<if($filename=="usercp.php")>
<then>
var postmaxchars = $wbbuserdata[max_sig_length];
function validate(theform) {
 getAppletText(theform);
 return messagetolong(theform);
}
</then>
</if>

<if($filename=="pms.php")>
<then>
var postmaxchars = $pmmaxchars;
function validate(theform) {
 getAppletText(theform);
 if ((theform.recipients.value=="" && theform.recipients_bcc.value=="") || theform.message.value=="" || theform.subject.value=="") {
  alert("{$lang->items['LANG_POSTINGS_JS_ERROR3']}");
  return false;
 }
 return messagetolong(theform);
}
</then>
</if>

function checklength(theform) {
 if (postmaxchars != 0) message = " {$lang->items['LANG_POSTINGS_JS_MESSAGE_MAXLENGTH']}";
 else message = "";
 
 var messageLength = getMessageLength(theform);
 alert("{$lang->items['LANG_POSTINGS_JS_MESSAGE_CHECKLENGTH']}" + message);
}

function messagetolong(theform) {
     if (postmaxchars != 0) {
          var messageLength = getMessageLength(theform);
          if (messageLength > postmaxchars) {
               alert("{$lang->items['LANG_POSTINGS_JS_MESSAGE_TOLONG']}");
               return false;
          }
          else {
              return true;
          }
     } 
     else {
         return true;
     }
}

function changeEditor(theForm, editorID) {
    getAppletText(theForm);
    theForm.change_editor.value = editorID;
    theForm.submit();    
}


activeMenu = false;
menuTimerRunning = false;
function toggleMenu(id, toggle) {
    if(document.getElementById) {
        if(id && toggle) {
            element = document.getElementById(id);
            status = element.style.display;
            if (!status || status == 'undefined' || status == 'none') {
                posLeft = getObjectPosLeft(toggle) + 10;
                element.style.left = posLeft + 'px';
                element.style.top = '0px';
                element.style.display = 'block';
                <if($wbbuserdata['usewysiwyg'] == 1)><then>
                posTop = getObjectPosTop(toggle) + toggle.offsetHeight + 10;
                </then><else>
                posTop = getObjectPosTop(toggle) - element.offsetHeight - 10;
                </else></if>
                element.style.top = posTop + 'px';
                element.onmouseover = checkMenuTimer;
                element.onmouseout = startMenuTimer;
                activeMenu = id;
            }
            else {
                element.style.display = 'none';
                activeMenu = false;
            }
        }
        else if(activeMenu) {
            checkMenuTimer();
              document.getElementById(activeMenu).style.display = 'none';
            activeMenu = false;
          }
    }    
}

function getObjectPosLeft(element) {
    var left = element.offsetLeft;
    while((element = element.offsetParent) != null)    {
        left += element.offsetLeft;
    }
    return left;
}
function getObjectPosTop(element) {
    var top = element.offsetTop;
    while((element = element.offsetParent) != null)    {
        top += element.offsetTop;
    }
    return top;
}
function checkMenuTimer() {
    if(menuTimerRunning)  {
        clearTimeout(menuTimerRunning);
        menuTimerRunning = false;
    }
}
function startMenuTimer() {
    menuTimerRunning = setTimeout("toggleMenu();", 500);
}

//-->
</script>

<if($wbbuserdata['usewysiwyg'] != 1 || $qr_bbcode_nessarry=="1")><then>
<script type="text/javascript" src="js/bbcode.js"></script>
</then></if>
 

Merlin

[inaktiv]
Moin Moin

habe da auch mal eine frage

ist es nicht möglich das man im acp unter einstellungen das Quick-Reply einstellen kann
Z.B.
Einstellungen: Quick-Reply
Quick-Reply aktivieren
Bitte wählen Sie "Ja" um die Quick-Replybox zu aktivieren. Ja Nein
Icons anzeigen.
Das anzeigen der Icons verursacht einen zusätzlichen Query! Ja Nein
Smilies anzeigen.
Das anzeigen der Smilies verursacht einen zusätzlichen Query! Ja Nein
BB-Code Buttons anzeigen.
Das anzeigen der BB-Code Buttons verursacht einen zusätzlichen Query! Ja Nein
Dateianhänge zulassen.
Sollen Dateianhänge auch im Quick-Reply genutzt werden können?

ohne das man erst das
##### Folgenden Query ausführen #####
- Wenn Quick-Reply standardmäßig eingeschalten sein soll (X durch Boardnummer ersetzen):
ALTER TABLE bbX_users ADD qreplyview INT(11) NOT NULL default '1';
- Wenn Quick-Reply standardmäßig ausgeschalten sein soll (X durch Boardnummer ersetzen):
ALTER TABLE bbX_users ADD qreplyview INT(11) NOT NULL default '0';
- Wenn es schon zu spät ist und der falsche Query ausgeführt wurde, dann einfach folgende eingeben:
ALTER TABLE bbX_users CHANGE qreplyview qreplyview TINYINT(11) DEFAULT 'Y' NOT NULL;
UPDATE bbX_users SET qreplyview = 'Y';
Y = 1 = ja; 0 = nein

und die
quickreply_config.php bearbeiten muß

ist das möglich

vielen dank

MfG

Merlin
 

rellek

relativ sensationell
Teammitglied
Also um die SQL-Abfrage kommst du nicht herum, sonst wäre die Einstellung im Profil nicht machbar.

Die anderen Einstellungen im ACP zu machen, wäre machbar, bedeutet aber für alle Beteiligten (für den Admin spätestens bei der Deinstalltion) mehr Arbeit.
Was genau hast du denn gegen das Bearbeiten der PHP-Datei?
 

Merlin

[inaktiv]
ich persönlich habe nichts dagegen

nur bei mir hat man mir vor langer zeit auch mal ein Quick-Reply eingebaut und ich finde es so wie es bei mir ist einfacher

bei mir schaut es so aus wie auf dem bild

bild3il2.gif
 

rellek

relativ sensationell
Teammitglied
Welches Bild?


Fürs wBB Lite gibts ein Addon, das die Konfiguration via ACP erlaubt (vielleicht meinst du den?), aber hier beim wBB2 war das schon immer so - und wird wohl auch so bleiben...
 

rellek

relativ sensationell
Teammitglied
Ja wie gesagt... Dann hast du einen anderen Hack - der hier sieht das jedenfalls nicht vor.
 
S

Shackles

Guest
Ich hab den eingebaut und bekomme nun folgende Fehlermeldung, wenn ich bei Einstellungen editieren was ändere und es abspeichern will.

SQL-DATABASE ERROR

Database error in WoltLab Burning Board (2.3.6): Invalid SQL: UPDATE bb1_users SET showemail='0', admincanemail='1', usercanemail='1', invisible='1', usecookies='1', styleid='0', daysprune='0', timezoneoffset='1', startweek='0', dateformat='d.m.Y', timeformat='H:i', emailnotify='0', notificationperpm='0', receivepm='1', emailonpm='0', pmpopup='0', umaxposts='0', qreplyview='0', showsignatures='1', showavatars='1', showimages='1', threadview='0', langid='0', usewysiwyg='0' WHERE userid = '1'
mysql error: Unknown column 'qreplyview' in 'field list'
mysql error number: 1054
mysql version: 4.1.22-max-log
php version: 4.4.4
Date: 28.05.2007 @ 19:37
Script: /usercp.php
Referer: http://www.hilfezurselbsthilfe-community.de/usercp.php?action=options_change
 
S

Shackles

Guest
stimmt, jetzt gehts...
aber hab die einstellungen alle richtig gemacht, hab den hack schon oft eingebaut nur ich bekomme ihn diesmal absolut nicht angezeigt...
 

rellek

relativ sensationell
Teammitglied
Sind die Templates im Ordner "cache/templates" auch beschreibbar? (das würde sich vor allem auf "X_thread.php" beziehen)
 
S

Shackles

Guest
##### Allgemeine Einstellungen #####
// Soll die Quickreply-Box aktiviert werden?
$qr_activate = "1";
##### Erscheinungsbild im Thread #####
// Sollen Gästen die Q-Reply-Box angezeigt werden?
$qr_showguests = "0";
// Soll die Q-Reply-Box nur angezeigt werden, wenn man das Recht hat zu antworten?
$qr_showonpermission = "0";
// Sollen BBCodes angezeigt werden?
$qr_show_bbcode = "1";
// Sollen Posticons verwendet werden?
$qr_show_posticons = "1";
// Sollen Smilies angezeigt werden?
$qr_show_smilies = "1";
// Soll die Q-Reply-Box deaktiviert werden, wenn man der letzte Poster im Thread ist? (NoSelfReply)
$qr_noselfreply = "0";
// Soll es die Möglichkeit geben, Attachments einzufügen?
$qr_show_attachments = "1";
// Soll die Q-Reply-Box nur auf der letzten Seite (1) oder auf jeder Seite (0) des Threads angezeigt werden?
$qr_only_lastpage = "1";
// Soll die Option "URLs automatisch umwandeln" angezeigt werden?
$qr_show_parseurl = "0";
// Standardwert für "URLs automatisch umwandeln"?
$qr_parseurl_value = "1";
// Soll die Option "Benachrichtigung" angezeigt werden?
$qr_show_notification = "0";
// Standardwert für "Benachrichtigung"?
$qr_notification_value = "0";

// Soll die Option "Bilder in diesem Beitrag deaktivieren" angezeigt werden?
$qr_show_disableimages = "0";
// Standardwert für "Bilder in diesem Beitrag deaktivieren"?
$qr_disableimages_value = "0";
// Soll die Option "Signatur anzeigen" angezeigt werden?
$qr_show_showsignature = "0";
// Standardwert für "Signatur anzeigen"?
$qr_showsignature_value = "1";
// Soll die Option "Thema schließen" angezeigt werden?
$qr_show_threadclose = "1";
// Standardwert für Themaschließen: 0
// Größe der Quick-Reply-Box, Zeichen?
$qr_replybox_cols = "80";
// Größe der Quick-Reply-Box, Zeilen?
$qr_replybox_rows = "20";
 
Oben