Can't add hyperlinks in posts.

Found a bug? Tell us!!
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Okay, the file sizes do appear correctly to me. Have you check the JavaScript console of your browser?

Can you view the HTML source of the page were the WYSIWYG editor should appear, and see if the Spawn javascript functions appear there?

Regards,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
leonardb
Regular
Posts: 53
Joined: Fri Jan 14, 2005 10:27 pm

Post by leonardb »

Javascript is fine, no errors.. im using firefox.

here is the page sources info.

Code: Select all

<html>
<head>
    <title>Serendipity Authoring Suite</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <link rel="stylesheet" type="text/css" href="serendipity.css.php" />

</head>

<body class="s9y_wrap" id="serendipity_admin_entries_page" onload="if (self.Spawnextended) { Spawnextended(); } if (self.Spawnbody) { Spawnbody(); }">
    <div id="serendipity_banner">
        <h1>Le0NARD's Blah! Blah! Page ../</h1>

        <h2>Serendipity Authoring Suite (logged in as Le0NARD, level 255)</h2>
    </div>

    <table id="mainpane">
        <tr valign="top">
            <td id="serendipityLeftSideBar">
                <div class="serendipitySideBarItem">
                    <div class="serendipitySideBarTitle">Entries:</div>

                    <div class="serendipitySideBarContent">
                        • <a href="?serendipity[adminModule]=entries&serendipity[adminAction]=new">New entry</a><br />
                        • <a href="?serendipity[adminModule]=entries&serendipity[adminAction]=editSelect">Edit entries</a><br />
                        • <a href="?serendipity[adminModule]=comments">Comments</a><br />
                                                • <a href="?serendipity[adminModule]=event_display&serendipity[adminAction]=statistics">Statistics</a><br />

                    </div>
                </div>

                <div class="serendipitySideBarItem">
                    <div class="serendipitySideBarTitle">Categories:</div>
                    <div class="serendipitySideBarContent">
                        • <a href="?serendipity[adminModule]=category&serendipity[adminAction]=editSelect">Manage Categories</a><br />
                                            </div>

                </div>

                <div class="serendipitySideBarItem">
                    <div class="serendipitySideBarTitle">Media</div>
                    <div class="serendipitySideBarContent">
                        • <a href="?serendipity[adminModule]=images&serendipity[adminAction]=addSelect">Add media</a><br />
                        • <a href="?serendipity[adminModule]=images">Media library</a><br />

                                                • <a href="?serendipity[adminModule]=images&serendipity[adminAction]=directorySelect">Manage directories</a><br />
                                                • <a href="?serendipity[adminModule]=images&serendipity[adminAction]=sync" onclick="return confirm('WARNING:\nThis may take a long time if there are many images without thumbnails.');">Rebuild Thumbs</a><br />
                                            </div>
                </div>

                <div class="serendipitySideBarItem">
                    <div class="serendipitySideBarContent">

                        • <a href="serendipity_admin.php">Admin interface</a><br />
                        • <a href="http://www.leonarddbernstein.com/"                                 >Back to Weblog</a><br />
                        • <a href="?serendipity[adminModule]=logout"                                       >Logout</a><br />
                    </div>
                </div>
            </td>

            <td id="content">
                <div class="serendipity_Admin_title">Serendipity Authoring Suite</div>
                <div class="serendipity_Admin">
        <form action="?" method="post" name="serendipityEntry" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px">
                <input type="hidden" name="serendipity[action]" value="admin" />
        <input type="hidden" name="serendipity[adminModule]" value="entries" />
        <input type="hidden" name="serendipity[adminAction]" value="save" />
        <input type="hidden" name="serendipity[id]" value="" />

        <input type="hidden" name="serendipity[timestamp]" value="" />
        <input type="hidden" name="serendipity[preview]" value="false" />
        <table class="serendipityEntryEdit" border="0">
            <tr>
                <td>
                   <b>Title:</b>
                </td>
                <td colspan="2">

                    <table width="100%" cellspacing="0" cellpadding="0" border="0">
                        <tr>
                            <td><input type="text" name="serendipity[title]" value="" size="72" /></td>
                            <td align="right"><select name="serendipity[isdraft]">
                                <option  value="false"  selected="selected">Publish</option>                                <option  value="true"  >Draft</option>
                                </select>
                            </td>

                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td>
                    <b>Date:</b>
                </td>

                <td>
                    <input type="hidden" name="serendipity[chk_timestamp]" value="1105803272" />
                    <input type="text" name="serendipity[new_timestamp]" value="2005-01-15 10:34" />
                </td>
                <td align="right">
                    <a style="border:0; text-decoration: none" href="#" onclick="showItem('categoryselector'); return false" title="Toggle option"><img src="templates/default/img/plus.png" id="option_categoryselector" alt="+/-" border="0" /></a> <b>Category:</b> <select id="categoryselector" name="serendipity[categories][]" style="vertical-align: middle;" multiple="multiple">
    <option value="0">[No Category]</option>

