コード例 #1
0
ファイル: banner.php プロジェクト: redmexico/XoopsCore
 /**
  * @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'));
 }
コード例 #2
0
ファイル: banners.php プロジェクト: ming-hai/XoopsCore
*/
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
コード例 #3
0
ファイル: bannerrender.php プロジェクト: ming-hai/XoopsCore
 /**
  * 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&amp;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&amp;bid=' . $bid . '" rel="external" title="' . $clickurl . '"><img src="' . $imageurl . '" alt="' . $clickurl . '" /></a>';
                     }
                 }
                 if ($align === 'V') {
                     $bannerobject .= '<br /><br />';
                 } else {
                     $bannerobject .= '&nbsp;';
                 }
                 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;
         }
     }
 }
コード例 #4
0
 function setCollectionClass()
 {
     $this->Collection = Banners::getInstance();
 }
コード例 #5
0
ファイル: Banner.php プロジェクト: rasstroen/hardtechno
 function _update($data)
 {
     $tableName = Banners::getInstance()->tableName;
     $this->dropCache();
     return parent::_update($data, $tableName);
 }
コード例 #6
0
ファイル: install.php プロジェクト: ming-hai/XoopsCore
/**
 * 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;
}