mirror of
https://github.com/e107inc/e107.git
synced 2025-08-08 15:46:44 +02:00
Fixes #871 - Banner plugin admin-area and menu rewritten.
This commit is contained in:
@@ -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 = "
|
||||
<form method='post' action='".e_REQUEST_URI."' id='menu_conf_form'>
|
||||
<fieldset id='core-banner-menu'>
|
||||
<legend class='e-hideme'>".BNRLAN_36."</legend>
|
||||
<table class='table adminform'>
|
||||
<colgroup span='2'>
|
||||
<col class='col-label' />
|
||||
<col class='col-control' />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>".BNRLAN_37."</td>
|
||||
<td>".$frm->text('banner_caption', $menu_pref['banner_caption'],255,'size=xxlarge')."</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".BNRLAN_39."</td>
|
||||
<td>
|
||||
";
|
||||
if($all_catname)
|
||||
{
|
||||
|
||||
foreach($all_catname as $name)
|
||||
{
|
||||
$text .= "
|
||||
<div class='field-spacer'>
|
||||
".$frm->checkbox('multiaction_cat_active[]', $name, in_array($name, $in_catname), $name)."
|
||||
</div>
|
||||
";
|
||||
}
|
||||
|
||||
$text .= "
|
||||
<div class='field-spacer control-group form-group'>
|
||||
".$frm->admin_button('check_all', 'jstarget:multiaction_cat_active', 'checkall', LAN_CHECKALL)."
|
||||
".$frm->admin_button('uncheck_all','jstarget:multiaction_cat_active', 'checkall', LAN_UNCHECKALL)."
|
||||
</div>
|
||||
";
|
||||
}
|
||||
else
|
||||
{
|
||||
$text .= BNRLAN_40;
|
||||
}
|
||||
|
||||
|
||||
$renderTypes = array(BNRLAN_44,'1 - '.BNRLAN_45,'2 - '.BNRLAN_46);
|
||||
|
||||
$renderTypes[3] = "3 - ".BNRLAN_47; //TODO
|
||||
|
||||
|
||||
$text .= "
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".BNRLAN_41."</td>
|
||||
<td>".$frm->number('banner_amount', $menu_pref['banner_amount'], 3)."<span class='field-help'>".BNRLAN_42."</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".BNRLAN_43."</td>
|
||||
<td>".$frm->select('banner_rendertype', $renderTypes, $menu_pref['banner_rendertype'],'size=xxlarge')."</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class='buttons-bar center'>".
|
||||
$frm->admin_button('update_menu','no-value','update', LAN_UPDATE)."
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
";
|
||||
|
||||
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 .= "<span class='field-help'>".BNRLAN_29."</span>";
|
||||
}
|
||||
|
||||
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']);
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
?>
|
@@ -96,6 +96,17 @@ if(!isset($BANNER_MENU_END))
|
||||
{
|
||||
$BANNER_MENU_END = "</div>";
|
||||
}
|
||||
// ##### ------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// ##### ------------------------------------ v2.x ------------------------------------------------------
|
||||
|
||||
|
||||
$BANNER_TEMPLATE['menu']['start'] = "<div class='banner-menu text-center'>{SETIMAGE: w=800}";
|
||||
$BANNER_TEMPLATE['menu']['item'] = "<div class='banner-menu-item'>{BANNER}<br /><br /></div>";
|
||||
$BANNER_TEMPLATE['menu']['end'] = "</div>";
|
||||
|
||||
|
||||
?>
|
@@ -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 "<a href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external'>no image assigned to this banner</a>";
|
||||
}
|
||||
|
||||
$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 "<a href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external'>no image assigned to this banner</a>";
|
||||
}
|
||||
|
||||
$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
|
||||
<embed src=\"".e_IMAGE_ABS."banners/".$row['banner_image']."\" width=\"468\" height=\"60\" scale=\"noborder\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\"></embed>
|
||||
</object>
|
||||
";
|
||||
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 = "<img class='e-banner img-responsive' src='".$src."' alt='".$row['banner_clickurl']."' style='border:0' />";
|
||||
break;
|
||||
break;
|
||||
}
|
||||
return "<a href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external'>".$ban_ret.'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
return ' ';
|
||||
}
|
||||
|
||||
return "<a href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external'>".$ban_ret.'</a>';
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
@@ -61,6 +61,6 @@ define("BNRLAN_43", "How to show the campaigns?"); // BANNER_MENU_L10
|
||||
define("BNRLAN_44", "Choose render type ..."); // BANNER_MENU_L11
|
||||
define("BNRLAN_45", "One campaign in a single menu"); // BANNER_MENU_L12
|
||||
define("BNRLAN_46", "All selected campaigns in one single menu"); // BANNER_MENU_L13
|
||||
// define("BNRLAN_47", "All selected campaigns in separate menus"); // BANNER_MENU_L14
|
||||
define("BNRLAN_47", "All selected campaigns in separate menus"); // BANNER_MENU_L14
|
||||
|
||||
?>
|
Reference in New Issue
Block a user