<option value="2">Bored - Bored</option><option value="9">Cars - Cars</option><option value="12">Daily Post - Daily Post</option><option value="3">Ever Wonder? - Ever Wonder?</option><option value="15">EXCITED! - EXCITED!</option><option value="8">Friends & Family - Friends & Family</option><option value="21">Funnies - Funnies</option><option value="16">Guess What! - Guess What!</option><option value="13">Just Posting - Just Posting</option><option value="7">Life! - Life!</option><option value="4">My Kids - My Kids</option><option value="5">My Wife - My Wife</option><option value="19">Nextel & Communications - Nextel & Communications</option><option value="10">Pets - Pets</option><option value="22">Servers - Servers</option><option value="1">Tech Stuff - Tech Stuff</option><option value="18">The i-Net & It's People - The i-Net & It's People</option><option value="23">Things I Like - Things I Like</option><option value="14">Weekend Post - Weekend Post</option><option value="11">Where I Live - Where I Live</option><option value="17">Who Am I? - Who Am I?</option><option value="6">Work! - Work!</option></select>

                    <script type="text/javascript" language="JavaScript">

                    function toggle_extended(setCookie) {
                        var textarea = document.getElementById('serendipity[extended]');
                        var button   = document.getElementById('option_extended');
                        var tools    = document.getElementById('tools_extended');
                        if ( textarea.style.display == 'none' ) {
                            textarea.style.display = '';
                            tools.style.display = '';
                            button.src = 'templates/default/img/minus.png';
                            if (setCookie == true) {
                                document.cookie = 'serendipity[toggle_extended]=true;';
                            }
                        } else {
                            textarea.style.display = 'none';
                            tools.style.display = 'none';
                            button.src = 'templates/default/img/plus.png';
                            if (setCookie == true) {
                                document.cookie = 'serendipity[toggle_extended]=;';
                            }
                        }
                    }

                    var selector_toggle  = new Array();
                    var selector_store   = new Array();
                    var selector_restore = new Array();

                    function showItem(id) {
                        var selected = 0;
                        if (document.getElementById) {
                            el = document.getElementById(id);
                            if (selector_toggle[id] && selector_toggle[id] == 'off') {
                                selector_restore[id] = new Array();
                                if (selector_store[id] > 0) {
                                    el.size = selector_store[id];
                                } else {
                                    el.size = 1
                                }

                                selector_toggle[id] = 'on';

                                /* Show a normal dropdown */
                                if (el.multiple) {
                                    el.multiple = false;
                                }

                                /* Hack to make sure that when the single dropdown is shown, don't have multiple selections */
                                last = 0;
                                for (i=0; i< el.options.length; i++) {
                                    if (el.options[i].selected == true) selected++;

                                    if (selected > 1) {
                                        /* If there is more than one selected, we reset all those to false
                                           This is because otherwise the label will say 'No Category', but the categories will still be selected */
                                        for (j=0; j < el.options.length; j++) {
                                            /* Save selection in array to later restore them */
                                            if (el.options[j].selected == true) {
                                                el.options[j].selected = false;
                                                selector_restore[id][j] = 'on';
                                                last = j;
                                            } else {
                                                selector_restore[id][j] = false;
                                            }
                                        }

                                        el.selectedIndex = last;
                                        break;
                                    }
                                }

                                if (el.selectedIndex == -1) el.selectedIndex = 0;

                                document.getElementById('option_' + id).src = 'templates/default/img/plus.png';
                            } else {
                                selector_store[id] = el.size;
                                el.size = 23;
                                selector_toggle[id] = 'off';

                                /* Show multiple items */
                                el.multiple = true;

                                /* Restore previously selected items? */
                                for (i = 0; i < el.options.length; i++) {
                                    if (selector_restore && selector_restore[id] && selector_restore[id][i] && selector_restore[id][i] == 'on') {
                                        val = el.options[i].value;
                                        if (el.options[i].selected != true) {
                                            el.options[i].selected = true;
                                            // [TODO] IE Bug: Don't ask me why, but this restoring only works in Internet Explorer if you put this:
                                            // alert('it doesnt matter what, just the alert is important');
                                        }
                                    }
                                }

                                document.getElementById('option_' + id).src = 'templates/default/img/minus.png';
                            }
                        }
                    }

                    selector_toggle['categoryselector'] = 'off';
                    showItem('categoryselector');
                    </script>
                    </td>
            </tr>
            <tr>
            <td colspan="3"><b>Entry Body</b>

                </td>
            </tr>

            <tr>
                <td colspan="3">
                    <textarea style="width: 100%" name="serendipity[body]" id="serendipity[body]" cols="80" rows="20"></textarea>
                </td>
            </tr>

            <tr>
                <td colspan="3">
                    <table width="100%" cellpadding="0" cellspacing="0">

                        <tr>
                            <td align="left">
                                <input id="checkbox_allow_comments" type="checkbox" name="serendipity[allow_comments]" value="true"  checked="checked" /><label for="checkbox_allow_comments">Allow comments to this entry</label>
                            </td>
                            <td align="right" rowspan="2" valign="middle">
                                <input type="submit" value="- Preview -" style="font-weight: bold;" onclick="document.forms['serendipityEntry'].elements['serendipity[preview]'].value='true';" />
                                <input type="submit" value="- Save -" style="font-weight: bold;" />
                            </td>

                        </tr>
                        <tr>
                            <td align="left">
                                <input id="checkbox_moderate_comments" type="checkbox" name="serendipity[moderate_comments]" value="true"  /><label for="checkbox_moderate_comments">Comments & trackbacks to this entry requires moderation</label>
                            </td>
                        </tr>
                    </table>

                </td>
            </tr>

            <tr>
                <td colspan="2">
 <b>Extended Body</b></td>
                <td align="right">
                               </td>
            </tr>

            <tr>
                <td colspan="3">
                    <textarea style="width: 100%;" name="serendipity[extended]" id="serendipity[extended]" cols="80" rows="20"></textarea>
                </td>
            </tr>

            <tr>
                <td colspan="3">
                    <br />

                    <fieldset>
                        <legend><b>Advanced Options</b></legend>
                    <fieldset style="margin: 5px">
                        <legend>HTML Validator</legend>
                            <input style="margin: 0px; padding: 0px; vertical-align: bottom;" type="checkbox" name="serendipity[default_validate]" id="serendipity[default_validate]" value="true" checked="checked" />
                                <label style="vertical-align: bottom; margin: 0px; padding: 0px;" for="serendipity[default_validate]"> Show HTML-Validator on preview  </label>
                    </fieldset>

                    </fieldset>
                </td>
            </tr>
        </table>
    </form>
    <script type="text/javascript">
        _editor_url = "htmlarea/";
        _editor_lang = "en";
        var editorref = '';
    </script>
    <script type="text/javascript" src="htmlarea/htmlarea.js"></script>
    <script type="text/javascript" src="htmlarea/dialog.js"></script>

    <style  type="text/css">@import url(htmlarea/htmlarea.css);</style>
    <script type="text/javascript">
    // IF you want to enable HTMLArea's spellchecker, download the SpellChecker plugin from the HTMLArea homepage
    // (http://www.sourceforge.net/projects/itools-htmlarea) and uncomment the lines suffixed with ' // [SPELLCHECK]'
    // Note that the SpellChecker is a CGI-based application which needs setup in your Apache host ("Options +CGIExec")
    // Thanks to Randall for pointing this out!

    // HTMLArea.loadPlugin("SpellChecker"); // [SPELLCHECK]
    var editorbody = null; var configbody = null;
    function Spawnbody() {
        var editorbody    = new HTMLArea("serendipity[body]");
        var configbody    = editorbody.config;
        configbody.registerButton('image_selector', 'Manage images', 'htmlarea/images/ed_s9yimage.gif', false,
            function(editor, id) {
                window.open('serendipity_admin_image_selector.php?serendipity[textarea]=body', 'ImageSel', 'width=800,height=600,toolbar=no,scrollbars=1,scrollbars,resize=1,resizable=1');
                editorref = editorbody;
            }
        );
        configbody.toolbar.push([ "image_selector"]);
        configbody.cssFile = 'body {\n    font-size: 10pt;\n    padding: 10px;\n    color: #333333;\n    background-color: #FAFFFF;\n    font-size: 9.5pt;\n    font-weight: normal;\n    font-family: verdana, arial, geneva, helvetica, sans-serif;\n}\n\n/** Embedded images with the s9y image manager **/\n.serendipity_imageComment_center,\n.serendipity_imageComment_left,\n.serendipity_imageComment_right {\n    border: 1px solid black;\n    background-color: #EFEFEF;\n    margin: 3px;\n}\n\n.serendipity_imageComment_center {\n}\n\n.serendipity_imageComment_left {\n    float: left;\n}\n\n.serendipity_imageComment_right {\n    float: right;\n}\n\n.serendipity_imageComment_img,\n.serendipity_imageComment_img img {\n    margin: 0px;\n    padding: 0px;\n    border: 0px;\n}\n\n.serendipity_imageComment_txt {\n    margin: 0px;\n    padding: 3px;\n    clear: both;\n    font-size: 9pt;\n}\n\n';
        configbody.toolbar = [
            [ "fontname", "space",
              "fontsize", "space",
              "formatblock", "space",
              "bold", "italic", "underline", "strikethrough", "separator",
              "subscript", "superscript", "separator",
              "copy", "cut", "paste", "space", "undo", "redo" ],

            [ "justifyleft", "justifycenter", "justifyright", "justifyfull", "separator",
              "lefttoright", "righttoleft", "separator",
              "orderedlist", "unorderedlist", "outdent", "indent", "separator",
              "forecolor", "hilitecolor", "separator",
              "inserthorizontalrule", "createlink", "insertimage", "image_selector", "inserttable", "htmlmode", "separator",
              "popupeditor", "separator", "showhelp", "about" ]
        ];
        // editorbody.registerPlugin(SpellChecker);  // [SPELLCHECK]
        editorbody.generate();
        editorbody._textArea.className = 'serendipity_entry';
    }
    </script>
    <script type="text/javascript">
    // IF you want to enable HTMLArea's spellchecker, download the SpellChecker plugin from the HTMLArea homepage
    // (http://www.sourceforge.net/projects/itools-htmlarea) and uncomment the lines suffixed with ' // [SPELLCHECK]'
    // Note that the SpellChecker is a CGI-based application which needs setup in your Apache host ("Options +CGIExec")
    // Thanks to Randall for pointing this out!

    // HTMLArea.loadPlugin("SpellChecker"); // [SPELLCHECK]
    var editorextended = null; var configextended = null;
    function Spawnextended() {
        var editorextended    = new HTMLArea("serendipity[extended]");
        var configextended    = editorextended.config;
        configextended.registerButton('image_selector', 'Manage images', 'htmlarea/images/ed_s9yimage.gif', false,
            function(editor, id) {
                window.open('serendipity_admin_image_selector.php?serendipity[textarea]=extended', 'ImageSel', 'width=800,height=600,toolbar=no,scrollbars=1,scrollbars,resize=1,resizable=1');
                editorref = editorextended;
            }
        );
        configextended.toolbar.push([ "image_selector"]);
        configextended.cssFile = 'body {\n    font-size: 10pt;\n    padding: 10px;\n    color: #333333;\n    background-color: #FAFFFF;\n    font-size: 9.5pt;\n    font-weight: normal;\n    font-family: verdana, arial, geneva, helvetica, sans-serif;\n}\n\n/** Embedded images with the s9y image manager **/\n.serendipity_imageComment_center,\n.serendipity_imageComment_left,\n.serendipity_imageComment_right {\n    border: 1px solid black;\n    background-color: #EFEFEF;\n    margin: 3px;\n}\n\n.serendipity_imageComment_center {\n}\n\n.serendipity_imageComment_left {\n    float: left;\n}\n\n.serendipity_imageComment_right {\n    float: right;\n}\n\n.serendipity_imageComment_img,\n.serendipity_imageComment_img img {\n    margin: 0px;\n    padding: 0px;\n    border: 0px;\n}\n\n.serendipity_imageComment_txt {\n    margin: 0px;\n    padding: 3px;\n    clear: both;\n    font-size: 9pt;\n}\n\n';
        configextended.toolbar = [
            [ "fontname", "space",
              "fontsize", "space",
              "formatblock", "space",
              "bold", "italic", "underline", "strikethrough", "separator",
              "subscript", "superscript", "separator",
              "copy", "cut", "paste", "space", "undo", "redo" ],

            [ "justifyleft", "justifycenter", "justifyright", "justifyfull", "separator",
              "lefttoright", "righttoleft", "separator",
              "orderedlist", "unorderedlist", "outdent", "indent", "separator",
              "forecolor", "hilitecolor", "separator",
              "inserthorizontalrule", "createlink", "insertimage", "image_selector", "inserttable", "htmlmode", "separator",
              "popupeditor", "separator", "showhelp", "about" ]
        ];
        // editorextended.registerPlugin(SpellChecker);  // [SPELLCHECK]
        editorextended.generate();
        editorextended._textArea.className = 'serendipity_entry';
    }
    </script>
    <script type="text/javascript" language="JavaScript" src="serendipity_define.js.php"></script>    <script type="text/javascript" src="htmlarea/lang/<?php echo WYSIWYG_LANG; ?>.js"></script>    <script type="text/javascript" language="JavaScript" src="serendipity_editor.js"></script>                </div>

            </td>
        </tr>
    </table>
