예제 #1
0
/**
 * Gets banner HTML for use in templates
 *
 * @deprecated		Moving to a separate module
 *
 * @return object  $bannerobject  The generated banner HTML string
 */
function xoops_getbanner()
{
    global $icmsConfig;
    $db = icms_db_Factory::instance();
    $bresult = $db->query("SELECT * FROM " . $db->prefix('banner') . " ORDER BY RAND()", 1);
    if ($db->getRowsNum($bresult) > 0) {
        list($bid, $cid, $imptotal, $impmade, $clicks, $imageurl, $clickurl, $date, $htmlbanner, $htmlcode) = $db->fetchRow($bresult);
        if ($icmsConfig['my_ip'] != $_SERVER['REMOTE_ADDR']) {
            $db->queryF(sprintf("UPDATE %s SET impmade = impmade+1 WHERE bid = '%u'", $db->prefix('banner'), (int) $bid));
        }
        /* Check if this impression is the last one and print the banner */
        if ($imptotal == $impmade && $imptotal != 0) {
            $newid = $db->genId($db->prefix('bannerfinish') . '_bid_seq');
            $sql = sprintf("INSERT INTO %s (bid, cid, impressions, clicks, datestart, dateend) VALUES ('%u', '%u', '%u', '%u', '%u', '%u')", $db->prefix('bannerfinish'), (int) $newid, (int) $cid, (int) $impmade, (int) $clicks, (int) $date, time());
            $db->queryF($sql);
            $db->queryF(sprintf("DELETE FROM %s WHERE bid = '%u'", $db->prefix('banner'), (int) $bid));
        }
        if ($htmlbanner) {
            $bannerobject = icms_core_DataFilter::filterHTMLdisplay($htmlcode, 0, 0);
        } else {
            $bannerobject = '<div><a href="' . ICMS_URL . '/banners.php?op=click&amp;bid=' . $bid . '" rel="external">';
            if (stristr($imageurl, '.swf')) {
                $bannerobject = $bannerobject . '<object type="application/x-shockwave-flash" data="' . $imageurl . '" width="468" height="60">' . '<param name="movie" value="' . $imageurl . '"></param>' . '<param name="quality" value="high"></param>' . '</object>';
            } else {
                $bannerobject = $bannerobject . '<img src="' . $imageurl . '" alt="" />';
            }
            $bannerobject = $bannerobject . '</a></div>';
        }
        return $bannerobject;
    }
}
예제 #2
0
 /**
  * returns a specific variable for the object in a proper format
  *
  * We had to put this method in the icms_ipf_Object because the XOBJ_DTYPE_ARRAY does not work properly
  * at least on PHP 5.1. So we have created a new type XOBJ_DTYPE_SIMPLE_ARRAY to handle 1 level array
  * as a string separated by |
  *
  * @access public
  * @param string $key key of the object's variable to be returned
  * @param string $format format to use for the output
  * @return mixed formatted value of the variable
  */
 public function getVar($key, $format = 's')
 {
     global $myts;
     $ret = $this->vars[$key]['value'];
     switch ($this->vars[$key]['data_type']) {
         case XOBJ_DTYPE_TXTBOX:
             switch (strtolower($format)) {
                 case 's':
                 case 'show':
                     // ML Hack by marcan
                     $ret = icms_core_DataFilter::htmlSpecialChars($ret);
                     if (method_exists($myts, 'formatForML')) {
                         return $ts->formatForML($ret);
                     } else {
                         return $ret;
                     }
                     break 1;
                     // End of ML Hack by marcan
                 // End of ML Hack by marcan
                 case 'clean':
                     $ret = icms_html2text($ret);
                     $ret = icms_purifyText($ret);
                     return $ret;
                     break 1;
                     // End of ML Hack by marcan
                 // End of ML Hack by marcan
                 case 'e':
                 case 'edit':
                     return icms_core_DataFilter::htmlSpecialChars($ret);
                     break 1;
                 case 'p':
                 case 'preview':
                 case 'f':
                 case 'formpreview':
                     return icms_core_DataFilter::htmlSpecialChars(icms_core_DataFilter::stripSlashesGPC($ret));
                     break 1;
                 case 'n':
                 case 'none':
                 default:
                     break 1;
             }
             break;
         case XOBJ_DTYPE_LTIME:
             switch (strtolower($format)) {
                 case 's':
                 case 'show':
                 case 'p':
                 case 'preview':
                 case 'f':
                 case 'formpreview':
                     $ret = formatTimestamp($ret, _DATESTRING);
                     return $ret;
                     break 1;
                 case 'n':
                 case 'none':
                 case 'e':
                 case 'edit':
                     break 1;
                 default:
                     break 1;
             }
             break;
         case XOBJ_DTYPE_STIME:
             switch (strtolower($format)) {
                 case 's':
                 case 'show':
                 case 'p':
                 case 'preview':
                 case 'f':
                 case 'formpreview':
                     $ret = formatTimestamp($ret, _SHORTDATESTRING);
                     return $ret;
                     break 1;
                 case 'n':
                 case 'none':
                 case 'e':
                 case 'edit':
                     break 1;
                 default:
                     break 1;
             }
             break;
         case XOBJ_DTYPE_TIME_ONLY:
             switch (strtolower($format)) {
                 case 's':
                 case 'show':
                 case 'p':
                 case 'preview':
                 case 'f':
                 case 'formpreview':
                     $ret = formatTimestamp($ret, 'G:i');
                     return $ret;
                     break 1;
                 case 'n':
                 case 'none':
                 case 'e':
                 case 'edit':
                     break 1;
                 default:
                     break 1;
             }
             break;
         case XOBJ_DTYPE_CURRENCY:
             $decimal_section_original = strstr($ret, '.');
             $decimal_section = $decimal_section_original;
             if ($decimal_section) {
                 if (strlen($decimal_section) == 1) {
                     $decimal_section = '.00';
                 } elseif (strlen($decimal_section) == 2) {
                     $decimal_section = $decimal_section . '0';
                 }
                 $ret = str_replace($decimal_section_original, $decimal_section, $ret);
             } else {
                 $ret = $ret . '.00';
             }
             break;
         case XOBJ_DTYPE_TXTAREA:
             switch (strtolower($format)) {
                 case 's':
                 case 'show':
                     $html = !empty($this->vars['dohtml']['value']) ? 1 : 0;
                     $xcode = !isset($this->vars['doxcode']['value']) || $this->vars['doxcode']['value'] == 1 ? 1 : 0;
                     $smiley = !isset($this->vars['dosmiley']['value']) || $this->vars['dosmiley']['value'] == 1 ? 1 : 0;
                     $image = !isset($this->vars['doimage']['value']) || $this->vars['doimage']['value'] == 1 ? 1 : 0;
                     $br = !isset($this->vars['dobr']['value']) || $this->vars['dobr']['value'] == 1 ? 1 : 0;
                     if (defined('XOOPS_EDITOR_IS_HTML')) {
                         $br = false;
                     }
                     if ($html) {
                         if ($br) {
                             // have to use this whilst ever we have a zillion editors in the core
                             return icms_core_DataFilter::filterHTMLdisplay($ret, $xcode, $br);
                         } else {
                             return icms_core_DataFilter::checkVar($ret, 'html', 'output');
                         }
                     } else {
                         return icms_core_DataFilter::checkVar($ret, 'text', 'output');
                     }
                     break 1;
                 case 'e':
                 case 'edit':
                     return icms_core_DataFilter::checkVar($ret, 'html', 'edit');
                     break 1;
                 case 'p':
                 case 'preview':
                     $html = !empty($this->vars['dohtml']['value']) ? 1 : 0;
                     $xcode = !isset($this->vars['doxcode']['value']) || $this->vars['doxcode']['value'] == 1 ? 1 : 0;
                     $smiley = !isset($this->vars['dosmiley']['value']) || $this->vars['dosmiley']['value'] == 1 ? 1 : 0;
                     $image = !isset($this->vars['doimage']['value']) || $this->vars['doimage']['value'] == 1 ? 1 : 0;
                     $br = !isset($this->vars['dobr']['value']) || $this->vars['dobr']['value'] == 1 ? 1 : 0;
                     if ($html) {
                         return icms_core_DataFilter::checkVar($ret, 'html', 'input');
                     } else {
                         return icms_core_DataFilter::checkVar($ret, 'text', 'input');
                     }
                     break 1;
                 case 'f':
                 case 'formpreview':
                     return htmlspecialchars(icms_core_DataFilter::stripSlashesGPC($ret), ENT_QUOTES);
                     break 1;
                 case 'n':
                 case 'none':
                 default:
                     break 1;
             }
             break;
         case XOBJ_DTYPE_SIMPLE_ARRAY:
             $ret =& explode('|', $ret);
             break;
         case XOBJ_DTYPE_ARRAY:
             $ret =& unserialize($ret);
             break;
         case XOBJ_DTYPE_SOURCE:
             switch (strtolower($format)) {
                 case 's':
                 case 'show':
                     break 1;
                 case 'e':
                 case 'edit':
                     return htmlspecialchars($ret, ENT_QUOTES);
                     break 1;
                 case 'p':
                 case 'preview':
                     return icms_core_DataFilter::stripSlashesGPC($ret);
                     break 1;
                 case 'f':
                 case 'formpreview':
                     return htmlspecialchars(icms_core_DataFilter::stripSlashesGPC($ret), ENT_QUOTES);
                     break 1;
                 case 'n':
                 case 'none':
                 default:
                     break 1;
             }
             break;
         default:
             if ($this->vars[$key]['options'] != '' && $ret != '') {
                 switch (strtolower($format)) {
                     case 's':
                     case 'show':
                         $selected = explode('|', $ret);
                         $options = explode('|', $this->vars[$key]['options']);
                         $i = 1;
                         $ret = array();
                         foreach ($options as $op) {
                             if (in_array($i, $selected)) {
                                 $ret[] = $op;
                             }
                             $i++;
                         }
                         return implode(', ', $ret);
                     case 'e':
                     case 'edit':
                         $ret = explode('|', $ret);
                         break 1;
                     default:
                         break 1;
                 }
             }
             break;
     }
     return $ret;
 }
