I have managed to find a script that will save the position of
portlets, but to one column only - plus it wont allow me to connect to
another column. I need to be able to drag over to other columns and
save their order. Can anyone help? Here is my code...

<script type="text/javascript">
/////////////////////////////////////////////////////////////////
/////  Set cookie for sidebar portlets  //////////////////////
/////////////////////////////////////////////////////////////////

// set the list selector
var setSelector = ".column";
// set the cookie name
var setCookieName = "portletOrder";
// set the cookie expiry time (days):
var setCookieExpiry = 30;

////////////////////////////////////////////////////////////////

// function that writes the list order to a cookie
function getOrder() {
        // save custom order to cookie
        $.cookie(setCookieName, $(setSelector).sortable("toArray"),
{ expires: setCookieExpiry, path: "/" });
}

// function that restores the list order from a cookie
function restoreOrder() {

        var div = $(setSelector);
        if (div == null) return

        // fetch the cookie value (saved order)
        var cookie = $.cookie(setCookieName);
        if (!cookie) return;

        // make array from saved order
        var IDs = cookie.split(",");

        // fetch current order
        var items = div.sortable("toArray");
        // make array from current order
        var rebuild = new Array();
        for ( var v=0, len=items.length; v<len; v++ ){
                rebuild[items[v]] = items[v];
        }

        for (var i = 0, n = IDs.length; i < n; i++) {

                // item id from saved order
                var itemID = IDs[i];

                if (itemID in rebuild) {

                        // select item id from current order
                        var item = rebuild[itemID];

                        // select the item according to current order
                        var child = $("div.ui-sortable").children("#"
+ item);

                        // select the item according to the saved
order
                        var savedOrd = $("div.ui-sortable").children
("#" + itemID);

                        // remove all the items
                        child.remove();

                        // add the items in turn according to saved
order we need to filter here since the "ui-sortable"
                        // class is applied to all ul elements and we
only want the very first!
                        $("div.ui-sortable").filter(":first").append
(savedOrd);
                }
        }
}

// code executed when the document loads
$(function () {
                $(setSelector).sortable({
                        update: function() {getOrder(); }
                });
                restoreOrder();
                // here, we reload the saved order

                $(".portlet").addClass("ui-widget ui-widget-content ui-
helper-clearfix ui-corner-all")
                        .find(".portlet-header")
                                .addClass("ui-widget-header ui-corner-
all")
                                .prepend('')
                                .end()
                        .find(".portlet-content");

                        $(".portlet-header .ui-icon").click(function()
{
                        $(this).toggleClass("ui-icon-minus");
                        $(this).toggleClass("ui-icon-plus");
                        $(this).parents(".portlet:first").find
(".portlet-content").toggle();

                });
                $(".portlet-header .ui-icon").hover(
                        function() {$(this).addClass("ui-icon-
hover"); },
                        function() {$(this).removeClass('ui-icon-
hover'); }
                );
});
        </script>
</head>
<div id="wideSidebar" class="column">

  <div class="sidebarBox portlet" id="item-1">
        <h2 class="portlet-header">Header 1</h2>
         fdssdsd
        </div>

        <div class="sidebarBox portlet" id="item-2">
    <h2 class="portlet-header">Header 2</h2>
            fsdsdfsfsd
        </div>

  <div class="sidebarBox portlet" id="item-3">
    <h2 class="portlet-header">Header 3</h2>
            <div class="portlet-content">
fdsfsdfsdfsd            </div>
        </div>
</div> <div id="wideSidebar2" class="column">

<div class="sidebarBox portlet" id="item-4">
        <h2 class="portlet-header">Header 4</h2>
            <ul class="guideListing portlet-content">
            <li>Content 1 list</li>
            </ul>
        </div>

  <div class="sidebarBox portlet" id="item-5">
    <h2 class="portlet-header">Header 5</h2>
            <ul class="portlet-content">
            <li>Content 2 list</li>
            </ul>
        </div>

  <div class="sidebarBox portlet" id="item-6">
    <h2 class="portlet-header">Header 6</h2>
            <div class="portlet-content">
                             Content 3
            </div>
        </div>
</div>





On Oct 2, 12:08 am, craigeves <craige...@googlemail.com> wrote:
> Please can someone help?
>
> I am using the jQuery UI (sortable) Portlets code - but I want to use
> the jQuery cookies plugin to remember the order of the portlets. I
> don't know where to start - and searching the net for an answer only
> brings up sortable ul and li.
>
> Please help.
>
> Code:
> <script type="text/javascript">
>         $(function() {
>                 $(".column").sortable({
>                         connectWith: '.column'
>                 });
>
>                 $(".column").disableSelection();
>         });
>     </script>
>
> HTML:
> <div class="column">
>     <div class="portlet">
>       <div class="portlet-header ui-state-disabled">Feeds</div>
>       <div class="portlet-content">Lorem ipsum dolor sit amet,
> consectetuer adipiscing elit. Lorem ipsum dolor sit amet, consectetuer
> adipiscing elit. Lorem ipsum dolor sit amet, consectetuer adipiscing
> elit.</div>
>     </div>
>     <div class="portlet">
>       <div class="portlet-header">News</div>
>       <div class="portlet-content">Lorem ipsum dolor sit amet,
> consectetuer adipiscing elit. Lorem ipsum dolor sit amet, consectetuer
> adipiscing elit. Lorem ipsum dolor sit amet, consectetuer adipiscing
> elit.</div>
>     </div>
>   </div>
>   <div class="column">
>     <div class="portlet">
>       <div class="portlet-header">Shopping</div>
>       <div class="portlet-content">Lorem ipsum dolor sit amet,
> consectetuer adipiscing elit. Lorem ipsum dolor sit amet, consectetuer
> adipiscing elit. Lorem ipsum dolor sit amet, consectetuer adipiscing
> elit.</div>
>     </div>
>   </div>
>   <div class="column">
>     <div class="portlet">
>       <div class="portlet-header">Links</div>
>       <div class="portlet-content">Lorem ipsum dolor sit amet,
> consectetuer adipiscing elit. Lorem ipsum dolor sit amet, consectetuer
> adipiscing elit. Lorem ipsum dolor sit amet, consectetuer adipiscing
> elit.</div>
>     </div>
>     <div class="portlet">
>       <div class="portlet-header">Images</div>
>       <div class="portlet-content">Lorem ipsum dolor sit amet,
> consectetuer adipiscing elit. Lorem ipsum dolor sit amet, consectetuer
> adipiscing elit. Lorem ipsum dolor sit amet, consectetuer adipiscing
> elit.</div>
>     </div>
>   </div>

Reply via email to