</body>
</html>
Thanks..
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Leonard, you seem to have not properly follow my instructions to modify your files.

The part of where you put the lang/WYSIWYGlang part (item 4 of my instrunctions) are too low in the flow of the htmlarea loading. Please put it where I described, and everything should work!

Regards,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
leonardb
Regular
Posts: 53
Joined: Fri Jan 14, 2005 10:27 pm

Post by leonardb »

i dont understand.. i have placed it where you stated..

the file name to start with is
serendipity_functions.inc.php

as per your instructions.. i placed it where it said to do so.

Code: Select all

serendipity_emit_htmlarea_code('serendipity[body]', 'body');
        serendipity_emit_htmlarea_code('serendipity[extended]', 'extended');
    }

    echo '    <script type="text/javascript" src="htmlarea/htmlarea.js"></script>';
    echo '    <script type="text/javascript" src="htmlarea/lang/<?php echo WYSIWYG_LANG; ?>.js"></script>';
    echo '    <script type="text/javascript" src="htmlarea/dialog.js"></script>';
where did i go wrong?
leonardb
Regular
Posts: 53
Joined: Fri Jan 14, 2005 10:27 pm

Post by leonardb »

garvin,

sorry .. just looking at the console i thought recent listing was on top, its not its on the bottom... i did find errors...

