diff --git a/e107_plugins/banner/admin_banner.php b/e107_plugins/banner/admin_banner.php index 57bd73ae4..ecd6c4118 100644 --- a/e107_plugins/banner/admin_banner.php +++ b/e107_plugins/banner/admin_banner.php @@ -20,11 +20,8 @@ * */ - -// TODO FIXME needs validation (e.g. Click URL field is not checked to be sure it's an URL) - also required fields? - require_once('../../class2.php'); -if (!getperms('D')) +if (!getperms('D') && !getperms('P')) { header('location:'.e_BASE.'index.php'); exit; @@ -32,17 +29,567 @@ if (!getperms('D')) $e_sub_cat = 'banner'; +e107::lan('banner',false,'front'); +e107::lan('banner',true,true); + + +class banner_admin extends e_admin_dispatcher +{ + + protected $modes = array( + + 'main' => array( + 'controller' => 'banner_ui', + 'path' => null, + 'ui' => 'banner_form_ui', + 'uipath' => null + ), + + + ); + + + protected $adminMenu = array( + + 'main/list' => array('caption'=> LAN_MANAGE, 'perm' => 'P'), + 'main/create' => array('caption'=> LAN_CREATE, 'perm' => 'P'), + 'main/menu' => array('caption'=> BNRLAN_36, 'perm' => 'P'), + // 'main/prefs' => array('caption'=> LAN_PREFS, 'perm' => 'P'), + + // 'main/custom' => array('caption'=> 'Custom Page', 'perm' => 'P') + ); + + protected $adminMenuAliases = array( + 'main/edit' => 'main/list' + ); + + protected $menuTitle = 'Banners'; +} + + + + + +class banner_ui extends e_admin_ui +{ + + protected $pluginTitle = 'Banners'; + protected $pluginName = 'banner'; + protected $table = 'banner'; + protected $pid = 'banner_id'; + protected $perPage = 10; + protected $batchDelete = true; + // protected $batchCopy = true; + // protected $sortField = 'somefield_order'; + // protected $orderStep = 10; + // protected $tabs = array('General','Advanced'); // Use 'tab'=>0 OR 'tab'=>1 in the $fields below to enable. + + // protected $listQry = "SELECT * FROM `#tableName` WHERE field != '' "; // Example Custom Query. LEFT JOINS allowed. Should be without any Order or Limit. + + protected $listOrder = 'banner_id DESC'; + + protected $fields = array ( + 'checkboxes' => array ( 'title' => '', 'type' => null, 'data' => null, 'width' => '5%', 'thclass' => 'center', 'forced' => '1', 'class' => 'center', 'toggle' => 'e-multiselect', ), + 'banner_id' => array ( 'title' => LAN_ID, 'data' => 'int', 'width' => '2%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), + 'banner_campaign' => array ( 'title' => 'Campaign', 'type' => 'method', 'data' => 'str', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), + + 'banner_clientname' => array ( 'title' => 'Clientname', 'type' => 'method', 'data' => 'str', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), + 'banner_clientlogin' => array ( 'title' => BNRLAN_12, 'type' => 'method', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'center', 'thclass' => 'center', ), + 'banner_clientpassword' => array ( 'title' => BNRLAN_13, 'type' => 'text', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => 'strength=1&password=1&required=1&generate=1&nomask=1', 'class' => 'center', 'thclass' => 'center', ), + 'banner_image' => array ( 'title' => BNRLAN_14, 'type' => 'image', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => 'thumb=0x50', 'writeParms' => 'media=banner&w=600', 'class' => 'left', 'thclass' => 'left', ), + 'banner_clickurl' => array ( 'title' => BNRLAN_15, 'type' => 'text', 'data' => 'str', 'width' => 'auto', 'inline' => true, 'help' => '', 'readParms' => '', 'writeParms' => 'size=xxlarge&required=1', 'class' => 'left', 'thclass' => 'left', ), + 'banner_impurchased' => array ( 'title' => BNRLAN_16, 'type' => 'number', 'data' => 'int', 'width' => 'auto', 'inline' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'center', 'thclass' => 'center', ), + + 'banner_startdate' => array ( 'title' => BNRLAN_17, 'type' => 'datestamp', 'data' => 'int', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'center', 'thclass' => 'center', ), + 'banner_enddate' => array ( 'title' => BNRLAN_18, 'type' => 'datestamp', 'data' => 'int', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'center', 'thclass' => 'center', ), + 'banner_active' => array ( 'title' => LAN_VISIBILITY, 'type' => 'userclass', 'data' => 'int', 'width' => 'auto', 'filter' => true, 'inline' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), + 'banner_clicks' => array ( 'title' => BANNERLAN_24, 'type' => 'number', 'noedit'=>true, 'readonly'=>2, 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'center', 'thclass' => 'center', ), + + 'click_percentage' => array ( 'title' => BANNERLAN_25, 'type' => 'method', 'noedit'=>true, 'data' => false, 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'center', 'thclass' => 'center', ), + + 'banner_impressions' => array ( 'title' => 'Impressions', 'type' => 'method', 'noedit'=>true, 'data' => 'int', 'width' => '12%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), + 'banner_ip' => array ( 'title' => LAN_IP, 'type' => 'hidden', 'noedit'=>true, 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), + 'options' => array ( 'title' => LAN_OPTIONS, 'type' => null, 'data' => null, 'width' => '10%', 'thclass' => 'center last', 'class' => 'center last', 'forced' => '1', ), + ); + + protected $fieldpref = array('banner_id', 'banner_campaign', 'banner_image', 'banner_clickurl', 'banner_clicks', 'banner_active', 'click_percentage', 'banner_impressions' ); + + /* + protected $prefs = array( + 'banner_caption' => array('title'=> 'Banner_caption', 'type'=>'text', 'data' => 'string','help'=>'Help Text goes here'), + 'banner_campaign' => array('title'=> 'Banner_campaign', 'type'=>'method', 'data' => 'string','help'=>'Help Text goes here'), + 'banner_amount' => array('title'=> 'Banner_amount', 'type'=>'number', 'data' => 'string','help'=>'Help Text goes here'), + 'banner_rendertype' => array('title'=> 'Banner_rendertype', 'type'=>'text', 'data' => 'string','help'=>'Help Text goes here'), ); + */ + + public function init() + { + + if (!empty($_POST['update_menu'])) + { + $this->menuPageSave(); + } + } + + + // ------- Customize Create -------- + + public function beforeCreate($new_data) + { + // e107::getMessage()->addDebug(print_a($new_data,true)); + + if(!empty($new_data['banner_clientname_sel'])) + { + $new_data['banner_clientname'] = $new_data['banner_clientname_sel']; + + } + + if(!empty($new_data['banner_campaign_sel'])) + { + $new_data['banner_campaign'] = $new_data['banner_campaign_sel']; + + } + + return $new_data; + } + + public function afterCreate($new_data, $old_data, $id) + { + // do something + } + + public function onCreateError($new_data, $old_data) + { + // do something + } + + + // ------- Customize Update -------- + + public function beforeUpdate($new_data, $old_data, $id) + { + // e107::getMessage()->addDebug(print_a($new_data,true)); + + if(!empty($new_data['banner_clientname_sel'])) + { + $new_data['banner_clientname'] = $new_data['banner_clientname_sel']; + + } + + if(!empty($new_data['banner_campaign_sel'])) + { + $new_data['banner_campaign'] = $new_data['banner_campaign_sel']; + } + + return $new_data; + } + + public function afterUpdate($new_data, $old_data, $id) + { + // do something + } + + public function onUpdateError($new_data, $old_data, $id) + { + // do something + } + + private function menuPageSave() + { + $temp = array(); + $tp = e107::getParser(); + $log = e107::getAdminLog(); + $menu_pref = e107::getConfig('menu')->getPref(''); + + $temp['banner_caption'] = $tp->toDB($_POST['banner_caption']); + $temp['banner_amount'] = intval($_POST['banner_amount']); + $temp['banner_rendertype'] = intval($_POST['banner_rendertype']); + + if (isset($_POST['multiaction_cat_active'])) + { + $cat = implode('|', $tp->toDB($_POST['multiaction_cat_active'])); + $temp['banner_campaign'] = $cat; + } + + + if ($log->logArrayDiffs($temp,$menu_pref,'BANNER_01')) + { + $menuPref = e107::getConfig('menu'); + //e107::getConfig('menu')->setPref('', $menu_pref); + //e107::getConfig('menu')->save(false, true, false); + foreach ($temp as $k => $v) + { + $menuPref->setPref($k, $v); + } + + $menuPref->save(false, true, false); + e107::getMessage()->addSuccess(LAN_SAVED); + + $menu_pref = e107::getConfig('menu')->getPref(''); + //banners_adminlog('01', $menu_pref['banner_caption'].'[!br!]'.$menu_pref['banner_amount'].', '.$menu_pref['banner_rendertype'].'[!br!]'.$menu_pref['banner_campaign']); + } + + + + } + + + public function menuPage() + { + $ns = e107::getRender(); + $sql = e107::getDb(); + $menu_pref = e107::getConfig('menu')->getPref(''); + $frm = e107::getForm(); + $mes = e107::getMessage(); + + $in_catname = array(); // Notice removal + $all_catname = array(); + + $array_cat_in = explode("|", $menu_pref['banner_campaign']); + + if (!$menu_pref['banner_caption']) + { + $menu_pref['banner_caption'] = BNRLAN_38; + } + + $category_total = $sql->select("banner", "DISTINCT(banner_campaign) as banner_campaign", "ORDER BY banner_campaign", "mode=no_where"); + + while ($banner_row = $sql -> fetch()) + { + $all_catname[] = $banner_row['banner_campaign']; + if (in_array($banner_row['banner_campaign'], $array_cat_in)) + { + $in_catname[] = $banner_row['banner_campaign']; + } + } + + $text = " +
+ "; + + return $mes->render().$text; + + // $ns->tablerender(LAN_PLUGIN_BANNER_NAME.SEP.BNRLAN_36, $mes->render() . $text); + } + + +} + + + +class banner_form_ui extends e_admin_form_ui +{ + + private $campaigns = array(); + private $clients = array(); + private $logins = array(); + private $passwords = array(); + + function init() + { + $sql = e107::getDb(); + if ($sql->select("banner")) + { + while ($banner_row = $sql->fetch()) + { + if (strpos($banner_row['banner_campaign'], "^") !== FALSE) + { + $campaignsplit = explode("^", $banner_row['banner_campaign']); + $banner_row['banner_campaign'] = $campaignsplit[0]; + } + + if ($banner_row['banner_campaign']) + { + $this->campaigns[$banner_row['banner_campaign']] = $banner_row['banner_campaign']; + } + + if ($banner_row['banner_clientname']) + { + $this->clients[$banner_row['banner_clientname']] = $banner_row['banner_clientname']; + } + + if ($banner_row['banner_clientlogin']) + { + $this->logins[] = $banner_row['banner_clientlogin']; + } + + if ($banner_row['banner_clientpassword']) + { + $this->passwords[] = $banner_row['banner_clientpassword']; + } + } + } + + + } + + + + // Custom Method/Function + function banner_clientname($curVal,$mode) + { + $frm = e107::getForm(); + + switch($mode) + { + case 'read': // List Page + return $curVal; + break; + + case 'write': // Edit Page + if (count($this->clients)) + { + $text = $frm->select('banner_clientname_sel',$this->clients, $curVal,'', LAN_SELECT); + $text .= $frm->text('banner_clientname','','',array('placeholder'=> 'Or enter a new client')); + } + else + { + + $text .= $frm->text('client_name',$curVal); + $text .= "".BNRLAN_29.""; + } + + return $text; + // return $frm->text('banner_clientname',$curVal); + break; + + case 'filter': + case 'batch': + return $this->clients; + break; + } + } + + + // Custom Method/Function + function banner_clientlogin($curVal,$mode) + { + $frm = e107::getForm(); + + switch($mode) + { + case 'read': // List Page + return $curVal; + break; + + case 'write': // Edit Page + return $frm->text('banner_clientlogin',$curVal); + break; + + case 'filter': + case 'batch': + return $array; + break; + } + } + + // Custom Method/Function + function banner_impressions($curVal,$mode) + { + $frm = e107::getForm(); + + switch($mode) + { + case 'read': // List Page + $banner_row = $this->getController()->getListModel()->getData(); + // $impressions_left = ($banner_row['banner_impurchased'] ? $banner_row['banner_impurchased'] - $banner_row['banner_impressions'] : BANNERLAN_30); + $impressions_purchased = ($banner_row['banner_impurchased'] ? $banner_row['banner_impurchased'] : BANNERLAN_30); + return $curVal .' / '.$impressions_purchased; + break; + + case 'write': // Edit Page + return $frm->text('banner_impressions',$curVal); + break; + + case 'filter': + case 'batch': + return $array; + break; + } + } + + // Custom Method/Function + function banner_campaign($curVal,$mode) + { + $frm = e107::getForm(); + + switch($mode) + { + case 'read': // List Page + return $curVal; + break; + + case 'write': // Edit Page + if (count($this->campaigns)) + { + $text = $frm->select('banner_campaign_sel',$this->campaigns, $curVal,'',LAN_SELECT); + $text .= $frm->text('banner_campaign','','',array('placeholder'=> 'Or enter a new campaign')); + } + else + { + $text = $frm->text('banner_campaign',$curVal); + } + return $text; // $frm->text('banner_campaign',$curVal); + break; + + case 'filter': + case 'batch': + return $this->campaigns; + break; + } + } + + + // Custom Method/Function + function click_percentage($curVal,$mode) + { + if($mode != 'read') + { + return; + } + + $frm = e107::getForm(); + + $banner_row = $this->getController()->getListModel()->getData(); + + // return print_a($banner_row,true); + $clickpercentage = ($banner_row['banner_clicks'] && $banner_row['banner_impressions'] ? round(($banner_row['banner_clicks'] / $banner_row['banner_impressions']) * 100,1)."%" : "-"); + + return $clickpercentage; + $impressions_left = ($banner_row['banner_impurchased'] ? $banner_row['banner_impurchased'] - $banner_row['banner_impressions'] : BANNERLAN_30); + $impressions_purchased = ($banner_row['banner_impurchased'] ? $banner_row['banner_impurchased'] : BANNERLAN_30); + } + + + + + + + + +} + + +new banner_admin(); + +require_once(e_ADMIN."auth.php"); +e107::getAdminUI()->runPage(); + +require_once(e_ADMIN."footer.php"); +exit; + + +//TODO - Put client/password in a separate table? + + + + + + +// ---------------------------- UNUSED Below here -------------------------------------------- // + + + + + + + + + + + + + + + + + + require_once(e_ADMIN.'auth.php'); require_once(e_HANDLER.'userclass_class.php'); require_once(e_HANDLER.'file_class.php'); -$fl = e107::getFile(); -$frm = e107::getForm(); -$mes = e107::getMessage(); -$tp = e107::getParser(); -e107::lan('banner',false,'front'); -e107::lan('banner',true,true); // e_PLUGIN.'banner/languages/'.e_LANGUAGE.'_admin_banner.php' + + + + + + + + + + + + + + + if(e_QUERY) @@ -54,6 +601,8 @@ $images = $fl->get_files(e_IMAGE.'banners/','','standard'); $menu_pref = e107::getConfig('menu')->getPref(''); + + if (isset($_POST['update_menu'])) { $temp['banner_caption'] = $tp->toDB($_POST['banner_caption']); diff --git a/e107_plugins/banner/banner.php b/e107_plugins/banner/banner.php index 4e94ab048..035507b2e 100644 --- a/e107_plugins/banner/banner.php +++ b/e107_plugins/banner/banner.php @@ -21,6 +21,10 @@ if (!e107::isInstalled('banner')) } e107::includeLan(e_PLUGIN."banner/languages/".e_LANGUAGE."_banner.php"); // TODO +e107::lan('banner'); + + + $mes = e107::getMessage(); $frm = e107::getForm(); @@ -36,10 +40,28 @@ if(e_QUERY) header("Location: {$row['banner_clickurl']}"); exit; } + +if (!$BANNER_LOGIN_TABLE) +{ + if(file_exists(THEME.'templates/banner/banner_template.php')) // v2.x location. + { + require_once (THEME.'templates/banner/banner_template.php'); + } + elseif(file_exists(THEME."banner_template.php")) + { + require_once(THEME."banner_template.php"); + } + else + { + require_once("banner_template.php"); + } +} + require_once(HEADERF); -if (isset($_POST['clientsubmit'])) { +if (isset($_POST['clientsubmit'])) +{ $clean_login = $tp->toDB($_POST['clientlogin']); $clean_password = $tp->toDB($_POST['clientpassword']); @@ -92,39 +114,10 @@ if (isset($_POST['clientsubmit'])) { } } - // FIXME template loading - if (!$BANNER_TABLE) - { - if (file_exists(THEME."templates/banner/banner_template.php")) - { - require(THEME."templates/banner/banner_template.php"); - } - elseif (file_exists(THEME."banner_template.php")) - { - require(THEME."banner_template.php"); - } - else - { - require(e_PLUGIN."banner/banner_template.php"); - } - } - $textstring .= preg_replace("/\{(.*?)\}/e", '$\1', $BANNER_TABLE); } } - // FIXME template loading - if (!$BANNER_TABLE) - { - if (file_exists(THEME."banner_template.php")) - { - require(THEME."banner_template.php"); - } - else - { - require(e_PLUGIN."banner/banner_template.php"); - } - } $textstart = preg_replace("/\{(.*?)\}/e", '$\1', $BANNER_TABLE_START); $textend = preg_replace("/\{(.*?)\}/e", '$\1', $BANNER_TABLE_END); @@ -141,17 +134,7 @@ $BANNER_LOGIN_TABLE_LOGIN = $frm->text("clientlogin", $id); $BANNER_LOGIN_TABLE_PASSW = $frm->password("clientpassword", $pw); $BANNER_LOGIN_TABLE_SUBMIT = $frm->button("clientsubmit", LAN_CONTINUE, "submit"); -if (!$BANNER_LOGIN_TABLE) -{ - if(file_exists(THEME."banner_template.php")) - { - require_once(THEME."banner_template.php"); - } - else - { - require_once("banner_template.php"); - } -} + $text = preg_replace("/\{(.*?)\}/e", '$\1', $BANNER_LOGIN_TABLE); $ns->tablerender(BANNERLAN_19, $text); diff --git a/e107_plugins/banner/banner_menu.php b/e107_plugins/banner/banner_menu.php index 50226a9ad..4078c2b1c 100644 --- a/e107_plugins/banner/banner_menu.php +++ b/e107_plugins/banner/banner_menu.php @@ -19,17 +19,6 @@ if (!defined('e107_INIT')) { exit; } -/* -To define your own banner to use here ... - -1. Go to admin -> banners and create a campaign, then add your banner to it -2. Add this line to this file ... - - $campaign = NAME_OF_YOUR_CAMPAIGN - -3. Save file -*/ - if(file_exists(THEME.'templates/banner/banner_template.php')) // v2.x location. { @@ -46,16 +35,22 @@ else $menu_pref = e107::getConfig('menu')->getPref(''); -if(isset($campaign)) +if(defset('BOOTSTRAP')) { - $parm = $campaign; - $txt = $BANNER_MENU_START; - $txt .= e107::getParser()->parseTemplate("{BANNER=".$parm."}",true); - $txt .= $BANNER_MENU_END; - + $BANNER_MENU_START = $BANNER_TEMPLATE['menu']['start']; + $BANNER_MENU_ITEM = $BANNER_TEMPLATE['menu']['item']; + $BANNER_MENU_END = $BANNER_TEMPLATE['menu']['end']; + } else { + $BANNER_MENU_ITEM = $BANNER_MENU; +} + + +/* + + if(isset($menu_pref['banner_campaign']) && $menu_pref['banner_campaign']) { $parms = array(); @@ -79,27 +74,128 @@ else $parms[] = $menu_pref['banner_campaign']; } - $txt = $BANNER_MENU_START; + $txt = e107::getParser()->parseTemplate($BANNER_MENU_START,true); + + $sc = e107::getScBatch('banner'); + + + + + + + + + + foreach ($parms as $parm) { - $txt .= e107::getParser()->parseTemplate("{BANNER=".$parm."}",true); + $p = array('banner_campaign'=>$parm); + $sc->setVars($p); + + $txt .= e107::getParser()->parseTemplate($BANNER_MENU_ITEM, true, $sc); + // $txt .= e107::getParser()->parseTemplate("{BANNER=".$parm."}",true); } - $txt .= $BANNER_MENU_END; + $txt .= e107::getParser()->parseTemplate($BANNER_MENU_END,true); } +*/ -} -if(isset($menu_pref['banner_rendertype']) && $menu_pref['banner_rendertype'] == 2) +if(!empty($menu_pref['banner_campaign']) && !empty($menu_pref['banner_amount'])) { - $ns->tablerender($menu_pref['banner_caption'], $txt); -} -else -{ - echo $txt; -} + $sc = e107::getScBatch('banner'); + + $ret = array(); + + $head = e107::getParser()->parseTemplate($BANNER_MENU_START,true); + + mt_srand ((double) microtime() * 1000000); + $seed = mt_rand(1,2000000000); + $time = time(); + + $tmp = explode("|", $menu_pref['banner_campaign']); + foreach($tmp as $v) + { + $filter[] = "banner_campaign=\"".$v."\""; + } + + $query = " (banner_startdate=0 OR banner_startdate <= {$time}) AND (banner_enddate=0 OR banner_enddate > {$time}) AND (banner_impurchased=0 OR banner_impressions<=banner_impurchased)"; + $query .= (count($filter)) ? " AND (".implode(" OR ",$filter)." ) " : ""; + $query .= ($parm ? " AND banner_campaign='".$tp->toDB($parm)."'" : ''); + + $query .= " AND banner_active IN (".USERCLASS_LIST.") ORDER BY RAND($seed) LIMIT ".intval($menu_pref['banner_amount']); + + if($data = $sql->retrieve('banner', 'banner_id, banner_image, banner_clickurl,banner_campaign', $query,true)) + { + foreach($data as $k=>$row) + { + $var = array('BANNER' => $sc->renderBanner($row)); + $cat = $row['banner_campaign']; + $ret[$cat][] = $tp->simpleParse($BANNER_MENU_ITEM, $var); + } + } + + $foot = e107::getParser()->parseTemplate($BANNER_MENU_END,true); + + + + switch ($menu_pref['banner_rendertype']) + { + + case 0: // All banners - no render or caption. + $text = ""; + foreach($ret as $cat) + { + foreach($cat as $val) + { + $text .= $head.$val.$foot; + } + } + echo $text; + break; + + case 1: // One menu for each campaign. + $text = ""; + foreach($ret as $cat) + { + $text = ""; + foreach($cat as $val) + { + $text .= $head.$val.$foot; + } + + $ns->tablerender($menu_pref['banner_caption'], $text, 'banner-menu'); + } + break; + case 3: // one rendered menu per banner + foreach($ret as $cat) + { + foreach($cat as $val) + { + $ns->tablerender($menu_pref['banner_caption'], $head.$val.$foot, 'banner-menu'); + } + } + break; + + + case 2: // all campaigns/banners single menu. + default: + $text = ""; + foreach($ret as $cat) + { + foreach($cat as $val) + { + $text .= $head.$val.$foot; + } + } + $ns->tablerender($menu_pref['banner_caption'], $text, 'banner-menu'); + break; + } + + +} ?> \ No newline at end of file diff --git a/e107_plugins/banner/banner_template.php b/e107_plugins/banner/banner_template.php index 73960cb7a..9dd38d0e7 100644 --- a/e107_plugins/banner/banner_template.php +++ b/e107_plugins/banner/banner_template.php @@ -96,6 +96,17 @@ if(!isset($BANNER_MENU_END)) { $BANNER_MENU_END = ""; } -// ##### ------------------------------------------------------------------------------------------ + + + + + +// ##### ------------------------------------ v2.x ------------------------------------------------------ + + +$BANNER_TEMPLATE['menu']['start'] = " "; + ?> \ No newline at end of file diff --git a/e107_plugins/banner/e_shortcode.php b/e107_plugins/banner/e_shortcode.php index 2404ac371..8734bb138 100644 --- a/e107_plugins/banner/e_shortcode.php +++ b/e107_plugins/banner/e_shortcode.php @@ -19,10 +19,14 @@ * @subpackage banner */ -class banner_shortcodes -{ - function sc_banner($parm) +class banner_shortcodes extends e_shortcode +{ + + + + function sc_banner($parm='') { + $e107 = e107::getInstance(); $sql = e107::getDb(); $tp = e107::getParser(); @@ -41,16 +45,31 @@ class banner_shortcodes if($sql->select('banner', 'banner_id, banner_image, banner_clickurl', $query)) { $row = $sql->fetch(); - - if(!$row['banner_image']) - { - return "no image assigned to this banner"; - } - - $fileext1 = substr(strrchr($row['banner_image'], '.'), 1); - $sql->update('banner', 'banner_impressions=banner_impressions+1 WHERE banner_id='.(int)$row['banner_id']); + return $this->renderBanner($row); - switch ($fileext1) + } + else + { + return ' '; + } + } + + // Also used by banner_menu.php + public function renderBanner($row) + { + $sql = e107::getDb('banner'); + $tp = e107::getParser(); + + if(!$row['banner_image']) + { + return "no image assigned to this banner"; + } + + $fileext1 = substr(strrchr($row['banner_image'], '.'), 1); + + $sql->update('banner', 'banner_impressions=banner_impressions+1 WHERE banner_id='.(int)$row['banner_id']); + + switch ($fileext1) { case 'swf': return " @@ -61,26 +80,26 @@ class banner_shortcodes "; - break; + break; + case 'html': case 'js': case 'php': // Code - may 'echo' text, or may return it as a value $file_data = file_get_contents(e_IMAGE.'banners/'.$row['banner_image']); return $file_data; - break; + break; + default: - $src = ($row['banner_image'][0] == '{') ? $tp->replaceConstants($row['banner_image'],'full') : e_IMAGE_ABS.'banners/'.$row['banner_image']; + $src = ($row['banner_image'][0] == '{') ? $tp->thumbUrl($row['banner_image']) : e_IMAGE_ABS.'banners/'.$row['banner_image']; $ban_ret = "