Changes in [2278:e4c8da04bec4:2398:c06651a81e7e]
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
locales/en/main.po
r1836 r2397 193 193 msgstr "" 194 194 195 msgid "Title (optional)" 196 msgstr "" 197 195 198 msgid "Title, Date" 196 199 msgstr "" -
plugins/blogroll/_widgets.php
r1179 r2397 20 20 { 21 21 $w->create('links',__('Blogroll'),array('tplBlogroll','linksWidget'),null,'Blogroll list'); 22 $w->links->setting('title',__('Title :'),__('Links'));22 $w->links->setting('title',__('Title (optional)').' :',__('Links')); 23 23 24 24 $br = new dcBlogroll($GLOBALS['core']->blog); … … 41 41 ) 42 42 ); 43 $w->links-> setting('content_only',__('Content only'),0,'check');44 $w->links-> setting('class',__('CSS class:'),'');43 $w->links->advanced_setting('content_only','',0,'radio', array(array(__('Content only'), '1'), array(__('Enclosing div'), '0'))); 44 $w->links->advanced_setting('class',__('CSS class:'),''); 45 45 } 46 46 -
plugins/pages/_widgets.php
r1179 r2397 20 20 { 21 21 $w->create('pages',__('Pages'),array('tplPages','pagesWidget'),null,'List of published pages'); 22 $w->pages->setting('title',__('Title :'),__('Pages'));22 $w->pages->setting('title',__('Title (optional)').' :',__('Pages')); 23 23 $w->pages->setting('homeonly',__('Display on:'),1,'combo', 24 24 array( … … 38 38 array(__('Ascending') => 'asc', __('Descending') => 'desc') 39 39 ); 40 $w->pages-> setting('content_only',__('Content only'),0,'check');41 $w->pages-> setting('class',__('CSS class:'),'');40 $w->pages->advanced_setting('content_only','',0,'radio', array(array(__('Content only'), '1'), array(__('Enclosing div'), '0'))); 41 $w->pages->advanced_setting('class',__('CSS class:'),''); 42 42 } 43 43 -
plugins/simpleMenu/_widgets.php
r1179 r2397 19 19 { 20 20 $w->create('simplemenu',__('Simple menu'),array('tplSimpleMenu','simpleMenuWidget'),null,'List of simple menu items'); 21 $w->simplemenu->setting('title',__('Title :'),__('Menu'));21 $w->simplemenu->setting('title',__('Title (optional)').' :',__('Menu')); 22 22 $w->simplemenu->setting('homeonly',__('Display on:'),0,'combo', 23 23 array( … … 27 27 ) 28 28 ); 29 $w->simplemenu-> setting('content_only',__('Content only'),0,'check');30 $w->simplemenu-> setting('class',__('CSS class:'),'');29 $w->simplemenu->advanced_setting('content_only','',0,'radio', array(array(__('Content only'), '1'), array(__('Enclosing div'), '0'))); 30 $w->simplemenu->advanced_setting('class',__('CSS class:'),''); 31 31 } 32 32 } -
plugins/tags/_widgets.php
r1179 r2397 20 20 { 21 21 $w->create('tags',__('Tags'),array('tplTags','tagsWidget'),null,'Tags cloud'); 22 $w->tags->setting('title',__('Title :'),__('Tags'));22 $w->tags->setting('title',__('Title (optional)').' :',__('Tags')); 23 23 $w->tags->setting('limit',__('Limit (empty means no limit):'),'20'); 24 24 $w->tags->setting('sortby',__('Order by:'),'meta_id_lower','combo', … … 36 36 ) 37 37 ); 38 $w->tags-> setting('content_only',__('Content only'),0,'check');39 $w->tags-> setting('class',__('CSS class:'),'');38 $w->tags->advanced_setting('content_only','',0,'radio', array(array(__('Content only'), '1'), array(__('Enclosing div'), '0'))); 39 $w->tags->advanced_setting('class',__('CSS class:'),''); 40 40 } 41 41 -
plugins/widgets/_default_widgets.php
r2198 r2398 19 19 20 20 $__widgets->create('search',__('Search engine'),array('defaultWidgets','search'),null,'Search engine form'); 21 $__widgets->search->setting('title',__('Title :'),__('Search'));21 $__widgets->search->setting('title',__('Title (optional)').' :',__('Search')); 22 22 $__widgets->search->setting('homeonly',__('Display on:'),0,'combo', 23 23 array(__('All pages') => 0, __('Home page only') => 1, __('Except on home page') => 2)); 24 $__widgets->search-> setting('content_only',__('Content only'),0,'check');25 $__widgets->search-> setting('class',__('CSS class:'),'');24 $__widgets->search->advanced_setting('content_only','',0,'radio', array(array(__('Content only'), '1'), array(__('Enclosing div'), '0'))); 25 $__widgets->search->advanced_setting('class',__('CSS class:'),''); 26 26 27 27 $__widgets->create('navigation',__('Navigation links'),array('defaultWidgets','navigation'),null,'List of navigation links'); 28 $__widgets->navigation->setting('title',__('Title :'),'');28 $__widgets->navigation->setting('title',__('Title (optional)').' :',''); 29 29 $__widgets->navigation->setting('homeonly',__('Display on:'),0,'combo', 30 30 array(__('All pages') => 0, __('Home page only') => 1, __('Except on home page') => 2)); 31 $__widgets->navigation-> setting('content_only',__('Content only'),0,'check');32 $__widgets->navigation-> setting('class',__('CSS class:'),'');31 $__widgets->navigation->advanced_setting('content_only','',0,'radio', array(array(__('Content only'), '1'), array(__('Enclosing div'), '0'))); 32 $__widgets->navigation->advanced_setting('class',__('CSS class:'),''); 33 33 34 34 $__widgets->create('bestof',__('Selected entries'),array('defaultWidgets','bestof'),null,'List of selected entries'); 35 $__widgets->bestof->setting('title',__('Title :'),__('Best of me'));35 $__widgets->bestof->setting('title',__('Title (optional)').' :',__('Best of me')); 36 36 $__widgets->bestof->setting('orderby',__('Sort:'),'asc','combo',array(__('Ascending') => 'asc', __('Descending') => 'desc')); 37 37 $__widgets->bestof->setting('homeonly',__('Display on:'),1,'combo', 38 38 array(__('All pages') => 0, __('Home page only') => 1, __('Except on home page') => 2)); 39 $__widgets->bestof-> setting('content_only',__('Content only'),0,'check');40 $__widgets->bestof-> setting('class',__('CSS class:'),'');39 $__widgets->bestof->advanced_setting('content_only','',0,'radio', array(array(__('Content only'), '1'), array(__('Enclosing div'), '0'))); 40 $__widgets->bestof->advanced_setting('class',__('CSS class:'),''); 41 41 42 42 $__widgets->create('langs',__('Blog languages'),array('defaultWidgets','langs'),null,'List of available languages'); 43 $__widgets->langs->setting('title',__('Title :'),__('Languages'));43 $__widgets->langs->setting('title',__('Title (optional)').' :',__('Languages')); 44 44 $__widgets->langs->setting('homeonly',__('Display on:'),1,'combo', 45 45 array(__('All pages') => 0, __('Home page only') => 1, __('Except on home page') => 2)); 46 $__widgets->langs-> setting('content_only',__('Content only'),0,'check');47 $__widgets->langs-> setting('class',__('CSS class:'),'');46 $__widgets->langs->advanced_setting('content_only','',0,'radio', array(array(__('Content only'), '1'), array(__('Enclosing div'), '0'))); 47 $__widgets->langs->advanced_setting('class',__('CSS class:'),''); 48 48 49 49 $__widgets->create('categories',__('Categories'),array('defaultWidgets','categories'),null,'List of categories'); 50 $__widgets->categories->setting('title',__('Title :'),__('Categories'));50 $__widgets->categories->setting('title',__('Title (optional)').' :',__('Categories')); 51 51 $__widgets->categories->setting('postcount',__('With entries counts'),0,'check'); 52 52 $__widgets->categories->setting('subcatscount', __('Include sub cats in count'), false, 'check'); … … 54 54 $__widgets->categories->setting('homeonly',__('Display on:'),0,'combo', 55 55 array(__('All pages') => 0, __('Home page only') => 1, __('Except on home page') => 2)); 56 $__widgets->categories-> setting('content_only',__('Content only'),0,'check');57 $__widgets->categories-> setting('class',__('CSS class:'),'');56 $__widgets->categories->advanced_setting('content_only','',0,'radio', array(array(__('Content only'), '1'), array(__('Enclosing div'), '0'))); 57 $__widgets->categories->advanced_setting('class',__('CSS class:'),''); 58 58 59 59 $__widgets->create('subscribe',__('Subscribe links'),array('defaultWidgets','subscribe'),null,'RSS or Atom feed subscription links'); 60 $__widgets->subscribe->setting('title',__('Title :'),__('Subscribe'));60 $__widgets->subscribe->setting('title',__('Title (optional)').' :',__('Subscribe')); 61 61 $__widgets->subscribe->setting('type',__('Feeds type:'),'atom','combo',array('Atom' => 'atom', 'RSS' => 'rss2')); 62 62 $__widgets->subscribe->setting('homeonly',__('Display on:'),1,'combo', 63 63 array(__('All pages') => 0, __('Home page only') => 1, __('Except on home page') => 2)); 64 $__widgets->subscribe-> setting('content_only',__('Content only'),0,'check');65 $__widgets->subscribe-> setting('class',__('CSS class:'),'');64 $__widgets->subscribe->advanced_setting('content_only','',0,'radio', array(array(__('Content only'), '1'), array(__('Enclosing div'), '0'))); 65 $__widgets->subscribe->advanced_setting('class',__('CSS class:'),''); 66 66 67 $__widgets->create('feed',__('Feed reader'),array('defaultWidgets','feed'),null,'Last entries from feed ');68 $__widgets->feed->setting('title',__('Title :'),__('Somewhere else'));67 $__widgets->create('feed',__('Feed reader'),array('defaultWidgets','feed'),null,'Last entries from feed ( RSS or Atom )'); 68 $__widgets->feed->setting('title',__('Title (optional)').' :',__('Somewhere else')); 69 69 $__widgets->feed->setting('url',__('Feed URL:'),''); 70 70 $__widgets->feed->setting('limit',__('Entries limit:'),10); 71 71 $__widgets->feed->setting('homeonly',__('Display on:'),1,'combo', 72 72 array(__('All pages') => 0, __('Home page only') => 1, __('Except on home page') => 2)); 73 $__widgets->feed-> setting('content_only',__('Content only'),0,'check');74 $__widgets->feed-> setting('class',__('CSS class:'),'');73 $__widgets->feed->advanced_setting('content_only','',0,'radio', array(array(__('Content only'), '1'), array(__('Enclosing div'), '0'))); 74 $__widgets->feed->advanced_setting('class',__('CSS class:'),''); 75 75 76 76 $__widgets->create('text',__('Text'),array('defaultWidgets','text'),null,'Simple text'); 77 $__widgets->text->setting('title',__('Title :'),'');77 $__widgets->text->setting('title',__('Title (optional)').' :',''); 78 78 $__widgets->text->setting('text',__('Text:'),'','textarea'); 79 79 $__widgets->text->setting('homeonly',__('Display on:'),0,'combo', 80 80 array(__('All pages') => 0, __('Home page only') => 1, __('Except on home page') => 2)); 81 $__widgets->text-> setting('content_only',__('Content only'),0,'check');82 $__widgets->text-> setting('class',__('CSS class:'),'');81 $__widgets->text->advanced_setting('content_only','',0,'radio', array(array(__('Content only'), '1'), array(__('Enclosing div'), '0'))); 82 $__widgets->text->advanced_setting('class',__('CSS class:'),''); 83 83 84 84 $__widgets->create('lastposts',__('Last entries'),array('defaultWidgets','lastposts'),null,'List of last entries published'); 85 $__widgets->lastposts->setting('title',__('Title :'),__('Last entries'));85 $__widgets->lastposts->setting('title',__('Title (optional)').' :',__('Last entries')); 86 86 $rs = $core->blog->getCategories(array('post_type'=>'post')); 87 87 $categories = array('' => '', __('Uncategorized') => 'null'); … … 97 97 $__widgets->lastposts->setting('homeonly',__('Display on:'),1,'combo', 98 98 array(__('All pages') => 0, __('Home page only') => 1, __('Except on home page') => 2)); 99 $__widgets->lastposts-> setting('content_only',__('Content only'),0,'check');100 $__widgets->lastposts-> setting('class',__('CSS class:'),'');99 $__widgets->lastposts->advanced_setting('content_only','',0,'radio', array(array(__('Content only'), '1'), array(__('Enclosing div'), '0'))); 100 $__widgets->lastposts->advanced_setting('class',__('CSS class:'),''); 101 101 102 102 $__widgets->create('lastcomments',__('Last comments'),array('defaultWidgets','lastcomments'),null,'List of last comments posted'); 103 $__widgets->lastcomments->setting('title',__('Title :'),__('Last comments'));103 $__widgets->lastcomments->setting('title',__('Title (optional)').' :',__('Last comments')); 104 104 $__widgets->lastcomments->setting('limit',__('Comments limit:'),10); 105 105 $__widgets->lastcomments->setting('homeonly',__('Display on:'),1,'combo', 106 106 array(__('All pages') => 0, __('Home page only') => 1, __('Except on home page') => 2)); 107 $__widgets->lastcomments-> setting('content_only',__('Content only'),0,'check');108 $__widgets->lastcomments-> setting('class',__('CSS class:'),'');107 $__widgets->lastcomments->advanced_setting('content_only','',0,'radio', array(array(__('Content only'), '1'), array(__('Enclosing div'), '0'))); 108 $__widgets->lastcomments->advanced_setting('class',__('CSS class:'),''); 109 109 110 110 # --BEHAVIOR-- initWidgets -
plugins/widgets/class.widgets.php
r1474 r2395 139 139 public $append_callback = null; 140 140 private $settings = array(); 141 private $advance_id; 142 private $advanced_settings = array(); 141 143 142 144 public function serialize($order) { … … 144 146 foreach ($this->settings as $k=>$v) 145 147 $values[$k]=$v['value']; 148 foreach ($this->advanced_settings as $k=>$v) 149 $values[$k]=$v['value']; 146 150 $values['id']=$this->id; 147 151 $values['order']=$order; … … 189 193 public function __get($n) 190 194 { 195 $setting = null; 191 196 if (isset($this->settings[$n])) { 192 return $this->settings[$n]['value']; 193 } 194 return null; 197 $setting = $this->settings[$n]['value']; 198 } else if (isset($this->advanced_settings[$n])) { 199 $setting = $this->advanced_settings[$n]['value']; 200 } 201 return $setting; 195 202 } 196 203 … … 199 206 if (isset($this->settings[$n])) { 200 207 $this->settings[$n]['value'] = $v; 208 } else if (isset($this->advanced_settings[$n])) { 209 $this->advanced_settings[$n]['value'] = $v; 201 210 } 202 211 } … … 222 231 } 223 232 233 public function advanced_setting($name,$title,$value,$type='text') 234 { 235 if ($type == 'combo' || $type == 'radio') { 236 $options = @func_get_arg(4); 237 if (!is_array($options)) { 238 return false; 239 } 240 } 241 242 $this->advanced_settings[$name] = array( 243 'title' => $title, 244 'type' => $type, 245 'value' => $value 246 ); 247 248 if (isset($options)) { 249 $this->advanced_settings[$name]['options'] = $options; 250 } 251 } 252 253 public function advance_settings() 254 { 255 return $this->advanced_settings; 256 } 257 224 258 public function settings() 225 259 { … … 232 266 foreach ($this->settings as $id => $s) 233 267 { 234 $wfid = "wf-".$i; 235 $iname = $pr ? $pr.'['.$id.']' : $id; 236 switch ($s['type']) 268 $res .= $this->formSetting($id,$s,$pr,$i=0); 269 $i++; 270 } 271 272 if ( count($this->advanced_settings) > 0 ) 273 { 274 $res .= '<div class="widgetAdvancedSettings">'; 275 $res .= '<h5>'.__('Réglages avancés').'</h5>'; 276 277 foreach ($this->advanced_settings as $id => $s) 237 278 { 238 case 'text': 239 $res .= 240 '<p><label for="'.$wfid.'">'.$s['title'].'</label> '. 241 form::field(array($iname,$wfid),20,255,html::escapeHTML($s['value']),'maximal'). 242 '</p>'; 243 break; 244 case 'textarea': 245 $res .= 246 '<p><label for="'.$wfid.'">'.$s['title'].'</label> '. 247 form::textarea(array($iname,$wfid),30,5,html::escapeHTML($s['value']),'maximal'). 248 '</p>'; 249 break; 250 case 'check': 251 $res .= 252 '<p>'.form::hidden(array($iname),'0'). 253 '<label class="classic" for="'.$wfid.'">'. 254 form::checkbox(array($iname,$wfid),'1',$s['value']).' '.$s['title']. 255 '</label></p>'; 256 break; 257 case 'combo': 258 $res .= 259 '<p><label for="'.$wfid.'">'.$s['title'].'</label> '. 260 form::combo(array($iname,$wfid),$s['options'],$s['value']). 261 '</p>'; 262 break; 263 } 264 $i++; 279 $res .= $this->formSetting($id,$s,$pr,$i); 280 $i++; 281 } 282 283 $res .= '</div>'; 284 } 285 286 return $res; 287 } 288 289 public function formSetting($id,$s,$pr='',&$i=0) 290 { 291 $res = ''; 292 $wfid = "wf-".$i; 293 $iname = $pr ? $pr.'['.$id.']' : $id; 294 switch ($s['type']) 295 { 296 case 'text': 297 $res .= 298 '<p><label for="'.$wfid.'">'.$s['title'].'</label> '. 299 form::field(array($iname,$wfid),20,255,html::escapeHTML($s['value']),'maximal'). 300 '</p>'; 301 break; 302 case 'textarea': 303 $res .= 304 '<p><label for="'.$wfid.'">'.$s['title'].'</label> '. 305 form::textarea(array($iname,$wfid),30,5,html::escapeHTML($s['value']),'maximal'). 306 '</p>'; 307 break; 308 case 'check': 309 $res .= 310 '<p>'.form::hidden(array($iname),'0'). 311 '<label class="classic" for="'.$wfid.'">'. 312 form::checkbox(array($iname,$wfid),'1',$s['value']).' '.$s['title']. 313 '</label></p>'; 314 break; 315 case 'radio': 316 $res .= '<p>'.($s['title'] ? '<label class="classic">'.$s['title'].'</label><br/>' : ''); 317 if(!empty($s['options'])) { 318 foreach ($s['options'] as $k => $v) { 319 $res .= $k > 0 ? '<br/>' : ''; 320 $res .= 321 '<label class="classic" for="'.$wfid.'-'.$k.'">'. 322 form::radio(array($iname,$wfid.'-'.$k),$v[1],$s['value'] == $v[1]).' '.$v[0]. 323 '</label>'; 324 } 325 } 326 $res .= '</p>'; 327 break; 328 case 'combo': 329 $res .= 330 '<p><label for="'.$wfid.'">'.$s['title'].'</label> '. 331 form::combo(array($iname,$wfid),$s['options'],$s['value']). 332 '</p>'; 333 break; 265 334 } 266 335 -
plugins/widgets/dragdrop.js
r1766 r2395 27 27 handle: ".widget-name", 28 28 placeholder: "ui-sortable-placeholder", 29 items: "li:not(.sortable-delete-placeholder )",29 items: "li:not(.sortable-delete-placeholder,.empty-widgets)", 30 30 connectWith: ".connected, .sortable-delete", 31 31 start: function( event, ui ) { … … 43 43 44 44 // signale les zones vides 45 if( ul.find('li').length == 0 ) 46 field.find('.empty-widgets').show(); 47 else field.find('.empty-widgets').hide(); 45 if( ul.find('li:not(.empty-widgets)').length == 0 ) { 46 ul.find('li.empty-widgets').show(); 47 field.find('ul.sortable-delete').hide(); 48 } else { 49 ul.find('li.empty-widgets').hide(); 50 field.find('ul.sortable-delete').show(); 51 } 48 52 49 53 // remove … … 95 99 } 96 100 }); 97 $("li.ui-draggable, ul.ui-sortable li").css({'cursor':'move'}); 101 102 $("li.ui-draggable, ul.ui-sortable li") 103 .not('ul.sortable-delete li, li.empty-widgets') 104 .css({'cursor':'move'}); 98 105 }); -
plugins/widgets/index.php
r2256 r2398 13 13 14 14 include dirname(__FILE__).'/_default_widgets.php'; 15 16 # Loading navigation, extra widgets and custom widgets17 $widgets_nav = null;18 if ($core->blog->settings->widgets->widgets_nav) {19 $widgets_nav = dcWidgets::load($core->blog->settings->widgets->widgets_nav);20 }21 $widgets_extra = null;22 if ($core->blog->settings->widgets->widgets_extra) {23 $widgets_extra = dcWidgets::load($core->blog->settings->widgets->widgets_extra);24 }25 $widgets_custom = null;26 if ($core->blog->settings->widgets->widgets_custom) {27 $widgets_custom = dcWidgets::load($core->blog->settings->widgets->widgets_custom);28 }29 30 $append_combo = array(31 '-' => 0,32 __('navigation') => 'nav',33 __('extra') => 'extra',34 __('custom') => 'custom'35 );36 37 function literalNullString($v)38 {39 if ($v == '') {40 return '<'.__('empty string').'>';41 }42 return $v;43 }44 45 # Adding widgets to sidebars46 if (!empty($_POST['append']) && is_array($_POST['addw']))47 {48 # Filter selection49 $addw = array();50 foreach ($_POST['addw'] as $k => $v) {51 if (($v == 'extra' || $v == 'nav' || $v == 'custom') && $__widgets->{$k} !== null ) {52 $addw[$k] = $v;53 }54 }55 56 # Append widgets57 if (!empty($addw))58 {59 if (!($widgets_nav instanceof dcWidgets)) {60 $widgets_nav = new dcWidgets;61 }62 if (!($widgets_extra instanceof dcWidgets)) {63 $widgets_extra = new dcWidgets();64 }65 if (!($widgets_custom instanceof dcWidgets)) {66 $widgets_custom = new dcWidgets();67 }68 69 foreach ($addw as $k => $v)70 {71 switch ($v) {72 case 'nav':73 $widgets_nav->append($__widgets->{$k});74 break;75 case 'extra':76 $widgets_extra->append($__widgets->{$k});77 break;78 case 'custom':79 $widgets_custom->append($__widgets->{$k});80 break;81 }82 }83 84 try {85 $core->blog->settings->addNamespace('widgets');86 $core->blog->settings->widgets->put('widgets_nav',$widgets_nav->store());87 $core->blog->settings->widgets->put('widgets_extra',$widgets_extra->store());88 $core->blog->settings->widgets->put('widgets_custom',$widgets_custom->store());89 $core->blog->triggerBlog();90 http::redirect($p_url);91 } catch (Exception $e) {92 $core->error->add($e->getMessage());93 }94 }95 }96 97 # Update sidebars98 if (!empty($_POST['wup']))99 {100 if (!isset($_POST['w']) || !is_array($_POST['w'])) {101 $_POST['w'] = array();102 }103 104 try105 {106 # Removing mark as _rem widgets107 foreach ($_POST['w'] as $nsid => $nsw) {108 foreach ($nsw as $i => $v) {109 if (!empty($v['_rem'])) {110 unset($_POST['w'][$nsid][$i]);111 continue;112 }113 }114 }115 116 if (!isset($_POST['w']['nav'])) {117 $_POST['w']['nav'] = array();118 }119 if (!isset($_POST['w']['extra'])) {120 $_POST['w']['extra'] = array();121 }122 if (!isset($_POST['w']['custom'])) {123 $_POST['w']['custom'] = array();124 }125 126 $widgets_nav = dcWidgets::loadArray($_POST['w']['nav'],$__widgets);127 $widgets_extra = dcWidgets::loadArray($_POST['w']['extra'],$__widgets);128 $widgets_custom = dcWidgets::loadArray($_POST['w']['custom'],$__widgets);129 130 $core->blog->settings->addNamespace('widgets');131 $core->blog->settings->widgets->put('widgets_nav',$widgets_nav->store());132 $core->blog->settings->widgets->put('widgets_extra',$widgets_extra->store());133 $core->blog->settings->widgets->put('widgets_custom',$widgets_custom->store());134 $core->blog->triggerBlog();135 136 http::redirect($p_url);137 }138 catch (Exception $e)139 {140 $core->error->add($e->getMessage());141 }142 }143 elseif (!empty($_POST['wreset']))144 {145 try146 {147 $core->blog->settings->addNamespace('widgets');148 $core->blog->settings->widgets->put('widgets_nav','');149 $core->blog->settings->widgets->put('widgets_extra','');150 $core->blog->settings->widgets->put('widgets_custom','');151 $core->blog->triggerBlog();152 153 http::redirect($p_url);154 }155 catch (Exception $e)156 {157 $core->error->add($e->getMessage());158 }159 }160 15 ?> 161 16 <html> … … 187 42 <body> 188 43 <?php 44 # Loading navigation, extra widgets and custom widgets 45 $widgets_nav = null; 46 if ($core->blog->settings->widgets->widgets_nav) { 47 $widgets_nav = dcWidgets::load($core->blog->settings->widgets->widgets_nav); 48 } 49 $widgets_extra = null; 50 if ($core->blog->settings->widgets->widgets_extra) { 51 $widgets_extra = dcWidgets::load($core->blog->settings->widgets->widgets_extra); 52 } 53 $widgets_custom = null; 54 if ($core->blog->settings->widgets->widgets_custom) { 55 $widgets_custom = dcWidgets::load($core->blog->settings->widgets->widgets_custom); 56 } 57 58 $append_combo = array( 59 '-' => 0, 60 __('navigation') => 'nav', 61 __('extra') => 'extra', 62 __('custom') => 'custom' 63 ); 64 65 function literalNullString($v) 66 { 67 if ($v == '') { 68 return '<'.__('empty string').'>'; 69 } 70 return $v; 71 } 72 73 # Adding widgets to sidebars 74 if (!empty($_POST['append']) && is_array($_POST['addw'])) 75 { 76 # Filter selection 77 $addw = array(); 78 foreach ($_POST['addw'] as $k => $v) { 79 if (($v == 'extra' || $v == 'nav' || $v == 'custom') && $__widgets->{$k} !== null ) { 80 $addw[$k] = $v; 81 } 82 } 83 84 # Append 1 widget 85 $wid = false; 86 if( gettype($_POST['append']) == 'array' && count($_POST['append']) == 1 ) { 87 $wid = array_keys($_POST['append']); 88 $wid = $wid[0]; 89 } 90 91 # Append widgets 92 if (!empty($addw)) 93 { 94 if (!($widgets_nav instanceof dcWidgets)) { 95 $widgets_nav = new dcWidgets; 96 } 97 if (!($widgets_extra instanceof dcWidgets)) { 98 $widgets_extra = new dcWidgets(); 99 } 100 if (!($widgets_custom instanceof dcWidgets)) { 101 $widgets_custom = new dcWidgets(); 102 } 103 104 foreach ($addw as $k => $v) 105 { 106 if( !$wid || $wid == $k ) 107 { 108 switch ($v) { 109 case 'nav': 110 $widgets_nav->append($__widgets->{$k}); 111 break; 112 case 'extra': 113 $widgets_extra->append($__widgets->{$k}); 114 break; 115 case 'custom': 116 $widgets_custom->append($__widgets->{$k}); 117 break; 118 } 119 } 120 121 } 122 123 try { 124 $core->blog->settings->addNamespace('widgets'); 125 $core->blog->settings->widgets->put('widgets_nav',$widgets_nav->store()); 126 $core->blog->settings->widgets->put('widgets_extra',$widgets_extra->store()); 127 $core->blog->settings->widgets->put('widgets_custom',$widgets_custom->store()); 128 $core->blog->triggerBlog(); 129 http::redirect($p_url); 130 } catch (Exception $e) { 131 $core->error->add($e->getMessage()); 132 } 133 } 134 } 135 136 # Update sidebars 137 if (!empty($_POST['wup'])) 138 { 139 if (!isset($_POST['w']) || !is_array($_POST['w'])) { 140 $_POST['w'] = array(); 141 } 142 143 try 144 { 145 # Removing mark as _rem widgets 146 foreach ($_POST['w'] as $nsid => $nsw) { 147 foreach ($nsw as $i => $v) { 148 if (!empty($v['_rem'])) { 149 unset($_POST['w'][$nsid][$i]); 150 continue; 151 } 152 } 153 } 154 155 if (!isset($_POST['w']['nav'])) { 156 $_POST['w']['nav'] = array(); 157 } 158 if (!isset($_POST['w']['extra'])) { 159 $_POST['w']['extra'] = array(); 160 } 161 if (!isset($_POST['w']['custom'])) { 162 $_POST['w']['custom'] = array(); 163 } 164 165 $widgets_nav = dcWidgets::loadArray($_POST['w']['nav'],$__widgets); 166 $widgets_extra = dcWidgets::loadArray($_POST['w']['extra'],$__widgets); 167 $widgets_custom = dcWidgets::loadArray($_POST['w']['custom'],$__widgets); 168 169 $core->blog->settings->addNamespace('widgets'); 170 $core->blog->settings->widgets->put('widgets_nav',$widgets_nav->store()); 171 $core->blog->settings->widgets->put('widgets_extra',$widgets_extra->store()); 172 $core->blog->settings->widgets->put('widgets_custom',$widgets_custom->store()); 173 $core->blog->triggerBlog(); 174 175 http::redirect($p_url); 176 } 177 catch (Exception $e) 178 { 179 $core->error->add($e->getMessage()); 180 } 181 } 182 elseif (!empty($_POST['wreset'])) 183 { 184 try 185 { 186 $core->blog->settings->addNamespace('widgets'); 187 $core->blog->settings->widgets->put('widgets_nav',''); 188 $core->blog->settings->widgets->put('widgets_extra',''); 189 $core->blog->settings->widgets->put('widgets_custom',''); 190 $core->blog->triggerBlog(); 191 192 http::redirect($p_url); 193 } 194 catch (Exception $e) 195 { 196 $core->error->add($e->getMessage()); 197 } 198 } 199 /*?> 200 <html> 201 <head> 202 <title><?php echo __('Widgets'); ?></title> 203 <style type="text/css"> 204 <?php echo file_get_contents(dirname(__FILE__).'/style.css'); ?> 205 </style> 206 <?php 207 echo 208 dcPage::jsLoad('js/jquery/jquery-ui.custom.js'). 209 dcPage::jsLoad('index.php?pf=widgets/widgets.js'); 210 ?> 211 <?php 212 $core->auth->user_prefs->addWorkspace('accessibility'); 213 $user_dm_nodragdrop = $core->auth->user_prefs->accessibility->nodragdrop; 214 ?> 215 <?php if (!$user_dm_nodragdrop) : ?> 216 <script type="text/javascript" src="index.php?pf=widgets/dragdrop.js"></script> 217 <?php endif; ?> 218 <script type="text/javascript"> 219 //<![CDATA[ 220 <?php echo dcPage::jsVar('dotclear.msg.confirm_widgets_reset', 221 __('Are you sure you want to reset sidebars?')); ?> 222 //]]> 223 </script> 224 <?php echo(dcPage::jsConfirmClose('sidebarsWidgets')); ?> 225 </head> 226 <body> 227 <?php*/ 189 228 echo dcPage::breadcrumb( 190 229 array( … … 198 237 '<form id="listWidgets" action="'.$p_url.'" method="post" class="widgets">'. 199 238 '<h3>'.__('Available widgets').'</h3>'. 200 '<p>'.__(' Move widgets from this list to one of the sidebars.').'</p>'.239 '<p>'.__('Drag widgets from this list to one of the sidebars, for add.').'</p>'. 201 240 '<ul id="widgets-ref">'; 202 241 … … 208 247 ($w->desc() != '' ? ' <span class="form-note">'.__($w->desc()).'</span>' : '').'</p>'. 209 248 '<p class="manual-move remove-if-drag"><label class="classic">'.__('Append to:').'</label> '. 210 form::combo(array('addw['.$w->id().']'),$append_combo).'</p>'. 249 form::combo(array('addw['.$w->id().']'),$append_combo). 250 '<input type="submit" name="append['.$w->id().']" value="'.__('Add').'" /></p>'. 211 251 '<div class="widgetSettings hidden-if-drag">'.$w->formSettings('w[void][0]',$j).'</div>'. 212 252 '</li>'; … … 323 363 } 324 364 325 $res .= '<p class="empty-widgets" '.(!$widgets->isEmpty() ? 'style="display: none;"' : '').'>'.__('No widget.').'</p>';326 327 365 $res .= '<ul id="'.$id.'" class="connected">'; 366 367 $res .= '<li class="empty-widgets" '.(!$widgets->isEmpty() ? 'style="display: none;"' : '').'>'.__('No widget for now.').'</li>'; 328 368 329 369 $i = 0; … … 347 387 348 388 $res .= '</ul>'; 349 350 if ($i > 0) { 351 $res .= '<ul class="sortable-delete"><li class="sortable-delete-placeholder">'. 352 __('Drag widgets here to remove them from this sidebar.').'</li></ul>'; 353 } 389 390 $res .= '<ul class="sortable-delete"'.($i > 0 ? '':' style="display: none;"').'><li class="sortable-delete-placeholder">'. 391 __('Drag widgets here to remove.').'</li></ul>'; 354 392 355 393 return $res; -
plugins/widgets/style.css
r1669 r2395 38 38 margin-bottom: 1em; 39 39 list-style: none; 40 } 41 #dndnav > li.empty-widgets, 42 #dndextra > li.empty-widgets, 43 #dndcustom > li.empty-widgets { 44 border: 0; 40 45 } 41 46 #dndnav > li.ui-sortable-placeholder,
Note: See TracChangeset
for help on using the changeset viewer.