Dotclear


Ignore:
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • locales/en/main.po

    r1836 r2397  
    193193msgstr "" 
    194194 
     195msgid "Title (optional)" 
     196msgstr "" 
     197 
    195198msgid "Title, Date" 
    196199msgstr "" 
  • plugins/blogroll/_widgets.php

    r1179 r2397  
    2020     { 
    2121          $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')); 
    2323           
    2424          $br = new dcBlogroll($GLOBALS['core']->blog); 
     
    4141                    ) 
    4242          ); 
    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:'),''); 
    4545     } 
    4646      
  • plugins/pages/_widgets.php

    r1179 r2397  
    2020     { 
    2121          $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')); 
    2323          $w->pages->setting('homeonly',__('Display on:'),1,'combo', 
    2424               array( 
     
    3838               array(__('Ascending') => 'asc', __('Descending') => 'desc') 
    3939          ); 
    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:'),''); 
    4242     } 
    4343      
  • plugins/simpleMenu/_widgets.php

    r1179 r2397  
    1919     { 
    2020          $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')); 
    2222          $w->simplemenu->setting('homeonly',__('Display on:'),0,'combo', 
    2323               array( 
     
    2727                    ) 
    2828          ); 
    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:'),''); 
    3131     } 
    3232} 
  • plugins/tags/_widgets.php

    r1179 r2397  
    2020     { 
    2121          $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')); 
    2323          $w->tags->setting('limit',__('Limit (empty means no limit):'),'20'); 
    2424          $w->tags->setting('sortby',__('Order by:'),'meta_id_lower','combo', 
     
    3636                    ) 
    3737          ); 
    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:'),''); 
    4040     } 
    4141      
  • plugins/widgets/_default_widgets.php

    r2198 r2398  
    1919 
    2020$__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')); 
    2222$__widgets->search->setting('homeonly',__('Display on:'),0,'combo', 
    2323     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:'),''); 
    2626 
    2727$__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)').' :',''); 
    2929$__widgets->navigation->setting('homeonly',__('Display on:'),0,'combo', 
    3030     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:'),''); 
    3333 
    3434$__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')); 
    3636$__widgets->bestof->setting('orderby',__('Sort:'),'asc','combo',array(__('Ascending') => 'asc', __('Descending') => 'desc')); 
    3737$__widgets->bestof->setting('homeonly',__('Display on:'),1,'combo', 
    3838     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:'),''); 
    4141 
    4242$__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')); 
    4444$__widgets->langs->setting('homeonly',__('Display on:'),1,'combo', 
    4545     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:'),''); 
    4848 
    4949$__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')); 
    5151$__widgets->categories->setting('postcount',__('With entries counts'),0,'check'); 
    5252$__widgets->categories->setting('subcatscount', __('Include sub cats in count'), false, 'check'); 
     
    5454$__widgets->categories->setting('homeonly',__('Display on:'),0,'combo', 
    5555     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:'),''); 
    5858 
    5959$__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')); 
    6161$__widgets->subscribe->setting('type',__('Feeds type:'),'atom','combo',array('Atom' => 'atom', 'RSS' => 'rss2')); 
    6262$__widgets->subscribe->setting('homeonly',__('Display on:'),1,'combo', 
    6363     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:'),''); 
    6666 
    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')); 
    6969$__widgets->feed->setting('url',__('Feed URL:'),''); 
    7070$__widgets->feed->setting('limit',__('Entries limit:'),10); 
    7171$__widgets->feed->setting('homeonly',__('Display on:'),1,'combo', 
    7272     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:'),''); 
    7575 
    7676$__widgets->create('text',__('Text'),array('defaultWidgets','text'),null,'Simple text'); 
    77 $__widgets->text->setting('title',__('Title:'),''); 
     77$__widgets->text->setting('title',__('Title (optional)').' :',''); 
    7878$__widgets->text->setting('text',__('Text:'),'','textarea'); 
    7979$__widgets->text->setting('homeonly',__('Display on:'),0,'combo', 
    8080     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:'),''); 
    8383 
    8484$__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')); 
    8686$rs = $core->blog->getCategories(array('post_type'=>'post')); 
    8787$categories = array('' => '', __('Uncategorized') => 'null'); 
     
    9797$__widgets->lastposts->setting('homeonly',__('Display on:'),1,'combo', 
    9898     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:'),''); 
    101101 
    102102$__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')); 
    104104$__widgets->lastcomments->setting('limit',__('Comments limit:'),10); 
    105105$__widgets->lastcomments->setting('homeonly',__('Display on:'),1,'combo', 
    106106     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:'),''); 
    109109 
    110110# --BEHAVIOR-- initWidgets 
  • plugins/widgets/class.widgets.php

    r1474 r2395  
    139139     public $append_callback = null; 
    140140     private $settings = array(); 
     141     private $advance_id; 
     142     private $advanced_settings = array(); 
    141143      
    142144     public function serialize($order) { 
     
    144146          foreach ($this->settings as $k=>$v) 
    145147               $values[$k]=$v['value']; 
     148          foreach ($this->advanced_settings as $k=>$v) 
     149               $values[$k]=$v['value']; 
    146150          $values['id']=$this->id; 
    147151          $values['order']=$order; 
     
    189193     public function __get($n) 
    190194     { 
     195          $setting = null; 
    191196          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; 
    195202     } 
    196203      
     
    199206          if (isset($this->settings[$n])) { 
    200207               $this->settings[$n]['value'] = $v; 
     208          } else if (isset($this->advanced_settings[$n])) { 
     209               $this->advanced_settings[$n]['value'] = $v; 
    201210          } 
    202211     } 
     
    222231     } 
    223232      
     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      
    224258     public function settings() 
    225259     { 
     
    232266          foreach ($this->settings as $id => $s) 
    233267          { 
    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) 
    237278               { 
    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; 
    265334          } 
    266335           
  • plugins/widgets/dragdrop.js

    r1766 r2395  
    2727          handle: ".widget-name", 
    2828          placeholder: "ui-sortable-placeholder", 
    29           items: "li:not(.sortable-delete-placeholder)", 
     29          items: "li:not(.sortable-delete-placeholder,.empty-widgets)", 
    3030          connectWith: ".connected, .sortable-delete", 
    3131          start: function( event, ui ) { 
     
    4343                
    4444               // 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               } 
    4852                
    4953               // remove 
     
    9599          } 
    96100     }); 
    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'}); 
    98105}); 
  • plugins/widgets/index.php

    r2256 r2398  
    1313 
    1414include dirname(__FILE__).'/_default_widgets.php'; 
    15  
    16 # Loading navigation, extra widgets and custom widgets 
    17 $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 '&lt;'.__('empty string').'&gt;'; 
    41      } 
    42      return $v; 
    43 } 
    44  
    45 # Adding widgets to sidebars 
    46 if (!empty($_POST['append']) && is_array($_POST['addw'])) 
    47 { 
    48      # Filter selection 
    49      $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 widgets 
    57      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 sidebars 
    98 if (!empty($_POST['wup'])) 
    99 { 
    100      if (!isset($_POST['w']) || !is_array($_POST['w'])) { 
    101           $_POST['w'] = array(); 
    102      } 
    103       
    104      try 
    105      { 
    106           # Removing mark as _rem widgets 
    107           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      try 
    146      { 
    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 } 
    16015?> 
    16116<html> 
     
    18742<body> 
    18843<?php 
     44# Loading navigation, extra widgets and custom widgets 
     45$widgets_nav = null; 
     46if ($core->blog->settings->widgets->widgets_nav) { 
     47     $widgets_nav = dcWidgets::load($core->blog->settings->widgets->widgets_nav); 
     48} 
     49$widgets_extra = null; 
     50if ($core->blog->settings->widgets->widgets_extra) { 
     51     $widgets_extra = dcWidgets::load($core->blog->settings->widgets->widgets_extra); 
     52} 
     53$widgets_custom = null; 
     54if ($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 
     65function literalNullString($v) 
     66{ 
     67     if ($v == '') { 
     68          return '&lt;'.__('empty string').'&gt;'; 
     69     } 
     70     return $v; 
     71} 
     72 
     73# Adding widgets to sidebars 
     74if (!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 
     137if (!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} 
     182elseif (!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*/ 
    189228echo dcPage::breadcrumb( 
    190229     array( 
     
    198237'<form id="listWidgets" action="'.$p_url.'" method="post"  class="widgets">'. 
    199238'<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>'. 
    201240'<ul id="widgets-ref">'; 
    202241 
     
    208247     ($w->desc() != '' ? ' <span class="form-note">'.__($w->desc()).'</span>' : '').'</p>'. 
    209248     '<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>'. 
    211251     '<div class="widgetSettings hidden-if-drag">'.$w->formSettings('w[void][0]',$j).'</div>'. 
    212252     '</li>'; 
     
    323363     } 
    324364      
    325      $res .= '<p class="empty-widgets" '.(!$widgets->isEmpty() ? 'style="display: none;"' : '').'>'.__('No widget.').'</p>'; 
    326       
    327365     $res .= '<ul id="'.$id.'" class="connected">'; 
     366      
     367     $res .= '<li class="empty-widgets" '.(!$widgets->isEmpty() ? 'style="display: none;"' : '').'>'.__('No widget for now.').'</li>'; 
    328368      
    329369     $i = 0; 
     
    347387      
    348388     $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>'; 
    354392      
    355393     return $res; 
  • plugins/widgets/style.css

    r1669 r2395  
    3838     margin-bottom: 1em; 
    3939     list-style: none; 
     40} 
     41#dndnav > li.empty-widgets, 
     42#dndextra > li.empty-widgets, 
     43#dndcustom > li.empty-widgets { 
     44     border: 0; 
    4045} 
    4146#dndnav > li.ui-sortable-placeholder, 
Note: See TracChangeset for help on using the changeset viewer.

Sites map