Error: HTMLArea.I18N has no properties
Source File: http://www.mydomain.com/htmlarea/htmlarea.js
Line: 297

in that file on that line is the following..

if (typeof HTMLArea.I18N.tooltips != "undefined") {

also the apache log shows..

/htmlarea/lang/%3C?php%20echo%20WYSIWYG_LANG;%20?%3E.js HTTP/1.1" 404 354

so its that single line .. i think

<script type="text/javascript" src="htmlarea/lang/<?php echo WYSIWYG_LANG; ?>.js"></script>';
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Okay, now it's plain for me to see the error.

Serendipity 0.7 seems to emit those <script> things within enclosing <?php and ?> tags, whereas 0.8 emits those outside of them.

Just modify your line:

Code: Select all

    echo '    <script type="text/javascript" src="htmlarea/lang/<?php echo WYSIWYG_LANG; ?>.js"></script>';
to this:

Code: Select all

    echo '    <script type="text/javascript" src="htmlarea/lang/' . WYSIWYG_LANG . '.js"></script>';
Regards,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
leonardb
Regular
Posts: 53
Joined: Fri Jan 14, 2005 10:27 pm

Post by leonardb »

all problems have been solved. I have also used your suggestion, via email and that worked also .. so im good to go ..

thanks garvin, you rock .. any way i can repay you? paypal donation to the site or weblog application?
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hehe, thanks a lot!

Don't feel pushed to contribute anything, but of course I am always glad if you like to do so. The probably best way to "repay" me is to get me something from my Amazon wishlisth (http://wishes.garv.info). However the site is in german and you'd need a credit card, so that doesn't work out for most english speaking donators.

In that case my paypal account is probably the easiest way to go: paypal (at) supergarv (dot) de. :-)

