/** * @param BannersBanner|XoopsObject $obj */ public function __construct(BannersBanner &$obj) { $xoops = Xoops::getInstance(); $helper = Banners::getInstance(); if ($obj->isNew()) { $blank_img = 'blank.gif'; $html_banner = 0; } else { if (substr_count($obj->getVar('banner_imageurl'), $xoops_upload_url . '/banners/') == 0) { $blank_img = 'blank.gif'; } else { $namefile = substr_replace($obj->getVar('banner_imageurl'), '', 0, strlen($xoops_upload_url . '/banners/')); $pathfile = $xoops_root_path . '/uploads/banners/' . $namefile; if (is_file($pathfile)) { $blank_img = str_replace($xoops_upload_url . '/banners/', '', $obj->getVar('banner_imageurl', 'e')); } else { $blank_img = 'blank.gif'; } } $html_banner = $obj->getVar('banner_htmlbanner'); } $title = $obj->isNew() ? sprintf(_AM_BANNERS_BANNERS_ADD) : sprintf(_AM_BANNERS_BANNERS_EDIT); parent::__construct($title, 'form', 'banners.php', 'post', true); $this->setExtra('enctype="multipart/form-data"'); $client_Handler = $helper->getHandlerBannerclient(); $client_select = new Xoops\Form\Select(_AM_BANNERS_CLIENTS_NAME, 'cid', $obj->getVar('banner_cid')); $client_select->addOptionArray($client_Handler->getList()); $this->addElement($client_select, true); $imptotal = new Xoops\Form\Text(_AM_BANNERS_BANNERS_IMPRESSIONSP, 'imptotal', 1, 255, $obj->getVar('banner_imptotal')); //$imptotal->setPattern('^[0-9]*[0-9]+$|^[0-9]+[0-9]*$', _AM_BANNERS_BANNERS_IMPRESSIONSP_PATTERN); $this->addElement($imptotal, true); $imgtray_img = new Xoops\Form\ElementTray(_AM_BANNERS_BANNERS_IMAGE, '<br /><br />'); $imgtray_img->addElement(new Xoops\Form\Text(_AM_BANNERS_BANNERS_IMGURL, 'imageurl', 8, 255, $obj->getVar('banner_imageurl'))); $imgpath_img = sprintf(_AM_BANNERS_BANNERS_IMAGE_PATH, $xoops_upload_path . '/banners/'); $imageselect_img = new Xoops\Form\Select($imgpath_img, 'banners_imageurl', $blank_img); $image_array_img = XoopsLists::getImgListAsArray($xoops_upload_path . '/banners'); $imageselect_img->addOption("{$blank_img}", $blank_img); foreach ($image_array_img as $image_img) { $imageselect_img->addOption("{$image_img}", $image_img); } $imageselect_img->setExtra('onchange="showImgSelected(\'xo-banners-img\', \'banners_imageurl\', \'banners\', \'\', \'' . $xoops_upload_url . '\' )"'); $imgtray_img->addElement($imageselect_img, false); $imgtray_img->addElement(new Xoops\Form\Label('', "<br /><img src='" . $xoops_upload_url . "/banners/" . $blank_img . "' name='image_img' id='xo-banners-img' alt='' />")); $fileseltray_img = new Xoops\Form\ElementTray('<br />', '<br /><br />'); $fileseltray_img->addElement(new Xoops\Form\File(_AM_BANNERS_BANNERS_UPLOADS, 'banners_imageurl'), false); $fileseltray_img->addElement(new Xoops\Form\Label(''), false); $imgtray_img->addElement($fileseltray_img); $this->addElement($imgtray_img); $this->addElement(new Xoops\Form\Text(_AM_BANNERS_BANNERS_CLICKURL, 'clickurl', 5, 255, $obj->getVar('banner_clickurl')), false); $this->addElement(new Xoops\Form\RadioYesNo(_AM_BANNERS_BANNERS_USEHTML, 'htmlbanner', $html_banner)); $this->addElement(new Xoops\Form\TextArea(_AM_BANNERS_BANNERS_CODEHTML, 'htmlcode', $obj->getVar('banner_htmlcode'), 5, 5), false); if (!$obj->isNew()) { $this->addElement(new Xoops\Form\Hidden('bid', $obj->getVar('banner_bid'))); } $this->addElement(new Xoops\Form\Hidden('op', 'save')); $this->addElement(new Xoops\Form\Button('', 'submit', XoopsLocale::A_SUBMIT, 'submit')); }
*/ use Xoops\Core\Request; /** * banners module * * @copyright XOOPS Project (http://xoops.org) * @license GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html) * @package banners * @since 2.6.0 * @author Mage Grégory (AKA Mage) * @version $Id: $ */ include __DIR__ . '/header.php'; // Get main instance $xoops = Xoops::getInstance(); $helper = Banners::getInstance(); $xoops_upload_path = \XoopsBaseConfig::get('uploads-path'); $xoops_upload_url = \XoopsBaseConfig::get('uploads-url'); $xoops_url = \XoopsBaseConfig::get('url'); // Parameters $nb_banners = $helper->getConfig('banners_pager'); $mimetypes = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/x-png', 'image/png', 'application/x-shockwave-flash'); $upload_size = 500000; // Get Action type $op = Request::getCmd('op', 'list'); // Get handler $banner_Handler = $helper->getHandlerBanner(); $client_Handler = $helper->getHandlerBannerclient(); // Call header $xoops->header('admin:banners/banners_admin_banners.tpl'); // Get start pager
/** * Display banner * * @param int $nb_banner number of banners * @param string $align alignment H,V * @param array $client client ids to include * @param string $ids SQL IN clause for banner_bid column * * @return string */ public function displayBanner($nb_banner = 1, $align = 'H', $client = array(), $ids = '') { $xoops = Xoops::getInstance(); XoopsLoad::addMap(array('banners' => __DIR__ . '/helper.php')); $helper = Banners::getInstance(); if ($xoops->isActiveModule('banners')) { // Get banners handler $banner_Handler = $helper->getHandlerBanner(); // Display banner $criteria = new CriteriaCompo(); $criteria->add(new Criteria('banner_status', 0, '!=')); $sort = 'sqlite' === \XoopsBaseConfig::get('db-type') ? 'RANDOM()' : 'RAND()'; $criteria->setSort($sort); if (!empty($client)) { if (!in_array(0, $client)) { $criteria->add(new Criteria('banner_cid', '(' . implode(',', $client) . ')', 'IN')); } } if ($ids == '') { $criteria->setLimit($nb_banner); $criteria->setStart(0); } else { $criteria->add(new Criteria('banner_bid', '(' . $ids . ')', 'IN')); } $banner_arr = $banner_Handler->getAll($criteria); $numrows = count($banner_arr); $bannerobject = ''; if ($numrows > 0) { foreach (array_keys($banner_arr) as $i) { $imptotal = $banner_arr[$i]->getVar("banner_imptotal"); $impmade = $banner_arr[$i]->getVar("banner_impmade"); $htmlbanner = $banner_arr[$i]->getVar("banner_htmlbanner"); $htmlcode = $banner_arr[$i]->getVar("banner_htmlcode"); $imageurl = $banner_arr[$i]->getVar("banner_imageurl"); $bid = $banner_arr[$i]->getVar("banner_bid"); $clickurl = $banner_arr[$i]->getVar("banner_clickurl"); /** * Print the banner */ if ($htmlbanner) { $bannerobject .= $htmlcode; } else { if (stristr($imageurl, '.swf')) { $bannerobject .= '<a href="' . \XoopsBaseConfig::get('url') . '/modules/banners/index.php?op=click&bid=' . $bid . '" rel="external" title="' . $clickurl . '"></a>' . '<object type="application/x-shockwave-flash" width="468" height="60" data="' . $imageurl . '" style="z-index:100;">' . '<param name="movie" value="' . $imageurl . '" />' . '<param name="wmode" value="opaque" />' . '</object>'; } else { $bannerobject .= '<a href="' . \XoopsBaseConfig::get('url') . '/modules/banners/index.php?op=click&bid=' . $bid . '" rel="external" title="' . $clickurl . '"><img src="' . $imageurl . '" alt="' . $clickurl . '" /></a>'; } } if ($align === 'V') { $bannerobject .= '<br /><br />'; } else { $bannerobject .= ' '; } if ($helper->getConfig('banners_myip') == $xoops->getEnv('REMOTE_ADDR')) { // EMPTY } else { /** * Check if this impression is the last one */ $impmade = $impmade + 1; $qb = $xoops->db()->createXoopsQueryBuilder(); if ($imptotal > 0 && $impmade >= $imptotal) { $query = $qb->updatePrefix('banners_banner')->set('banner_impmade', ':impr')->set('banner_status', ':stat')->set('banner_dateend', ':dateend')->where('banner_bid = :bid')->setParameter(':impr', $impmade, \PDO::PARAM_INT)->setParameter(':stat', 0, \PDO::PARAM_INT)->setParameter(':dateend', time(), \PDO::PARAM_INT)->setParameter(':bid', $bid, \PDO::PARAM_INT); $result = $query->execute(); } else { $query = $qb->updatePrefix('banners_banner')->set('banner_impmade', ':impr')->where('banner_bid = :bid')->setParameter(':impr', $impmade, \PDO::PARAM_INT)->setParameter(':bid', $bid, \PDO::PARAM_INT); $result = $query->execute(); } } } return $bannerobject; } } }
function setCollectionClass() { $this->Collection = Banners::getInstance(); }
function _update($data) { $tableName = Banners::getInstance()->tableName; $this->dropCache(); return parent::_update($data, $tableName); }
/** * banner module install suplement * * @param XoopsModule &$module module being installed * * @return boolean true if no error */ function xoops_module_install_banners(&$module) { $xoops = Xoops::getInstance(); //$xoops->db(); //global $xoopsDB; XoopsLoad::addMap(array('banners' => dirname(__DIR__) . '/class/helper.php')); $helper = Banners::getInstance(); // Get handler $banner_Handler = $helper->getHandlerBanner(); $client_Handler = $helper->getHandlerBannerclient(); // update client /*$sql = "SHOW COLUMNS FROM " . $xoopsDB->prefix("bannerclient"); $result = $xoopsDB->queryF($sql); if (($rows = $xoopsDB->getRowsNum($result)) == 7) { $sql = "SELECT * FROM " . $xoopsDB->prefix("bannerclient"); $result = $xoopsDB->query($sql); while ($myrow = $xoopsDB->fetchArray($result)) { $extrainfo = $myrow['contact'] . ' - ' . $myrow['email'] . ' - ' . $myrow['login'] . ' - ' . $myrow['passwd'] . ' - ' . $myrow['extrainfo']; $sql = "UPDATE `" . $xoopsDB->prefix("bannerclient") . "` SET `extrainfo` = '" . $extrainfo . "' WHERE `cid` = " . $myrow['cid']; $xoopsDB->queryF($sql); } $sql = "ALTER TABLE " . $xoopsDB->prefix("bannerclient") . " DROP contact, DROP email, DROP login, DROP passwd"; $xoopsDB->queryF($sql); $sql = "ALTER TABLE " . $xoopDB->prefix("bannerclient") . " ADD `uid` MEDIUMINT( 8 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `cid`"; $xoopsDB->queryF($sql); }*/ // update banner /*$sql = "SHOW COLUMNS FROM " . $xoopsDB->prefix("banner"); $result = $xoopsDB->queryF($sql); if (($rows = $xoopsDB->getRowsNum($result)) == 10) { $sql = "ALTER TABLE " . $xoopsDB->prefix("banner") . " CHANGE `date` `datestart` INT( 10 ) NOT NULL DEFAULT '0'"; $xoopsDB->queryF($sql); $sql = "ALTER TABLE " . $xoopsDB->prefix("banner") . " ADD `dateend` INT( 10 ) NOT NULL DEFAULT '0' AFTER `datestart`"; $xoopsDB->queryF($sql); $sql = "ALTER TABLE " . $xoopsDB->prefix("banner") . " ADD `status` TINYINT( 1 ) NOT NULL DEFAULT '1' AFTER `htmlcode`"; $xoopsDB->queryF($sql); }*/ // update bannerfinish /*$sql = "SHOW COLUMNS FROM " . $xoopsDB->prefix("bannerfinish"); $result = $xoopsDB->queryF($sql); if (($rows = $xoopsDB->getRowsNum($result)) == 6) { $sql = "SELECT * FROM " . $xoopsDB->prefix("bannerfinish"); $result = $xoopsDB->query($sql); while ($myrow = $xoopsDB->fetchArray($result)) { $sql = "INSERT INTO `" . $xoopsDB->prefix("banner") . "` (`cid`, `imptotal`, `impmade`, `clicks`, `imageurl`, `clickurl`, `datestart`, `dateend`, `htmlbanner`, `htmlcode`, `status`) VALUES (" . $myrow['cid'] . ", 0, " . $myrow['impressions'] . ", " . $myrow['clicks'] . ", 0, '', " . $myrow['datestart'] . ", " . $myrow['dateend'] . ", 0, '', 0)"; $xoopsDB->queryF($sql); } }*/ /* this should be in system upgrade, not module install TODO: Add to upgrade script and remove from here // delete banners and my_ip $sql = "DELETE FROM " . $xoopsDB->prefix("config") . " WHERE `conf_name` = 'banners'"; $xoopsDB->queryF($sql); $sql = "DELETE FROM " . $xoopsDB->prefix("config") . " WHERE `conf_name` = 'my_ip'"; $xoopsDB->queryF($sql); */ $xoops_root_path = \XoopsBaseConfig::get('root-path'); $xoops_upload_url = \XoopsBaseConfig::get('uploads-url'); // create folder "banners" $dir = $xoops_root_path . "/uploads/banners"; if (!is_dir($dir)) { mkdir($dir, 0777); chmod($dir, 0777); } //Copy index.html $file = $xoops_root_path . "/uploads/banners/index.html"; if (!is_file($file)) { copy($xoops_root_path . "/modules/banners/images/index.html", $file); } //Copy blank.gif $file = $xoops_root_path . "/uploads/banners/blank.gif"; if (!is_file($file)) { copy($xoops_root_path . "/uploads/blank.gif", $file); } //Copy .htaccess $file = $xoops_root_path . "/uploads/banners/.htaccess"; if (!is_file($file)) { copy($xoops_root_path . "/uploads/.htaccess", $file); } /* this should be in system upgrade, not module install TODO: Add to upgrade script and remove from here // Copy banner to banners_banner $dbManager = new XoopsDatabaseManager(); $map = array( 'bid' => 'banner_bid', 'cid' => 'banner_cid', 'imptotal' => 'banner_imptotal', 'impmade' => 'banner_impmade', 'clicks' => 'banner_clicks', 'imageurl' => 'banner_imageurl', 'clickurl' => 'banner_clickurl', 'date' => 'banner_datestart', 'htmlbanner' => 'banner_htmlbanner', 'htmlcode' => 'banner_htmlcode', ); $dbManager->copyFields($map, 'banner', 'banners_banner', false); // Copy bannerclient to banners_bannerclient $dbManager = new XoopsDatabaseManager(); $map = array( 'cid' => 'bannerclient_cid', 'name' => 'bannerclient_name', 'extrainfo' => 'bannerclient_extrainfo', ); $dbManager->copyFields($map, 'bannerclient', 'banners_bannerclient', false); // Modification of imported banners below xoops 2.6 $banner_arr = $banner_Handler->getall(); foreach (array_keys($banner_arr) as $i) { $namefile = substr_replace($banner_arr[$i]->getVar('banner_imageurl'),'',0,strlen(\XoopsBaseConfig::get('url') . '/images/banners/')); $pathfile_image = $xoops_root_path . '/images/banners/' . $namefile; $pathfile_upload = $xoops_root_path . '/uploads/banners/' . $namefile; $obj = $banner_Handler->get($banner_arr[$i]->getVar('banner_bid')); if (is_file($pathfile_image)){ copy($pathfile_image, $pathfile_upload); unlink($pathfile_image); $obj->setVar("banner_imageurl", \XoopsBaseConfig::get('uploads-url') . '/banners/' . $namefile); } $obj->setVar("banner_status", 1); $banner_Handler->insert($obj); } */ // create XOOPS client $client_name = 'XOOPS'; $criteria = new CriteriaCompo(); $criteria->add(new Criteria('bannerclient_name', $client_name)); $criteria->setLimit(1); $client_arr = $client_Handler->getAll($criteria); if (count($client_arr) == 0) { $obj = $client_Handler->create(); $obj->setVar("bannerclient_uid", 0); $obj->setVar("bannerclient_name", $client_name); $obj->setVar("bannerclient_extrainfo", 'XOOPS Dev Team'); $newclient_id = $client_Handler->insert($obj); } else { foreach (array_keys($client_arr) as $i) { $newclient_id = $client_arr[$i]->getVar("bannerclient_cid"); } } // create banner in XOOPS client $banners = array("xoops_flashbanner2.swf" => "http://www.xoops.org/", "xoops_banner_2.gif" => "http://www.xoops.org/", "banner.swf" => "http://www.xoops.org/"); foreach ($banners as $k => $v) { //Copy banner $file = $xoops_root_path . "/uploads/banners/" . $k; $copy_file = $xoops_root_path . "/modules/banners/images/" . $k; if (!is_file($file) && is_file($copy_file)) { copy($copy_file, $file); } $obj = $banner_Handler->create(); $obj->setVar("banner_cid", $newclient_id); $obj->setVar("banner_clickurl", $v); $obj->setVar("banner_imageurl", $xoops_upload_url . '/banners/' . $k); $obj->setVar("banner_datestart", time()); $obj->setVar("banner_dateend", 0); $obj->setVar("banner_status", 1); $obj->setVar("banner_imptotal", 0); $obj->setVar("banner_htmlbanner", 0); $obj->setVar("banner_htmlcode", ''); $banner_Handler->insert($obj); } return true; }