119 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 	function admin_widgets_head() {
 | |
| 		echo '<script type="text/javascript" src="'.BLOG_BASEURL.ADMIN_DIR.'panels/widgets/admin.widgets.js"></script>';
 | |
| 	}
 | |
| 	add_action('wp_footer', 'admin_widgets_head');
 | |
| 	
 | |
|  
 | |
|  	class admin_widgets_default extends AdminPanelAction {
 | |
| 	 
 | |
| 		//var $validators =  array(array('content', 'content', 'notEmpty', false, false));
 | |
| 		var $events = array('save');
 | |
| 		
 | |
| 		
 | |
| 		function get_widget_lists($wlist, $wpos, &$widget_list, $registered_w, $add_empties) {
 | |
| 		
 | |
| 			if (!isset($wlist[$wpos]))
 | |
| 				return;
 | |
| 		
 | |
| 			$widget_list[$wpos] = array();
 | |
| 		
 | |
| 			foreach($wlist[$wpos] as $idx => $wdg) {
 | |
| 					
 | |
| 					$widget_list[$wpos][$idx] = array();
 | |
| 					
 | |
| 					@list($newid, $params) = explode(":", $wdg);
 | |
| 					
 | |
| 					$widget_list[$wpos][$idx]['id'] = $newid;
 | |
| 					
 | |
| 					
 | |
| 					if (isset($registered_w[$newid])){
 | |
| 						$thiswdg =& $registered_w[$newid];
 | |
| 						
 | |
| 						$widget_list[$wpos][$idx]['name'] = $thiswdg['name'];
 | |
| 						
 | |
| 						if ($thiswdg['nparams'] > 0) {
 | |
| 							$widget_list[$wpos][$idx]['params'] = $params;
 | |
| 						}
 | |
| 						
 | |
| 						/*
 | |
| 						 *	here should go the check for
 | |
| 						 *	limited parameters: parameters limited to a 
 | |
| 						 *	particular set would mean using a <select> control
 | |
| 						 * 	in the template
 | |
| 						 *
 | |
| 						 */
 | |
| 					
 | |
| 					} else {
 | |
| 					
 | |
| 						$widget_list[$wpos][$idx]['name'] = $newid;
 | |
| 						$widget_list[$wpos][$idx]['class'] = 'warnings';
 | |
| 						
 | |
| 					}
 | |
| 				}
 | |
| 				
 | |
| 			
 | |
| 			if (!$widget_list[$wpos] && !$add_empties)	
 | |
| 				unset($widget_list[$wpos]);
 | |
| 			
 | |
| 		
 | |
| 		}
 | |
| 		
 | |
| 		function main() {
 | |
| 		
 | |
| 		
 | |
| 			lang_load('admin.widgets');
 | |
| 			$this->smarty->assign('warnings', admin_widgets_checkall());
 | |
| 			global $fp_widgets;
 | |
| 			
 | |
| 			
 | |
| 			$registered_w = get_registered_widgets();
 | |
| 			$registered_ws = get_registered_widgetsets(null);
 | |
| 			$this->smarty->assign('fp_registered_widgets', $registered_w);
 | |
| 			
 | |
| 			
 | |
| 			$wlist = $fp_widgets->getList();
 | |
| 			$widget_list = array();
 | |
| 			
 | |
| 			foreach($registered_ws as $wpos) {
 | |
| 				
 | |
| 				$widget_list[$wpos] = array();
 | |
| 				
 | |
| 				$this->get_widget_lists($wlist, $wpos, $widget_list, $registered_w, true);
 | |
| 				
 | |
| 				unset($wlist[$wpos]);
 | |
| 				
 | |
| 			}
 | |
| 			
 | |
| 			$oldwidget_list = array();
 | |
| 			foreach($wlist as $wpos => $c){
 | |
| 				$this->get_widget_lists($wlist, $wpos, $oldwidget_list, $registered_w, false);
 | |
| 			}
 | |
| 			
 | |
| 			$this->smarty->assign('widgetlist', $widget_list);
 | |
| 			$this->smarty->assign('oldwidgetlist', $oldwidget_list);
 | |
| 			
 | |
| 		
 | |
| 			$conf = io_load_file(CONFIG_DIR . 'widgets.conf.php');
 | |
| 			
 | |
| 			$this->smarty->assign('pluginconf', $conf);
 | |
| 			
 | |
| 			return 0;
 | |
| 			
 | |
| 			
 | |
| 		}
 | |
| 		
 | |
| 
 | |
| 		function onsave() {
 | |
| 		
 | |
| 			$fp_widgets = isset($_POST['widgets'])? $_POST['widgets'] : array(); 			
 | |
| 			$success = system_save(CONFIG_DIR . 'widgets.conf.php', compact('fp_widgets'));
 | |
| 
 | |
| 			$this->smarty->assign('success', ( $success )? 1 : -1 );
 | |
| 			
 | |
| 			return 1;
 | |
| 			
 | |
| 		}
 | |
| 	
 | |
| 	}
 | |
| ?>
 | 
