Webmaster общности: Predpriemach.com | SearchEngines.bg

    Quick reply + bbcode

    Автор: djvato

    Здравейте това е мод за Quick reply + bbcode какво ще рече това еми мод за бърз отговор + bbcode b и т.н. 🙂

    нека да започнем :

    #
    #-----[ отваряте ]--------------
    #
    viewtopic.php
    
    #
    #-----[ намирате ]----------------------------
    #
    $template->pparse('body');
    
    include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
    
    #
    #-----[ преди него слагате ]-----------
    #
    
    
    //
    // Quick Reply Mod
    //
    if ( ((!$is_auth['auth_reply']) or ($forum_topic_data['forum_status'] == FORUM_LOCKED) or ($forum_topic_data['topic_status'] == TOPIC_LOCKED)) and ($userdata['user_level'] != ADMIN) )
    {
    $quick_reply_form = "";
    }
    else
    {
    if ( $can_watch_topic && $is_watching_topic )
    {
    $notify = 1;
    }
    else
    {
    $notify = $userdata['user_notify'];
    }
    $bbcode_uid = $postrow[$total_posts - 1]['bbcode_uid'];
    $last_poster = $postrow[$total_posts - 1]['username'];
    $last_msg = $postrow[$total_posts - 1]['post_text'];
    $last_msg = str_replace(":1:$bbcode_uid", "", $last_msg);
    $last_msg = str_replace(":u:$bbcode_uid", "", $last_msg);
    $last_msg = str_replace(":o:$bbcode_uid", "", $last_msg);
    $last_msg = str_replace(":$bbcode_uid", "", $last_msg);
    $last_msg = str_replace("'", "'", $last_msg);
    $last_msg = "[QUOTE=\"$last_poster\"]" . $last_msg . "[/QUOTE]";
    $quick_reply_form = "
    <script language=\"JavaScript\" type=\"text/javascript\">
    <!--
    // bbCode control by
    // subBlue design
    // www.subBlue.com
    
    // Startup variables
    var imageTag = false;
    var theSelection = false;
    
    // Check for Browser & Platform for PC & IE specific bits
    // More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
    var clientPC = navigator.userAgent.toLowerCase(); // Get client info
    var clientVer = parseInt(navigator.appVersion); // Get browser version
    
    var is_ie = ((clientPC.indexOf(\"msie\") != -1) && (clientPC.indexOf(\"opera\") == -1));
    var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
    && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
    && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
    var is_moz = 0;
    
    var is_win = ((clientPC.indexOf(\"win\")!=-1) || (clientPC.indexOf(\"16bit\") != -1));
    var is_mac = (clientPC.indexOf(\"mac\")!=-1);
    
    // Helpline messages
    b_help = \"Bold text: text (alt+b)\";
    i_help = \"Italic text: [i]text[/i] (alt+i)\";
    u_help = \"Underline text: [u]text[/u] (alt+u)\";
    q_help = \"Quote text: [quote]text[/quote] (alt+q)\";
    c_help = \"Code display: [codee]code[/codee] alt+c)\";
    l_help = \"List: [list]text[/list] (alt+l)\";
    o_help = \"Ordered list: [list=]text[/list] (alt+o)\";
    p_help = \"Image: [img]http://imageurl[/img] (alt+p)\";
    w_help = \"URL: [url]http://url[/url] or [url=http://url]Text[/url] (alt+w)\";
    a_help = \"Close all open bbCode tags\";
    s_help = \"Font color: [color=red]text[/color] Tip: you can also use color=#FF0000\";
    f_help = \"Font size: [size=x-small]small text[/size]\";
    
    // Define the bbCode tags
    bbcode = new Array();
    bbtags = new Array('','','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[codee]','[/codee]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]');
    imageTag = false;
    
    // Shows the help messages in the helpline window
    function helpline(help) {
    document.post.helpbox.value = eval(help + \"_help\");
    }
    
    
    // Replacement for arrayname.length property
    function getarraysize(thearray) {
    for (i = 0; i < thearray.length; i++) {
    if ((thearray[i] == \"undefined\") || (thearray[i] == \"\") || (thearray[i] == null))
    return i;
    }
    return thearray.length;
    }
    
    // Replacement for arrayname.push(value) not implemented in IE until version 5.5
    // Appends element to the array
    function arraypush(thearray,value) {
    thearray[ getarraysize(thearray) ] = value;
    }
    
    // Replacement for arrayname.pop() not implemented in IE until version 5.5
    // Removes and returns the last element of an array
    function arraypop(thearray) {
    thearraysize = getarraysize(thearray);
    retval = thearray[thearraysize - 1];
    delete thearray[thearraysize - 1];
    return retval;
    }
    
    
    function checkForm() {
    formErrors = false;
    document.post.message.value = '';
    if (document.post.input.value.length < 2) {
    formErrors = '" . $lang['Empty_message'] . "';
    }
    if (formErrors) {
    alert(formErrors);
    return false;
    } else {
    if (document.post.quick_quote.checked) {
    document.post.message.value = document.post.last_msg.value + '\\r\\n';
    }
    document.post.message.value += document.post.input.value;
    return true;
    }
    }
    
    function bbstyle(bbnumber) {
    var txtarea = document.post.input;
    
    txtarea.focus();
    donotinsert = false;
    theSelection = false;
    bblast = 0;
    
    if (bbnumber == -1) { // Close all open tags & default button names
    while (bbcode[0]) {
    butnumber = arraypop(bbcode) - 1;
    txtarea.value += bbtags[butnumber + 1];
    buttext = eval('document.post.addbbcode' + butnumber + '.value');
    eval('document.post.addbbcode' + butnumber + '.value =\"' + buttext.substr(0,(buttext.length - 1)) + '\"');
    }
    imageTag = false; // All tags are closed including image tags :D
    txtarea.focus();
    return;
    }
    
    if ((clientVer >= 4) && is_ie && is_win)
    {
    theSelection = document.selection.createRange().text; // Get text selection
    if (theSelection) {
    // Add tags around selection
    document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
    txtarea.focus();
    theSelection = '';
    return;
    }
    }
    else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
    {
    mozWrap(txtarea, bbtags[bbnumber], bbtags[bbnumber+1]);
    return;
    }
    
    // Find last occurance of an open tag the same as the one just clicked
    for (i = 0; i < bbcode.length; i++) {
    if (bbcode[i] == bbnumber+1) {
    bblast = i;
    donotinsert = true;
    }
    }
    
    if (donotinsert) { // Close all open tags up to the one just clicked & default button names
    while (bbcode[bblast]) {
    butnumber = arraypop(bbcode) - 1;
    txtarea.value += bbtags[butnumber + 1];
    buttext = eval('document.post.addbbcode' + butnumber + '.value');
    eval('document.post.addbbcode' + butnumber + '.value =\"' + buttext.substr(0,(buttext.length - 1)) + '\"');
    imageTag = false;
    }
    txtarea.focus();
    return;
    } else { // Open tags
    
    if (imageTag && (bbnumber != 14)) { // Close image tag before adding another
    txtarea.value += bbtags[15];
    lastValue = arraypop(bbcode) - 1; // Remove the close image tag from the list
    document.post.addbbcode14.value = \"Img\"; // Return button back to normal state
    imageTag = false;
    }
    
    // Open tag
    txtarea.value += bbtags[bbnumber];
    if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag
    arraypush(bbcode,bbnumber+1);
    eval('document.post.addbbcode'+bbnumber+'.value += \"*\"');
    txtarea.focus();
    return;
    }
    storeCaret(txtarea);
    }
    
    // From http://www.massless.org/mozedit/
    function mozWrap(txtarea, open, close)
    {
    var selLength = txtarea.textLength;
    var selStart = txtarea.selectionStart;
    var selEnd = txtarea.selectionEnd;
    if (selEnd == 1 || selEnd == 2)
    selEnd = selLength;
    
    var s1 = (txtarea.value).substring(0,selStart);
    var s2 = (txtarea.value).substring(selStart, selEnd)
    var s3 = (txtarea.value).substring(selEnd, selLength);
    txtarea.value = s1 + open + s2 + close + s3;
    return;
    }
    
    // Insert at Claret position. Code from
    // http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
    function storeCaret(textEl) {
    if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
    }
    
    //-->
    </script>
    <form action='".append_sid("posting.$phpEx")."' method='post' name='post' onsubmit='return checkForm(this)'>
    <span class='genmed'><b>".$lang["Quick_Reply"].":</b><br />\n
    <input type=\"button\" class=\"button\" accesskey=\"b\" name=\"addbbcode0\" value=\" B \" style=\"font-weight:bold; width: 30px\" onClick=\"bbstyle(0)\" onMouseOver=\"helpline('b')\" /> \n
    <input type=\"button\" class=\"button\" accesskey=\"i\" name=\"addbbcode2\" value=\" i \" style=\"font-style:italic; width: 30px\" onClick=\"bbstyle(2)\" onMouseOver=\"helpline('i')\" /> \n
    <input type=\"button\" class=\"button\" accesskey=\"u\" name=\"addbbcode4\" value=\" u \" style=\"text-decoration: underline; width: 30px\" onClick=\"bbstyle(4)\" onMouseOver=\"helpline('u')\" /> \n
    <input type=\"button\" class=\"button\" accesskey=\"q\" name=\"addbbcode6\" value=\"Quote\" style=\"width: 50px\" onClick=\"bbstyle(6)\" onMouseOver=\"helpline('q')\" /> \n
    <input type=\"button\" class=\"button\" accesskey=\"c\" name=\"addbbcode8\" value=\"Code\" style=\"width: 40px\" onClick=\"bbstyle(8)\" onMouseOver=\"helpline('c')\" /> \n
    <input type=\"button\" class=\"button\" accesskey=\"w\" name=\"addbbcode16\" value=\"URL\" style=\"text-decoration: underline; width: 40px\" onClick=\"bbstyle(16)\" onMouseOver=\"helpline('w')\" /> \n
    <input type=\"button\" class=\"button\" accesskey=\"p\" name=\"addbbcode14\" value=\"Img\" style=\"width: 40px\" onClick=\"bbstyle(14)\" onMouseOver=\"helpline('p')\" /><br /></span>\n
    <span class=\"gensmall\"><input type=\"text\" name=\"helpbox\" size=\"45\" maxlength=\"100\" style=\"width:340px; font-size:10px; background-color:#".$theme['td_color2'].";\" class=\"helpline\" value=\"Tip: Styles can be applied quickly to selected text.\" /></span><br /><span class='genmed'>";
    
    if (!$userdata['session_logged_in'])
    {
    $quick_reply_form .= $lang['Username'] . ": <input class='post' type='text' name='username' size='25' maxlength='25' value='' /><br />";
    }
    
    $quick_reply_form .= "<textarea name='input' rows='10' cols='50' wrap='virtual' class='post''></textarea><br />
    <input type='checkbox' name='quick_quote' />".$lang["Quick_quote"]."<br />
    <input type='checkbox' name='attach_sig' checked='checked' />".$lang["Attach_signature"]."<br />
    <input type='hidden' name='mode' value='reply' />
    <input type='hidden' name='sid' value='" . $userdata['session_id'] . "' />
    <input type='hidden' name='t' value='" . $topic_id . "' />
    <input type='hidden' name='message' value='' />
    <input type='hidden' name='notify' value=" . $notify . " />
    <input type='hidden' name='last_msg' value='" . $last_msg . "' />
    <input type='submit' name='preview' class='liteoption' value='".$lang['Preview']."' /> 
    <input type='submit' name='post' class='mainoption' value='".$lang["Submit"]."' accesskey='s' />
    </form></span>";
    }
    
    $template->assign_vars(array(
    'QUICK_REPLY_FORM' => $quick_reply_form)
    );
    //
    // END Quick Reply Mod
    //
    
    #
    #-----[ отваряте ]----------------------------------
    #
    lang_main.php
    
    #
    #-----[ намирате ]----------------------------------
    #
    //
    // That's all Folks!
    
    #
    #-----[ преди него добавяте ]-----------------
    #
    // Quick Reply Mod
    $lang['Quick_Reply'] = 'Бърз отговор';
    $lang['Quick_quote'] = 'мнение след последното съобщение';
    
    #
    #-----[ отваряте ]----------------------------------
    #
    viewtopic_body.tpl
    
    #
    #-----[ намирате ]----------------------------------
    #
    {S_TOPIC_ADMIN}
    
    #
    #-----[ след него добавяте ]------------------
    #
    {QUICK_REPLY_FORM}
    
    
    #
    #-----[ Това е Успех ]------------------------------
    #

    Оставете коментар