예제 #3
0
 /**
  * returns a specific variable for the object in a proper format
  *
  * @access public
  * @param string $key key of the object's variable to be returned
  * @param string $format format to use for the output
  * @return mixed formatted value of the variable
  */
 public function getVar($key, $format = 's')
 {
     $ret = $this->vars[$key]['value'];
     switch ($this->vars[$key]['data_type']) {
         case XOBJ_DTYPE_TXTBOX:
             switch (strtolower($format)) {
                 case 's':
                 case 'show':
                 case 'e':
                 case 'edit':
                     return icms_core_DataFilter::htmlSpecialchars($ret);
                     break 1;
                 case 'p':
                 case 'preview':
                 case 'f':
                 case 'formpreview':
                     return icms_core_DataFilter::htmlSpecialchars(icms_core_DataFilter::stripSlashesGPC($ret));
                     break 1;
                 case 'n':
                 case 'none':
                 default:
                     break 1;
             }
             break;
         case XOBJ_DTYPE_TXTAREA:
             switch (strtolower($format)) {
                 case 's':
                 case 'show':
                     $html = !empty($this->vars['dohtml']['value']) ? 1 : 0;
                     $xcode = !isset($this->vars['doxcode']['value']) || $this->vars['doxcode']['value'] == 1 ? 1 : 0;
                     $smiley = !isset($this->vars['dosmiley']['value']) || $this->vars['dosmiley']['value'] == 1 ? 1 : 0;
                     $image = !isset($this->vars['doimage']['value']) || $this->vars['doimage']['value'] == 1 ? 1 : 0;
                     $br = !isset($this->vars['dobr']['value']) || $this->vars['dobr']['value'] == 1 ? 1 : 0;
                     if ($html) {
                         if ($br) {
                             // have to use this whilst ever there's a zillion editors in the core
                             return icms_core_DataFilter::filterHTMLdisplay($ret, $xcode, $br);
                         } else {
                             return icms_core_DataFilter::checkVar($ret, 'html', 'output');
                         }
                     } else {
                         return icms_core_DataFilter::checkVar($ret, 'text', 'output');
                     }
                     break 1;
                 case 'e':
                 case 'edit':
                     return icms_core_DataFilter::checkVar($ret, 'html', 'edit');
                     break 1;
                 case 'p':
                 case 'preview':
                     $html = !empty($this->vars['dohtml']['value']) ? 1 : 0;
                     $xcode = !isset($this->vars['doxcode']['value']) || $this->vars['doxcode']['value'] == 1 ? 1 : 0;
                     $smiley = !isset($this->vars['dosmiley']['value']) || $this->vars['dosmiley']['value'] == 1 ? 1 : 0;
                     $image = !isset($this->vars['doimage']['value']) || $this->vars['doimage']['value'] == 1 ? 1 : 0;
                     $br = !isset($this->vars['dobr']['value']) || $this->vars['dobr']['value'] == 1 ? 1 : 0;
                     if ($html) {
                         return icms_core_DataFilter::checkVar($ret, 'html', 'input');
                     } else {
                         return icms_core_DataFilter::checkVar($ret, 'text', 'input');
                     }
                     break 1;
                 case 'f':
                 case 'formpreview':
                     $filtered = strpos($ret, '<!-- input filtered -->');
                     if ($filtered !== FALSE) {
                         $ret = str_replace('<!-- input filtered -->', '', $ret);
                         $ret = str_replace('<!-- filtered with htmlpurifier -->', '', $ret);
                     }
                     return htmlspecialchars(icms_core_DataFilter::stripSlashesGPC($ret), ENT_QUOTES);
                     break 1;
                 case 'n':
                 case 'none':
                 default:
                     break 1;
             }
             break;
         case XOBJ_DTYPE_ARRAY:
             $ret =& unserialize($ret);
             break;
         case XOBJ_DTYPE_SOURCE:
             switch (strtolower($format)) {
                 case 's':
                 case 'show':
                     break 1;
                 case 'e':
                 case 'edit':
                     return icms_core_DataFilter::checkVar($ret, 'html', 'edit');
                     break 1;
                 case 'p':
                 case 'preview':
                     return icms_core_DataFilter::stripSlashesGPC($ret);
                     break 1;
                 case 'f':
                 case 'formpreview':
                     return htmlspecialchars(icms_core_DataFilter::stripSlashesGPC($ret), ENT_QUOTES);
                     break 1;
                 case 'n':
                 case 'none':
                 default:
                     break 1;
             }
             break;
         default:
             if ($this->vars[$key]['options'] != '' && $ret != '') {
                 switch (strtolower($format)) {
                     case 's':
                     case 'show':
                         $selected = explode('|', $ret);
                         $options = explode('|', $this->vars[$key]['options']);
                         $i = 1;
                         $ret = array();
                         foreach ($options as $op) {
                             if (in_array($i, $selected)) {
                                 $ret[] = $op;
                             }
                             $i++;
                         }
                         return implode(', ', $ret);
                     case 'e':
                     case 'edit':
                         $ret = explode('|', $ret);
                         break 1;
                     default:
                         break 1;
                 }
             }
             break;
     }
     return $ret;
 }
