10 // Load Elgg framework
11 @require_once
("../../includes.php");
13 // We need to be logged on for this!
18 define("context","widget");
19 $top_bit_template = <<<END
21 <script type="text/javascript" src="{$CFG->wwwroot}mod/yui/build/yahoo/yahoo.js" ></script>
22 <script type="text/javascript" src="{$CFG->wwwroot}mod/yui/build/event/event.js" ></script>
23 <script type="text/javascript" src="{$CFG->wwwroot}mod/yui/build/dom/dom.js"></script>
25 <script type="text/javascript" src="{$CFG->wwwroot}mod/yui/build/dragdrop/dragdrop-min.js" ></script>
26 <script type="text/javascript" src="{$CFG->wwwroot}mod/yui/build/connection/connection.js" ></script>
28 <script type="text/javascript" src="js/DDList_kj.js" ></script>
30 <script type="text/javascript">
31 var user_id = {$_SESSION['userid']};
32 var wwwroot = '$CFG->wwwroot';
34 YAHOO.example.DDApp = function() {
40 new YAHOO.example.DDListBoundary("hidden1");
41 new YAHOO.example.DDListBoundary("hidden2");
42 new YAHOO.example.DDListBoundary("hidden3");
43 new YAHOO.example.DDListBoundary("garbage");
45 YAHOO.util.DDM.getElement('hidden2').column = 0;
46 //YAHOO.util.DDM.getElement('hidden2').did = 100000;
47 YAHOO.util.DDM.getElement('hidden3').column = 1;
48 // YAHOO.util.DDM.getElement('hidden3').did = 100000;
53 YAHOO.util.Event.addListener(window, "load", YAHOO.example.DDApp.init);
54 // YAHOO.util.DDM.useCache = false;
56 function handle_widget_start_edit(el) {
57 id = el.id.substring(4);
59 current_el.className = 'sortList';
61 el.className = 'sortListCurrent';
63 YAHOO.util.Connect.asyncRequest('GET', wwwroot+'mod/widget/ajax_start_edit_widget.php?id='+id, { success:start_edit_successHandler, failure:start_edit_failureHandler });
67 function start_edit_successHandler(o) {
68 var root = o.responseXML.documentElement;
69 var oForm = root.getElementsByTagName('edit_form')[0].firstChild.nodeValue;
71 YAHOO.util.DDM.getElement('formarea').innerHTML = '<p>'+ oForm + "</p>";
74 function start_edit_failureHandler(o){
75 YAHOO.util.DDM.getElement('formarea').innerHTML = "Cannot get edit form: "+o.status + " " + o.statusText;
78 function handle_widget_edit() {
79 YAHOO.util.Connect.setForm('widget_edit_form');
80 YAHOO.util.Connect.asyncRequest('POST', wwwroot+'mod/widget/edit.php', { success:edit_successHandler, failure:edit_failureHandler });
84 function edit_successHandler(o) {
85 var root = o.responseXML.documentElement;
86 //var oResult = root.getElementsByTagName('result')[0].firstChild.nodeValue;
87 YAHOO.util.DDM.getElement('formarea').innerHTML = '<p>Saved widget.</p>';
90 function edit_failureHandler(o){
91 YAHOO.util.DDM.getElement('formarea').innerHTML = o.status + " " + o.statusText;
94 function handle_widget_move(id,id_before,new_column) {
95 if (id_before[0] == 'h') {
98 extra = '&where=before&id2='+id_before.substring(4);
101 YAHOO.util.Connect.asyncRequest('GET', wwwroot+'mod/widget/ajax_move_widget.php?id='+id.substring(4)+'&column='+new_column+extra, { success:move_successHandler, failure:move_failureHandler });
105 function move_successHandler(o) {
106 // no need to do anything
109 function move_failureHandler(o){
110 YAHOO.util.DDM.getElement('formarea').innerHTML = "Move failed: "+o.status + " " + o.statusText;
113 function handle_widget_delete(el) {
114 if (current_el == el) {
122 YAHOO.util.Connect.asyncRequest('GET', wwwroot+'mod/widget/ajax_delete_widget.php?id='+id.substring(4), { success:delete_successHandler, failure:delete_failureHandler });
126 function delete_successHandler(o) {
127 YAHOO.util.DDM.getElement('formarea').innerHTML = '<p>Deleted widget.</p>';
130 function delete_failureHandler(o){
131 YAHOO.util.DDM.getElement('formarea').innerHTML = "Delete failed: "+o.status + " " + o.statusText;
136 <style type="text/css">
142 border: 1px solid #ccc;
143 background-color: #eee;
146 .sortListHidden { height:10px; font-size:14px; visibility:hidden; }
148 .sortListWorking { cursor:move; font-size:14px; background-color: #FFFF00;}
154 border: 1px solid #ccc;
155 background-color: #ccc;
160 list-style-type: none;
164 list-style-type: none;
165 padding: 4px 4px 10px 4px;
169 font-family: Arial, sans-serif;
170 border: 1px solid #ccc;
184 margin:10px 40px 10px 40px;
187 border:1px solid #ccc;
193 $explanation = "<p style=\"height:156px;\"><img src=\"{$CFG->wwwroot}mod/template/images/widgets.gif\" alt=\"widgets layout\" align=\"right\">" .__gettext("Hover your mouse over the name of each widget to find out more about it. Drag widgets from the widgets column into either profile column. You can also move widgets around within the profile columns. Edit any widget by clicking on it.")."</p>";
194 $widget_template = <<<END
196 <form name="dragDropForm" action="javscript:;">
197 <div id="manage-widgets">
200 <td><h2>Available widgets</h2></td>
202 <td><h2>Your left column</h2></td>
204 <td><h2>Your right column</h2></td>
208 <ul class="listGroup1">
209 <li id="hidden6" class="sortListHidden">Hidden</li>
211 <li id="hidden1" class="sortListHidden">Hidden</li>
218 <ul class="listGroup1">
219 <li id="hidden5" class="sortListHidden">Hidden</li>
221 <li id="hidden2" class="sortListHidden">Hidden</li>
223 <ul class="listGroup1">
224 <li id="garbage"><img src="{$CFG->wwwroot}mod/widget/images/delete.gif" width="16" height="16"></li>
230 <ul class="listGroup1">
231 <li id="hidden4" class="sortListHidden">Hidden</li>
233 <li id="hidden3" class="sortListHidden">Hidden</li>
241 <div id="formarea"></div>
244 $widget_list_element_template = '<li alt="%s" title="%s" id="wli_%s" class="sortList">%s</li>';
245 $column_list_element_template = '<li alt="%s" title="%s" id="eli_%s" class="sortList">%s</li>';
249 if (is_array($CFG->widgets
->list) && !empty($CFG->widgets
->list)) {
250 foreach($CFG->widgets
->list as $widget) {
251 if (!$widget['type']) {
252 $widget['type'] = $widget['id'];
254 $widget_list .= sprintf($widget_list_element_template,$widget['description'],$widget['description'],$widget['type'],$widget['name']);
255 $do_init .= 'new YAHOO.example.DDList("wli_'.$widget['type'].'");'."\n";
259 $first_column_list = '';
261 if ($widgets = widget_for_user($_SESSION['userid'],'profile',0,0)) {
262 foreach($widgets as $widget) {
265 foreach($CFG->widgets
->list as $widget_class) {
266 if ($widget_class['type'] == $widget->type
) {
267 $name = $widget_class['name'];
268 $description = $widget_class['description'];
272 $first_column_list .= sprintf($column_list_element_template,$description,$description,$widget->ident
,$name);
273 $do_init .= 'new YAHOO.example.DDList("eli_'.$widget->ident
.'");'."\n";
274 //$do_init .= 'YAHOO.util.DDM.getElement("eli_'.$widget->ident.'").did='.$widget->display_order.';'."\n";
275 $do_init .= 'YAHOO.util.DDM.getElement("eli_'.$widget->ident
.'").column=0;'."\n";
279 $second_column_list = '';
281 if ($widgets = widget_for_user($_SESSION['userid'],'profile',0,1)) {
282 foreach($widgets as $widget) {
285 foreach($CFG->widgets
->list as $widget_class) {
286 if ($widget_class['type'] == $widget->type
) {
287 $name = $widget_class['name'];
288 $description = $widget_class['description'];
292 $second_column_list .= sprintf($column_list_element_template,$description,$description,$widget->ident
,$name);
293 $do_init .= 'new YAHOO.example.DDList("eli_'.$widget->ident
.'");'."\n";
294 //$do_init .= 'YAHOO.util.DDM.getElement("eli_'.$widget->ident.'").did='.$widget->display_order.';'."\n";
295 $do_init .= 'YAHOO.util.DDM.getElement("eli_'.$widget->ident
.'").column=1;'."\n";
299 $title = __gettext("Manage Widgets");
300 $body = sprintf($top_bit_template,$do_init).sprintf($widget_template,$widget_list,$first_column_list,$second_column_list);
303 $body = __gettext("You must be logged-in to manage your widgets");
306 // Output to the screen
307 $body = templates_draw(array(
308 'context' => 'contentholder',
314 echo templates_page_draw( array(