1<?php 2 /** 3 * e107 website system 4 * 5 * Copyright (C) 2008-2016 e107 Inc (e107.org) 6 * Released under the terms and conditions of the 7 * GNU General Public License (http://www.gnu.org/licenses/gpl.txt) 8 * 9 */ 10 11// Generated e107 Plugin Admin Area 12 13require_once('../../class2.php'); 14if (!getperms('P') || !e107::isInstalled('newsfeed')) 15{ 16 e107::redirect('admin'); 17 exit; 18} 19 20e107::lan('newsfeed',true); 21 22 23define('NEWSFEED_LIST_CACHE_TAG', 'newsfeeds'.e_LAN."_"); 24define('NEWSFEED_NEWS_CACHE_TAG', 'newsfeeds_news_'.e_LAN."_"); 25 26 27class newsfeed_adminArea extends e_admin_dispatcher 28{ 29 30 protected $modes = array( 31 32 'main' => array( 33 'controller' => 'newsfeed_ui', 34 'path' => null, 35 'ui' => 'newsfeed_form_ui', 36 'uipath' => null 37 ), 38 39 40 ); 41 42 43 protected $adminMenu = array( 44 45 'main/list' => array('caption'=> LAN_MANAGE, 'perm' => 'P'), 46 'main/create' => array('caption'=> LAN_CREATE, 'perm' => 'P'), 47 48 // 'main/custom' => array('caption'=> 'Custom Page', 'perm' => 'P') 49 ); 50 51 protected $adminMenuAliases = array( 52 'main/edit' => 'main/list' 53 ); 54 55 protected $menuTitle = LAN_PLUGIN_NEWSFEEDS_NAME; 56} 57 58 59 60 61 62class newsfeed_ui extends e_admin_ui 63{ 64 65 protected $pluginTitle = LAN_PLUGIN_NEWSFEEDS_NAME; 66 protected $pluginName = 'newsfeed'; 67 // protected $eventName = 'newsfeed-newsfeed'; // remove comment to enable event triggers in admin. 68 protected $table = 'newsfeed'; 69 protected $pid = 'newsfeed_id'; 70 protected $perPage = 10; 71 protected $batchDelete = true; 72 protected $batchCopy = true; 73 // protected $sortField = 'somefield_order'; 74 // protected $orderStep = 10; 75 // protected $tabs = array('Tabl 1','Tab 2'); // Use 'tab'=>0 OR 'tab'=>1 in the $fields below to enable. 76 77 // protected $listQry = "SELECT * FROM `#tableName` WHERE field != '' "; // Example Custom Query. LEFT JOINS allowed. Should be without any Order or Limit. 78 79 protected $listOrder = 'newsfeed_id DESC'; 80 81 protected $fields = array ( 'checkboxes' => array ( 'title' => '', 'type' => null, 'data' => null, 'width' => '5%', 'thclass' => 'center', 'forced' => '1', 'class' => 'center', 'toggle' => 'e-multiselect', ), 82 'newsfeed_id' => array ( 'title' => LAN_ID, 'data' => 'int', 'width' => '5%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 83 'newsfeed_name' => array ( 'title' => LAN_TITLE, 'type' => 'text', 'data' => 'str', 'required'=>true, 'width' => 'auto', 'inline' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 84 'newsfeed_url' => array ( 'title' => LAN_URL, 'type' => 'url', 'data' => 'str', 'required'=>true, 'inline'=>true, 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => array('size'=>'xxlarge'), 'class' => 'left', 'thclass' => 'left', ), 85 'newsfeed_data' => array ( 'title' => LAN_DATA, 'type' => null, 'data' => false, 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 86 'newsfeed_description' => array ( 'title' => LAN_DESCRIPTION, 'type' => 'textarea', 'data' => 'str', 'width' => '40%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 87 'newsfeed_image' => array ( 'title' => NFLAN_11, 'type' => 'method', 'data' => 'str', 'width' => 'auto', 'help' => LAN_OPTIONAL, 'readParms' => 'thumb=80x80', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 88 89 'newsfeed_updateint' => array ( 'title' => NFLAN_18, 'type' => 'text', 'data' => 'int', 'inline'=>true, 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => array('default'=>3600), 'class' => 'left', 'thclass' => 'left', ), 90 'newsfeed_timestamp' => array ( 'title' => LAN_LAST_UPDATED, 'type' => 'method', 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), 91 92 'newsfeed_active' => array ( 'title' => NFLAN_12, 'type' => 'radio', 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => array('default'=>3, 'optArray'=>array(NFLAN_13,NFLAN_14,NFLAN_20,NFLAN_21)), 'class' => 'left', 'thclass' => 'left', ), 93 94 'newsfeed_showmenu' => array ( 'title' => NFLAN_45, 'type'=>'method', 'data'=>false, 'class'=>'center', 'thclass'=>'center' ), 95 'newsfeed_showmain' => array ( 'title' => NFLAN_46, 'type'=>'method', 'data'=>false, 'class'=>'center', 'thclass'=>'center'), 96 97 'options' => array ( 'title' => LAN_OPTIONS, 'type' => null, 'data' => null, 'width' => '8%', 'thclass' => 'center last', 'class' => 'center last', 'forced' => '1', ), 98 ); 99 100 protected $fieldpref = array('newsfeed_name', 'newsfeed_url', 'newsfeed_updateint', 'newsfeed_timestamp', 'newsfeed_active', 'newsfeed_showmenu', 'newsfeed_showmain'); 101 102 103 // protected $preftabs = array('General', 'Other' ); 104 protected $prefs = array( 105 ); 106 107 108 public function init() 109 { 110 if($this->getAction() == 'edit' || $this->getAction() == 'create') 111 { 112 $this->fields['newsfeed_updateint']['type'] = 'number'; 113 } 114 // Set drop-down values (if any). 115 116 } 117 118 119 // ------- Customize Create -------- 120 121 public function beforeCreate($new_data) 122 { 123 if(isset($new_data['newsfeed_showmenu'])) 124 { 125 $new_data['newsfeed_image'] = e107::getParser()->toDB($new_data['newsfeed_image'])."::".intval($new_data['newsfeed_showmenu'])."::".intval($new_data['newsfeed_showmain']); 126 } 127 128 $new_data['newsfeed_timestamp'] = 0; 129 130 return $new_data; 131 } 132 133 public function afterCreate($new_data, $old_data, $id) 134 { 135 // do something 136 e107::getCache()->clear(NEWSFEED_LIST_CACHE_TAG); 137 e107::getCache()->clear(NEWSFEED_NEWS_CACHE_TAG); 138 } 139 140 public function onCreateError($new_data, $old_data) 141 { 142 // do something 143 } 144 145 146 // ------- Customize Update -------- 147 148 public function beforeUpdate($new_data, $old_data, $id) 149 { 150 if(isset($new_data['newsfeed_showmenu'])) 151 { 152 $new_data['newsfeed_image'] = e107::getParser()->toDB($new_data['newsfeed_image'])."::".intval($new_data['newsfeed_showmenu'])."::".intval($new_data['newsfeed_showmain']); 153 154 } 155 156 $new_data['newsfeed_timestamp'] = 0; // reset so the feed data refreshes. 157 158 159 return $new_data; 160 } 161 162 public function afterUpdate($new_data, $old_data, $id) 163 { 164 // do something 165 e107::getCache()->clear(NEWSFEED_LIST_CACHE_TAG); 166 e107::getCache()->clear(NEWSFEED_NEWS_CACHE_TAG); 167 } 168 169 public function onUpdateError($new_data, $old_data, $id) 170 { 171 // do something 172 } 173 174 175 /* 176 // optional - a custom page. 177 public function customPage() 178 { 179 $text = 'Hello World!'; 180 return $text; 181 182 } 183 */ 184 185} 186 187 188 189class newsfeed_form_ui extends e_admin_form_ui 190{ 191 192 193 // Custom Method/Function 194 function newsfeed_active($curVal,$mode) 195 { 196 $frm = e107::getForm(); 197 198 switch($mode) 199 { 200 case 'read': // List Page 201 return $curVal; 202 break; 203 204 case 'write': // Edit Page 205 return $frm->text('newsfeed_active',$curVal, 255, 'size=large'); 206 break; 207 208 case 'filter': 209 case 'batch': 210 return array(); 211 break; 212 } 213 } 214 215 216 function newsfeed_image($curVal,$mode) 217 { 218 $frm = e107::getForm(); 219 220 switch($mode) 221 { 222 case 'read': // List Page 223 return $curVal; 224 break; 225 226 case 'write': // Edit Page 227 228 $tmp = explode('::',$curVal); 229 230 return $frm->text('newsfeed_image',$tmp[0], 255, 'size=large'); 231 break; 232 233 case 'filter': 234 case 'batch': 235 return array(); 236 break; 237 } 238 } 239 240 241 function newsfeed_timestamp($curVal,$mode) 242 { 243 $frm = e107::getForm(); 244 245 switch($mode) 246 { 247 case 'read': // List Page 248 if($curVal == 0) 249 { 250 return '-'; 251 } 252 253 return e107::getParser()->toDate($curVal, 'relative'); 254 break; 255 256 case 'write': // Edit Page 257 258 // $tmp = explode('::',$curVal); 259 260 return e107::getParser()->toDate($curVal, 'relative').$this->hidden('newsfeed_timestamp',0); 261 break; 262 263 case 'filter': 264 case 'batch': 265 return array(); 266 break; 267 } 268 } 269 270 function newsfeed_showmain($curVal,$mode) 271 { 272 $frm = e107::getForm(); 273 274 switch($mode) 275 { 276 case 'read': // List Page 277 $data = $this->getController()->getListModel()->get('newsfeed_image'); 278 list($image,$menu,$main) = explode('::',$data); 279 280 return intval($main); 281 break; 282 283 case 'write': // Edit Page 284 285 $data = $this->getController()->getModel()->get('newsfeed_image'); 286 list($image,$menu,$main) = explode('::',$data); 287 288 if(empty($main)) 289 { 290 $main = 10; 291 } 292 293 return $frm->number('newsfeed_showmain',$main, 3); 294 break; 295 296 case 'filter': 297 case 'batch': 298 return array(); 299 break; 300 } 301 } 302 303 304 305 function newsfeed_showmenu($curVal,$mode) 306 { 307 $frm = e107::getForm(); 308 309 switch($mode) 310 { 311 case 'read': // List Page 312 $data = $this->getController()->getListModel()->get('newsfeed_image'); 313 list($image,$menu,$main) = explode('::',$data); 314 315 return intval($menu); 316 break; 317 318 case 'write': // Edit Page 319 $data = $this->getController()->getModel()->get('newsfeed_image'); 320 list($image,$menu,$main) = explode('::',$data); 321 322 if(empty($menu)) 323 { 324 $menu = 10; 325 } 326 327 return $frm->number('newsfeed_showmenu',$menu, 3); 328 break; 329 330 case 'filter': 331 case 'batch': 332 return array(); 333 break; 334 } 335 } 336} 337 338 339new newsfeed_adminArea(); 340 341require_once(e_ADMIN."auth.php"); 342e107::getAdminUI()->runPage(); 343 344require_once(e_ADMIN."footer.php"); 345exit; 346