예제 #4
0
 /**
  * Filters textarea form data submitted for preview
  *
  * The only difference between this and displayTarea is the need to deal with $_POST input instead of database output
  *
  * @param   string  $text
  * @param   bool	$html   allow html?
  * @param   bool	$smiley allow smileys?
  * @param   bool	$xcode  allow xoopscode?
  * @param   bool	$image  allow inline images?
  * @param   bool	$br	 convert linebreaks?
  * @return  string
  **/
 public function previewTarea($text, $html = 0, $smiley = 1, $xcode = 1, $image = 1, $br = 1)
 {
     /* @deprecated Use icms_core_DataFilter::checkVar, instead - the events for previewTarea need to be added, first */
     //icms_core_Debug::setDeprecated('icms_core_DataFilter::checkVar - type = text or html, $options1 = input', sprintf(_CORE_REMOVE_IN_VERSION, '1.4'));
     /* trigger all the events tied to the beforePreviewTarea event */
     icms::$preload->triggerEvent('beforePreviewTarea', array(&$text, $html, $smiley, $xcode, $image, $br));
     $text = icms_core_DataFilter::stripSlashesGPC($text);
     if ($html = 0) {
         $text = icms_core_DataFilter::filterTextareaDisplay($text, $smiley, $xcode, $image, $br);
     } else {
         $text = icms_core_DataFilter::filterHTMLdisplay($text, $xcode, $br);
     }
     /* trigger all the events tied to the afterPreviewTarea event */
     icms::$preload->triggerEvent('afterPreviewTarea', array(&$text, $html, $smiley, $xcode, $image, $br));
     return $text;
 }