So, either way, I'd be happy if I get anything, but I don't mind if you don't. In the end, I do this just for fun and don't expect to get any goodies. :-)
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
leonardb
Regular
Posts: 53
Joined: Fri Jan 14, 2005 10:27 pm

Post by leonardb »

you do it just for fun, but you provide serious and urgent help... you dont get that many places.. your response time for a person doing this as "fun" is superb, good job .. expect a lil $$ from me via Paypal .. thanks..
Guest

Post by Guest »

i followed all your instructions. it works, but i get 4 javascript errors when loading the wysiwyg editor... any ideas what i did wrong?
leonardb
Regular
Posts: 53
Joined: Fri Jan 14, 2005 10:27 pm

Post by leonardb »

Anonymous wrote:i followed all your instructions. it works, but i get 4 javascript errors when loading the wysiwyg editor... any ideas what i did wrong?
Guest,

You'd be better of registering and then posting your exact erros that you are receiving ..

Lenny
steffi
Posts: 2
Joined: Sun Feb 20, 2005 1:04 am

Post by steffi »

Sorry, of course you are right...

The error that appears is:

Error (create select):
can't find the requested dropdown definition

FIXME:
unknown toolbar item: ordered list

each of them for two times.. then everything works, I think, but these error-messages are not normal, I think?!

Thank you for your help!
steffi
Posts: 2
Joined: Sun Feb 20, 2005 1:04 am

Post by steffi »

i already solved it.. but thank you for attention
Post Reply