Example #1
0
 /**
  * 数据库导入
  */
 public function import()
 {
     $disfun = ini_get('disable_functions');
     if (!strpos($disfun, 'scandir') === false) {
         showmessage('scandir函数被禁用,请配置您的php环境支持该函数', '###', 10000);
     }
     if ($_POST['doSubmit']) {
         $files = scandir(ABS_PATH . 'backup' . DIRECTORY_SEPARATOR . $_POST['dir']);
         $sqlFiles = array();
         if ($files) {
             foreach ($files as $f) {
                 if ($f != '.' && $f != '..' && strExists($f, '.sql')) {
                     array_push($sqlFiles, ABS_PATH . 'backup' . DIRECTORY_SEPARATOR . $_POST['dir'] . DIRECTORY_SEPARATOR . $f);
                 }
             }
         }
         $sqlFilesStr = file_put_contents(ABS_PATH . 'backup' . DIRECTORY_SEPARATOR . 'importSqls.txt', serialize($sqlFiles));
         showmessage('正在执行,请勿关闭', '?m=manage&c=database&a=import_database', 1000);
     } else {
         $childDirsInDataDir = scandir(ABS_PATH . 'backup');
         $dirs = array();
         //存放备份数据的文件夹
         if ($childDirsInDataDir) {
             foreach ($childDirsInDataDir as $dir) {
                 if ($dir != '.' && $dir != '..' && strExists($dir, 'data') && is_dir(ABS_PATH . 'backup' . DIRECTORY_SEPARATOR . $dir)) {
                     array_push($dirs, $dir);
                 }
             }
         }
         include $this->showManageTpl('databaseImport');
     }
 }
Example #2
0
 function createSitemap($type, $showMessage = 1)
 {
     $sitemapConfig = loadConfig('sitemap');
     $articleCount = $sitemapConfig['articleCount'] ? $sitemapConfig['articleCount'] : 500;
     $ucarCount = $sitemapConfig['ucarCount'] ? $sitemapConfig['ucarCount'] : 500;
     $datas = array();
     switch ($type) {
         default:
         case 'news':
             $article_db = bpBase::loadModel('article_model');
             $articles = $article_db->select(array('ex' => 0), 'link,time,title,keywords', '0,' . $articleCount, 'time DESC');
             if ($articles) {
                 foreach ($articles as $a) {
                     if (!strExists($a['link'], 'http://')) {
                         $a['link'] = MAIN_URL_ROOT . $a['link'];
                     }
                     if ($a['keywords'] == ',') {
                         $a['keywords'] = '';
                     }
                     array_push($datas, array('url' => $a['link'], 'time' => $a['time'], 'keywords' => $a['keywords']));
                 }
             }
             break;
     }
     $this->_createSitemap($type, $datas, $showMessage);
 }
Example #3
0
 function getValue($str = '', $avs, $siteID = 0, $channelID = 0, $contentID = 0)
 {
     //<stl:***></stl:***>
     $channelObj = bpBase::loadAppClass('channelObj', 'channel', 1);
     //
     $siteID = $avs['site'] == null ? $siteID : $avs['site'];
     //
     $upLevel = $avs['upLevel'] == null ? 0 : intval($avs['upLevel']);
     if ($avs['channelIndex']) {
         $thisChannel = $channelObj->getChannelByIndex($avs['channelIndex'], $siteID);
         $channels = $channelObj->getChannelsByParentID($thisChannel->id);
     } else {
         switch ($upLevel) {
             case 0:
                 break;
             case 1:
                 $currentChannel = $channelObj->getChannelByIndex($avs['channelIndex'], $siteID);
                 $channels = $channelObj->getChannelsByParentID($currentChannel->parentid);
                 break;
         }
     }
     //
     $returnStr = '';
     if ($channels) {
         $middleStr = parent::getMiddleBody($str, 'channels', $this->gTag);
         $i = 0;
         foreach ($channels as $c) {
             $start = intval($avs['startNum']) - 1;
             $count = intval($avs['totalNum']);
             if (!$count) {
                 $count = count($channels);
             }
             if ($i == $start || $i > $start) {
                 if ($i < $count) {
                     $rs = str_replace(array('[stl.channel.id]', '[stl.channel.name]', '[stl.channel.link]', '[stl.channel.num]', '<stl:contents'), array($c->id, $c->name, $c->link, $i + intval($avs['numStart']), '<stl:contents channelIndex="' . $c->cindex . '"'), $middleStr);
                     //current class
                     if ($channelID == $c->id) {
                         $rs = str_replace('[stl.channel.currentItemClass]', $avs['currentItemClass'], $rs);
                     } else {
                         $rs = str_replace('[stl.channel.currentItemClass]', '', $rs);
                     }
                     $returnStr .= $rs;
                 }
             }
             $i++;
         }
     }
     //处理stl:contents
     if (strExists($returnStr, '<stl:contents')) {
         $template = bpBase::loadAppClass('template', 'template');
         $now = SYS_TIME;
         $returnStr = $template->parseStr($returnStr, $now);
         @unlink(ABS_PATH . 'templatesCache' . DIRECTORY_SEPARATOR . $now . '.parsed.tpl.php');
         @unlink(ABS_PATH . 'templatesCache' . DIRECTORY_SEPARATOR . $now . '.tags.tpl.php');
     }
     //
     return $returnStr;
 }
Example #4
0
 function getValue($str = '', $avs, $siteID = 0, $channelID = 0, $contentID = 0)
 {
     //<stl:***></stl:***>
     $str = parent::removeProperties($str, $this->attributes);
     $middleStr = parent::getMiddleBody($str, 'a', $this->gTag);
     if (isset($avs['contentID']) && $avs['contentID']) {
         $articleObj = bpBase::loadAppClass('articleObj', 'article', 1);
         $thisContent = $articleObj->getContentByID($avs['contentID']);
         $valueStr = str_replace('[stl.content.title]', $thisContent->title, $middleStr);
         $link = $thisContent->link;
     } elseif (isset($avs['channelIndex']) && $avs['channelIndex']) {
         $channelObj = bpBase::loadAppClass('channelObj', 'channel', 1);
         if ($avs['site']) {
             //指定了站点
             $siteID = intval($avs['site']);
         }
         $thisChannel = $channelObj->getChannelByIndex($avs['channelIndex'], $siteID);
         //
         $valueStr = str_replace('[stl.channel.name]', $thisChannel->name, $middleStr);
         if ($avs['site'] || $siteID > 0) {
             //指定了站点
             $siteObj = bpBase::loadAppClass('siteObj', 'site', 1);
             $thisSite = $siteObj->getSiteByID($avs['site']);
             if (strExists($link, 'http://') || $thisChannel->externallink) {
                 $link = $thisChannel->link;
             } else {
                 $link = $thisSite->url . $thisChannel->link;
             }
         } else {
             if (strExists($link, 'http://') || $thisChannel->externallink) {
                 $link = $thisChannel->link;
             } else {
                 $link = MAIN_URL_ROOT . $thisChannel->link;
             }
         }
     } elseif (isset($avs['siteID']) && $avs['siteID']) {
         $siteObj = bpBase::loadAppClass('siteObj', 'site', 1);
         $thisSite = $siteObj->getSiteByID($avs['siteID']);
         //
         $valueStr = str_replace('[stl.site.name]', $thisSite->name, $middleStr);
         $link = $thisSite->url;
     }
     $str = str_replace('<stl:a', '<a href="' . $link . '"', $str);
     $str = str_replace('</stl:a', '</a', $str);
     $str = str_replace($middleStr, $valueStr, $str);
     return $str;
 }
 function getTableFields($noFields = array())
 {
     //缓存字段名
     $table = $this->_getdbtable();
     $rs = F('_Fields/' . $this->dataBase->getDataBaseName() . '/_' . $table);
     if (!$rs) {
         $list = $this->dataBase->getFields($table);
         if ($list) {
             $rs = array();
             foreach ($list as $val) {
                 if ($val['Extra'] == 'auto_increment' || $val['Key'] == 'PRI') {
                     $rs['key'] = $val['Field'];
                 } else {
                     $rs['fields'][$val['Field']] = array('name' => $val['Comment'], 'value' => $val['Default'], 'null' => $val['Null'] == 'NO' ? 0 : 1, 'type' => strExists($val['Type'], 'int') ? 'int' : 'char');
                 }
             }
             F('_Fields/' . $this->dataBase->getDataBaseName() . '/_' . $table, $rs);
         }
     }
     //删除去除字段
     if ($noFields) {
         foreach ($noFields as $val) {
             if (isset($rs['fields'][$val])) {
                 unset($rs['fields'][$val]);
             }
         }
     }
     return $rs;
 }
Example #6
0
 function _fliter($path, $generatePath, $htmlStr)
 {
     $path = strtolower($path);
     $generatePath = strtolower($generatePath);
     $logFilePath = ABS_PATH . 'qinru.html';
     if (strExists($path, '.php') || strExists($generatePath, '.php')) {
         $log = date('Y-m-d H:i:s', SYS_TIME) . '----' . ip() . '<br>' . @file_get_contents($logFilePath);
         file_put_contents($logFilePath, $log);
         showMessage('路径不能包含.php', $_SERVER['HTTP_REFERER'], 2000);
         exit;
     }
     $htmlStr = strtolower($htmlStr);
     $words = array('eval(', '<?', '<%', '{php', '_post', '<FilesMatch');
     foreach ($words as $word) {
         if (strExists($htmlStr, $word)) {
             $log = date('Y-m-d H:i:s', SYS_TIME) . '----' . ip() . '<br>' . @file_get_contents($logFilePath);
             file_put_contents($logFilePath, $log);
             showMessage('模板代码中含有非法词汇', $_SERVER['HTTP_REFERER'], 2000);
             exit;
         }
     }
 }
/**
 * 获取是否为搜索引擎爬虫
 * @param string $userAgent 用户信息
 * @return bool
 */
function checkRobot($userAgent = '')
{
    static $kwSpiders = 'Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla';
    static $kwBrowsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';
    $userAgent = empty($userAgent) ? $_SERVER['HTTP_USER_AGENT'] : $userAgent;
    if (!strExists($userAgent, 'http://') && preg_match("/({$kwBrowsers})/i", $userAgent)) {
        return false;
    } elseif (preg_match("/({$kwSpiders})/i", $userAgent)) {
        return true;
    } else {
        return false;
    }
}
Example #8
0
 /**
  * 获取链接
  *
  * @param unknown_type $url
  * @return unknown
  */
 public function getLink($url)
 {
     $url = $url ? $url : 'javascript:void(0)';
     $urlArr = explode(' ', $url);
     $urlInfoCount = count($urlArr);
     if ($urlInfoCount > 1) {
         $itemid = intval($urlArr[1]);
     }
     //会员卡 刮刮卡 团购 商城 大转盘 优惠券 订餐 商家订单 表单
     if (strExists($url, '刮刮卡')) {
         $link = '/index.php?g=Wap&m=Guajiang&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link .= '&id=' . $itemid;
         }
     } elseif (strExists($url, '大转盘')) {
         $link = '/index.php?g=Wap&m=Lottery&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link .= '&id=' . $itemid;
         }
     } elseif (strExists($url, '优惠券')) {
         $link = '/index.php?g=Wap&m=Coupon&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link .= '&id=' . $itemid;
         }
     } elseif (strExists($url, '刮刮卡')) {
         $link = '/index.php?g=Wap&m=Guajiang&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link .= '&id=' . $itemid;
         }
     } elseif (strExists($url, '商家订单')) {
         if ($itemid) {
             $link = $link = '/index.php?g=Wap&m=Host&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id . '&hid=' . $itemid;
         } else {
             $link = '/index.php?g=Wap&m=Host&a=Detail&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         }
     } elseif (strExists($url, '万能表单')) {
         if ($itemid) {
             $link = $link = '/index.php?g=Wap&m=Selfform&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id . '&id=' . $itemid;
         }
     } elseif (strExists($url, '相册')) {
         $link = '/index.php?g=Wap&m=Photo&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link = '/index.php?g=Wap&m=Photo&a=plist&token=' . $this->token . '&wecha_id=' . $this->wecha_id . '&id=' . $itemid;
         }
     } elseif (strExists($url, '全景')) {
         $link = '/index.php?g=Wap&m=Panorama&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link = '/index.php?g=Wap&m=Panorama&a=item&token=' . $this->token . '&wecha_id=' . $this->wecha_id . '&id=' . $itemid;
         }
     } elseif (strExists($url, '会员卡')) {
         $link = '/index.php?g=Wap&m=Card&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
     } elseif (strExists($url, '商城')) {
         $link = '/index.php?g=Wap&m=Product&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
     } elseif (strExists($url, '订餐')) {
         $link = '/index.php?g=Wap&m=Product&a=dining&dining=1&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
     } elseif (strExists($url, '团购')) {
         $link = '/index.php?g=Wap&m=Groupon&a=grouponIndex&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
     } elseif (strExists($url, '首页')) {
         $link = '/index.php?g=Wap&m=Index&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
     } elseif (strExists($url, '网站分类')) {
         $link = '/index.php?g=Wap&m=Index&a=lists&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link = '/index.php?g=Wap&m=Index&a=lists&token=' . $this->token . '&wecha_id=' . $this->wecha_id . '&classid=' . $itemid;
         }
     } elseif (strExists($url, '图文回复')) {
         if ($itemid) {
             $link = '/index.php?g=Wap&m=Index&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id . '&id=' . $itemid;
         }
     } elseif (strExists($url, 'LBS信息')) {
         $link = '/index.php?g=Wap&m=Company&a=map&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link = '/index.php?g=Wap&m=Company&a=map&token=' . $this->token . '&wecha_id=' . $this->wecha_id . '&companyid=' . $itemid;
         }
     } elseif (strExists($url, 'DIY宣传页')) {
         $link = '/index.php/show/' . $this->token;
     } elseif (strExists($url, '婚庆喜帖')) {
         if ($itemid) {
             $link = '/index.php?g=Wap&m=Wedding&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id . '&id=' . $itemid;
         }
     } elseif (strExists($url, '投票')) {
         if ($itemid) {
             $link = '/index.php?g=Wap&m=Vote&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id . '&id=' . $itemid;
         }
     } else {
         $link = str_replace(array('{wechat_id}', '{siteUrl}', '&amp;'), array($this->wecha_id, C('site_url'), '&'), $url);
         if (!!(strpos($url, 'tel') === false) && $url != 'javascript:void(0)' && !strpos($url, 'wecha_id=')) {
             if (strpos($url, '?')) {
                 $link = $link . '&wecha_id=' . $this->wecha_id;
             } else {
                 $link = $link . '?wecha_id=' . $this->wecha_id;
             }
         }
     }
     return $link;
 }
Example #9
0
 public function mobileIndex20130809()
 {
     $taskName = 'mobileIndex20130809';
     $thisTask = $this->update_log_db->get_one(array('file' => $taskName));
     $this->_executedCheck($taskName, $thisTask);
     //
     $fileTemplatePath = ABS_PATH . 'templates' . DIRECTORY_SEPARATOR . AUTO_SKIN . DIRECTORY_SEPARATOR . 'index.html';
     copy($fileTemplatePath, $fileTemplatePath . '_bak');
     $code = file_get_contents($fileTemplatePath);
     if (!strExists($code, 'r={versions:function(){var u=navigator.userAgent,app=navigato')) {
         $jsStr = '{literal}<script>var browser={versions:function(){var u=navigator.userAgent,app=navigator.appVersion;return{trident:u.indexOf(\'Trident\')>-1,presto:u.indexOf(\'Presto\')>-1,webKit:u.indexOf(\'AppleWebKit\')>-1,gecko:u.indexOf(\'Gecko\')>-1&&u.indexOf(\'KHTML\')==-1,mobile:!!u.match(/AppleWebKit.*Mobile.*/)||!!u.match(/AppleWebKit/),ios:!!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/),android:u.indexOf(\'Android\')>-1||u.indexOf(\'Linux\')>-1,iPhone:u.indexOf(\'iPhone\')>-1||u.indexOf(\'Mac\')>-1,iPad:u.indexOf(\'iPad\')>-1,webApp:u.indexOf(\'Safari\')==-1,QQbrw:u.indexOf(\'MQQBrowser\')>-1,ucLowEnd:u.indexOf(\'UCWEB7.\')>-1,ucSpecial:u.indexOf(\'rv:1.2.3.4\')>-1,ucweb:function(){try{return parseFloat(u.match(/ucweb\\d+\\.\\d+/gi).toString().match(/\\d+\\.\\d+/).toString())>=8.2}catch(e){if(u.indexOf(\'UC\')>-1){return true;}else{return false;}}}(),Symbian:u.indexOf(\'Symbian\')>-1,ucSB:u.indexOf(\'Firefox/1.\')>-1};}()};var _gaq=_gaq||[];(function(win,browser,undefined){var rf=document.referrer;if(rf===""||rf.toLocaleLowerCase().indexOf(".{/literal}{$domainRoot}{literal}")===-1){if(screen==undefined||screen.width<810){if(browser.versions.iPad==true){return;}if(browser.versions.webKit==true||browser.versions.mobile==true||browser.versions.ios==true||browser.versions.iPhone==true||browser.versions.ucweb==true||browser.versions.ucSpecial==true){win.location.href="{/literal}{$mainUrlRoot}/index.php?m=site&c=home&a=indexSelect{literal}";return;}if(browser.versions.Symbian){win.location.href="{/literal}{$mainUrlRoot}/index.php?m=site&c=home&a=indexSelect{literal}";}}}})(window,browser);</script>{/literal}';
         $code = str_replace(array('<body id="body">', '<body>'), array('<body id="body">' . $jsStr, '<body>' . $jsStr), $code);
         file_put_contents($fileTemplatePath, $code);
     }
     //top.html
     $tfileTemplatePath = ABS_PATH . 'templates' . DIRECTORY_SEPARATOR . AUTO_SKIN . DIRECTORY_SEPARATOR . 'top.html';
     copy($tfileTemplatePath, $tfileTemplatePath . '_bak');
     $tcode = file_get_contents($tfileTemplatePath);
     if (strExists($tcode, '<li style="display:none"><a href="#" class="icon01">移动客户端</a></li>') || strExists($tcode, '<div class="fr"><a onclick="this.style.behavior=')) {
         $tcode = str_replace(array('<li style="display:none"><a href="#" class="icon01">移动客户端</a></li>', '<li style="display:none">|</li>'), array('<li><a href="/index.php?m=site&c=home&a=mobileIndexOnPC" target="_blank" class="icon01">手机版</a></li>', '<li>|</li>'), $tcode);
         $tcode = str_replace(array('<div class="fr"><a onclick="this.style.behavior='), array('<div class="fr"><a href="/index.php?m=site&c=home&a=mobileIndexOnPC" target="_blank">手机版</a>&#160;<a onclick="this.style.behavior='), $tcode);
         file_put_contents($tfileTemplatePath, $tcode);
     }
     //
     $this->_finishTask($taskName, $thisTask);
 }
?>
" />
                  <span class="help-block"></span></div>
              </div>
              <div class="form-group">
                <label class="col-sm-1 control-label">分享图片</label>
                <div class="col-sm-3">
                  <input type="text" name="imgUrl" id="imgUrl" placeholder="" class="form-control" value="<?php 
echo $rs['imgUrl'];
?>
" />
                  <span class="help-block">LOGO图标,标准尺寸110px*110px <?php 
if ($rs['imgUrl']) {
    ?>
[<a rel="pop" class="red" target="_blank" href="<?php 
    echo strExists($rs['imgUrl'], 'http://') ? $rs['imgUrl'] : getImgUrl($rs['imgUrl']);
    ?>
">预览>></a>]<?php 
}
?>
</span></div>
                <div class="col-sm-3">
                  <iframe width="280" height="24" src="<?php 
echo U('upload/index', array('id' => 'imgUrl'));
?>
" scrolling="no" frameborder="0"></iframe>
                </div>
              </div>
              <div class="form-group">
                <label class="col-sm-1 control-label">分享内容</label>
                <div class="col-sm-3">
/**
 * 获取访问者来源(移动端)
 * @param 无
 * @return string 用户客户端设备类型
 */
function getUserAgent()
{
    $userAgent = 'unknown';
    $ua = strtolower(USER_AGENT);
    if ($ua) {
        if (preg_match("/(mobile|iphone|android|webos|ios|wap|blackberry|meizu|mobi)/i", $ua)) {
            if (strExists($ua, 'micromessenger')) {
                $userAgent = 'weixin';
            } elseif (strExists($ua, 'iphone')) {
                $userAgent = 'iPhone';
            } elseif (strExists($ua, 'ipad')) {
                $userAgent = 'iPad';
            } elseif (strExists($ua, 'android')) {
                $userAgent = 'Android';
            } elseif (strExists($ua, 'windows phone')) {
                $userAgent = 'Windows Phone';
            } elseif (strExists($ua, 'iemobile')) {
                $userAgent = 'Windows Phone';
            } elseif (strExists($ua, 'symbianos')) {
                $userAgent = 'Symbian';
            } elseif (strExists($ua, 'nokia')) {
                $userAgent = 'Symbian';
            }
        }
    }
    return $userAgent;
}
Example #12
0
 function parseFirstLayerTag($templateid, $siteID = 0, $channelID = 0, $contentID = 0, $saveFilePath = '', $tagsArr = array(), $pagination = array('pageSize' => 20, 'totalCount' => 0, 'currentPage' => 1, 'urlPrefix' => '', 'urlSuffix' => ''), $obj = null, $type = '', $onlyTags = array(), $exceptTags = array())
 {
     if ($type == 'channel' && file_exists(ABS_PATH . 'templatesCache' . DIRECTORY_SEPARATOR . $templateid . '.channel.parsed.tpl.php')) {
         $templateHtml = file_get_contents(ABS_PATH . 'templatesCache' . DIRECTORY_SEPARATOR . $templateid . '.channel.parsed.tpl.php');
     } else {
         $templateHtml = file_get_contents(ABS_PATH . 'templatesCache' . DIRECTORY_SEPARATOR . $templateid . '.parsed.tpl.php');
     }
     //
     $dir = substr(__FILE__, 0, -7);
     $i = 0;
     if (!$tagsArr) {
         include ABS_PATH . 'templatesCache' . DIRECTORY_SEPARATOR . $templateid . '.tags.tpl.php';
     }
     if ($tagsArr) {
         foreach ($tagsArr as $tag) {
             $parseThisTag = true;
             if (count($onlyTags) && !in_array($tag['name'], $onlyTags)) {
                 //如果标签不在限制的解析标签中则不解析
                 $parseThisTag = false;
             }
             if (in_array($tag['name'], $exceptTags)) {
                 $parseThisTag = false;
             }
             if ($parseThisTag && bpBase::loadTagClass('tag_' . $tag['name'])) {
                 $thisTagClassName = 'tag_' . $tag['name'];
                 $thisTagClass = bpBase::loadTagClass('tag_' . $tag['name'], 1);
                 $returnStr = $thisTagClass->getValue($tag['string'], $tag['avs'], $siteID, $channelID, $contentID, $pagination, $obj);
                 $templateHtml = str_replace('<tag_' . $tag['name'] . '_' . $i . '/>', $returnStr, $templateHtml);
             }
             $i++;
         }
     }
     //保存路径
     if (!$saveFilePath) {
         if ($siteID < 100) {
             $thisSpecial = '';
             $specialIndex = '';
         } else {
             //专题首页
             $special_db = bpBase::loadModel('special_model');
             $thisSpecial = $special_db->get_one(array('id' => $siteID));
             $specialIndex = $thisSpecial['specialindex'];
         }
         $tplGPath = $this->createGeneratePath($templateid, $channelID, $contentID, $thisSpecial);
         $saveFilePath = ABS_PATH . $tplGPath;
     }
     //stag
     if (strExists($templateHtml, '[stl.')) {
         $stag = bpBase::loadAppClass('stag', 'template');
         $templateHtml = $stag->handleStag($templateHtml);
     }
     file_put_contents($saveFilePath, $templateHtml);
     return $templateHtml;
 }
 function saveshare()
 {
     $title = $this->_post('title', '');
     $imgUrl = $this->_post('imgUrl', '');
     $desc = $this->_post('desc', '');
     if ($title && $imgUrl && $desc) {
         F('steward/share_order', array('title' => $title, 'imgUrl' => strExists($imgUrl, 'http://') ? $imgUrl : getImgUrl($imgUrl), 'desc' => $desc));
         $this->JsonReturn('操作成功', null, 1);
     } else {
         $this->JsonReturn('内容不能为空');
     }
 }
function page($total, $page, $showId = '', $pageSize = 20, $mypage = 'p', $url = '', $maxLength = 5)
{
    $page = intval($page);
    $page = $page < 1 ? 1 : $page;
    $start = ($page - 1) * $pageSize;
    $totalPage = ceil($total / $pageSize);
    $totalPage = $totalPage < 1 ? 1 : $totalPage;
    $page = $page > $totalPage ? $totalPage : $page;
    $showType = 'href';
    if (!empty($showId)) {
        $showType = 'href="javascript:;" rel';
        $showId .= '_pagebox';
    }
    $urlHome = '';
    //如果$url使用默认,即空值,则赋值为本页URL:
    if (!$url) {
        //        $url = $_SERVER['REQUEST_URI'];
        $urlHome = U(getUrlStrList(array($mypage => null), true));
    }
    //===========解析参数开始,主要为去掉分页标示======
    if (C('System', 'path_mod') == '1' && C('System', 'postfix')) {
        //开启路由模式
        $urlHome = str_replace(C('System', 'postfix'), '', $urlHome);
    } else {
        if (!strExists($urlHome, '?')) {
            $urlHome .= '?';
        } else {
            $urlHome .= '&';
        }
        if (strExists($urlHome, '?&')) {
            $urlHome = str_replace('?&', '?', $urlHome);
        }
    }
    //===========解析参数结束,主要为去掉分页标示======
    $pageTable = '';
    //aways in the pages
    $pageTable = '<div id="' . $showId . '" class="pagebox">';
    $pageTable .= '<span class="total">共 ' . $total . ' 条 <font class="red">' . $page . '</font>/' . $totalPage . '页</span>';
    //显示第一页
    if ($page == 1) {
        $pageTable .= '<span class="nolink">上页</span><span class="nonce">1</span>';
    } else {
        $pageTable .= '<a ' . $showType . '="' . _mkpageurl($urlHome, $mypage, $page - 1) . '" target="_self">上页</a><a ' . $showType . '="' . _mkpageurl($urlHome, $mypage, 1) . '" target="_self">1</a>';
    }
    //循环中间页码
    if ($totalPage < $maxLength * 2) {
        $loopStart = 2;
        $loopEnd = $totalPage - 1;
    } else {
        $loopStart = $page - $maxLength;
        $loopStart = $loopStart < 2 ? 2 : $loopStart;
        $loopEnd = $page + $maxLength;
        $loopEnd = $loopEnd < $maxLength * 2 ? $maxLength * 2 : $loopEnd;
        $loopEnd = $loopEnd > $totalPage ? $totalPage - 1 : $loopEnd;
    }
    //... link
    $linkStart = $loopStart - $maxLength < 2 ? 2 : $loopStart - $maxLength;
    $linkEnd = $loopEnd + $maxLength > $totalPage ? $totalPage : $loopEnd + $maxLength;
    if ($loopStart > 2) {
        $pageTable .= '<a ' . $showType . '="' . _mkpageurl($urlHome, $mypage, $linkStart) . '" target="_self">...</a>';
    }
    //中间链接
    for ($i = $loopStart; $i <= $loopEnd; $i++) {
        if ($page == $i) {
            $pageTable .= '<span class="nonce">' . $i . '</span>';
        } else {
            $pageTable .= '<a ' . $showType . '="' . _mkpageurl($urlHome, $mypage, $i) . '" target="_self">' . $i . '</a>';
        }
    }
    if ($loopEnd < $totalPage - 1) {
        $pageTable .= '<a ' . $showType . '="' . _mkpageurl($urlHome, $mypage, $linkEnd) . '" target="_self">...</a>';
    }
    //末页链接
    if ($totalPage != 1) {
        if ($page == $totalPage) {
            $pageTable .= '<span class="nonce">' . $totalPage . '</span><span class="nolink">下页</span>';
        } else {
            $pageTable .= '<a ' . $showType . '="' . _mkpageurl($urlHome, $mypage, $totalPage) . '" target="_self">' . $totalPage . '</a><a ' . $showType . '="' . _mkpageurl($urlHome, $mypage, $page + 1) . '" target="_self">下页</a>';
        }
    } else {
        $pageTable .= '<span class="nolink">下页</span>';
    }
    $pageTable .= '</div>';
    //输出分页代码
    return $pageTable;
}
Example #15
0
 /**
  * 根据url判断文章类型,文章id,因为有些文章是外部链接,移动版无法直接读取外部链接
  *
  * @param unknown_type $url
  */
 function getLinkInfo($url)
 {
     if (!strExists($url, 'http:') || strExists($url, DOMAIN_ROOT)) {
         //肯定是站内的
         if (strExists($url, 'store/')) {
             //经销商新闻
             $urls = explode('/', $url);
             $count = count($urls);
             $id = str_replace('.html', '', $urls[$count - 1]);
             //
             $store_content_db = bpBase::loadModel('store_content_model');
             $thisContent = $store_content_db->get($id);
             //
             return array('type' => 'storeContent', 'id' => $id, 'storeid' => $thisContent->storeid);
         } else {
             //普通文章
             $urls = explode('/', $url);
             $count = count($urls);
             $id = str_replace(array('.html', '.shtml'), '', $urls[$count - 1]);
             return array('type' => 'content', 'id' => $id);
         }
     } else {
         //站外的地址
         return null;
     }
 }
 static function run()
 {
     $sys = C('System');
     if ($sys['path_mod'] == 3 && isHave($_GET['s']) && !isHave($_SERVER['PATH_INFO'])) {
         $_SERVER['PATH_INFO'] = $_GET['s'];
     }
     if (isHave($_SERVER['PATH_INFO'])) {
         $pathinfo = explode($sys['delimiter'], $_SERVER['PATH_INFO']);
         $count = count($pathinfo);
         if ($count) {
             if (strExists($pathinfo[0], $sys['delimiter'])) {
                 $pathinfo[0] = trim($pathinfo[0], $sys['delimiter']);
                 array_unshift($pathinfo, '');
             }
             $count = $count - 1;
             if (empty($pathinfo[$count - 1])) {
                 unset($pathinfo[$count - 1]);
             }
             if (!empty($sys['postfix']) && strExists($pathinfo[$count], $sys['postfix'])) {
                 $pathinfo[$count] = strtr($pathinfo[$count], array($sys['postfix'] => ''));
             }
             if (isHave($pathinfo[1]) && $pathinfo[1] != $sys['default_group'] && $sys['group_list'] && in_array($pathinfo[1], $sys['group_list'])) {
                 $_GET['g'] = $pathinfo[1];
                 if (isHave($pathinfo[2])) {
                     $_GET['c'] = $pathinfo[2];
                 }
                 if (isHave($pathinfo[3])) {
                     $_GET['m'] = $pathinfo[3];
                 }
                 $goIndex = 4;
             } else {
                 if (isHave($pathinfo[1])) {
                     $_GET['c'] = $pathinfo[1];
                 }
                 if (isHave($pathinfo[2])) {
                     $_GET['m'] = $pathinfo[2];
                 }
                 $goIndex = 3;
             }
             if ($count > $goIndex) {
                 for ($foo = $goIndex; $foo < $count; $foo += 2) {
                     $_GET[$pathinfo[$foo]] = $pathinfo[$foo + 1];
                 }
             }
         }
     }
     $_GET['c'] = isHave($_GET['c']) ? trim($_GET['c']) : $sys['c'];
     $_GET['m'] = isHave($_GET['m']) ? trim($_GET['m']) : $sys['m'];
     $_GET['g'] = isHave($_GET['g']) ? trim($_GET['g']) : $sys['default_group'];
     define('GROUP_NAME', $_GET['g']);
     define('ACTION_NAME', $_GET['c']);
     define('MODEL_NAME', $_GET['m']);
     $GLOBALS['System']['g'] = GROUP_NAME;
     $GLOBALS['System']['c'] = ACTION_NAME;
     $GLOBALS['System']['m'] = MODEL_NAME;
     $c = ACTION_NAME . 'Action';
     $path = APP_PATH . 'lib/action/' . (GROUP_NAME == 'index' || !GROUP_NAME ? 'index/' : GROUP_NAME . '/') . $c . '.class.php';
     if (checkPath($c) && is_file($path)) {
         if (isHave($sys['autoload_action'])) {
             foreach ($sys['autoload_action'] as $key => $val) {
                 if (!is_string($key) || $key == GROUP_NAME) {
                     if (!is_array($val)) {
                         $val = array($val);
                     }
                     foreach ($val as $v) {
                         if (!$key || $key == 'index') {
                             $key = 'index/';
                         } else {
                             $key .= '/';
                         }
                         $autoPath = APP_PATH . 'lib/action/' . $key . $v . 'Action.class.php';
                         if (is_file($autoPath)) {
                             include $autoPath;
                         } else {
                             showError('自动加载控制器:' . $v . '不存在');
                         }
                     }
                 }
             }
         }
         include $path;
         $control = '';
         if (class_exists($c)) {
             $control = new $c();
         }
         if (checkPath(MODEL_NAME) && method_exists($control, MODEL_NAME)) {
             return $control->{$_GET}['m']();
         } elseif (method_exists($control, '_empty')) {
             return $control->_empty();
         } elseif (method_exists($control, '_error')) {
             return $control->_error();
         } else {
             showError('模型 ' . htmlspecialchars(strip_tags(MODEL_NAME)) . ' 不存在');
         }
     }
     showError('控制器 ' . htmlspecialchars(strip_tags(ACTION_NAME)) . ' 不存在');
 }
 /**  
  * шзгцЮРцибцЭ┐х╣╢чФЯцИРч╝УхнШцЦЗф╗╢
  * @param string $tpl_file цибцЭ┐хРНчз░
  * @param string $tpl_dir цибцЭ┐чЫох╜Х
  * @param string $file цибцЭ┐ш╖пх╛Д
  * @param string $cache_file цибцЭ┐ч╝УхнШхЬ░хЭА
  * @return void
  */
 function parseTemplate($tpl_file, $tpl_dir, $file, $cache_file)
 {
     $base_file = basename(FANWE_ROOT . $tpl_file, '.htm');
     $this->file = $file;
     if (!@($fp = fopen(FANWE_ROOT . $tpl_file, 'r'))) {
         $tpl = $tpl_dir . '/' . $file . '.htm';
         $tpl_file = $tpl_file != $tpl ? $tpl . '", "' . $tpl_file : $tpl_file;
         $this->error('template_not_found', $tpl_file);
     }
     $template = @fread($fp, filesize(FANWE_ROOT . $tpl_file));
     fclose($fp);
     $var_regexp = "((\\\$[a-zA-Z_- ][a-zA-Z0-9_- ]*(\\-\\>)?[a-zA-Z0-9_- ]*)(\\[[a-zA-Z0-9_\\-\\.\"\\'\\[\\]\$- ]+\\])*)";
     $const_regexp = "([a-zA-Z_- ][a-zA-Z0-9_- ]*)";
     $this->sub_templates = array();
     for ($i = 1; $i <= 3; $i++) {
         if (strExists($template, '{subtemplate')) {
             $template = preg_replace("/[\n\r\t]*(\\<\\!\\-\\-)?\\{subtemplate\\s+([a-z0-9_:\\/]+)\\}(\\-\\-\\>)?[\n\r\t]*/ies", "\$this->loadSubTemplate('\\2','{$tpl_dir}')", $template);
         }
     }
     $template = preg_replace("/([\n\r]+)\t+/s", "\\1", $template);
     $template = preg_replace("/\\<\\!\\-\\-\\{(.+?)\\}\\-\\-\\>/s", "{\\1}", $template);
     $template = preg_replace("/\\<\\?php(.*?)\\?\\>/ies", "\$this->phpTags('\\1')", $template);
     $template = preg_replace("/[\n\r\t]*\\{css\\s+(.+?)\\}[\n\r\t]*/ies", "\$this->cssTags('\\1')", $template);
     $template = preg_replace("/[\n\r\t]*\\{script\\s+(.+?)\\}[\n\r\t]*/ies", "\$this->scriptTags('\\1')", $template);
     $template = preg_replace("/\\{lang\\s+(.+?)\\}/ies", "\$this->languageVar('\\1')", $template);
     $template = preg_replace("/\\{sprintf\\s+(.+?)(?:|\\s+(.+?))\\}/ies", "\$this->sprintfTags('\\1','\\2')", $template);
     $template = preg_replace("/\\{nl2br\\s+(.+?)\\}/ies", "\$this->nl2brTags('\\1')", $template);
     $template = preg_replace("/[\n\r\t]*\\{advlayout\\s+id=(\\d+)(?:\\scount=(\\d+))*(?:\\starget=(.+?))*\\}[\n\r\t]*/is", "<!--dynamic advLayout args=\\1,\\2,\\3-->", $template);
     $template = preg_replace("/[\n\r\t]*\\{getimg\\s+(.+?)\\s+(.+?)\\s+(.+?)(?:|\\s+(.+?))\\}[\n\r\t]*/ies", "\$this->getImgTags('\\1','\\2','\\3','\\4')", $template);
     $template = preg_replace("/[\n\r\t]*\\{getuser\\s+(.+?)\\s+(\\d+?)(?:\\s+'(.*?)')?(?:\\s+'(.*?)')?(?:\\s+'(.*?)')?\\}[\n\r\t]*/ies", "\$this->getUserTags('\\1','\\2','\\3','\\4','\\5')", $template);
     $template = preg_replace("/[\n\r\t]*\\{getfollow\\s+(.+?)\\s+(.+?)\\}[\n\r\t]*/is", "<!--getfollow \\1 \\2-->", $template);
     $template = preg_replace("/[\n\r\t]*\\{date\\s+(.+?)(?:|\\s+'(.+?)')\\}[\n\r\t]*/ie", "\$this->dateTags('\\1','\\2')", $template);
     $template = preg_replace("/[\n\r\t]*\\{timelag\\s+(.+?)\\}[\n\r\t]*/ie", "\$this->timeLagTags('\\1')", $template);
     $template = preg_replace("/[\n\r\t]*\\{avatar\\s+(.+?)(?:|\\s(.+?)(?:|\\s(.+?)))\\}[\n\r\t]*/ies", "\$this->avatarTags('\\1','\\2','\\3')", $template);
     $template = preg_replace("/[\n\r\t]*\\{cutstr\\s+(.+?)\\s+(.+?)(?:|\\s(.+?))\\}[\n\r\t]*/ies", "\$this->cutstrTags('\\1','\\2','\\3')", $template);
     $template = preg_replace("/[\n\r\t]*\\{u\\s+(.+?)(?:|\\s+(.+?))\\}[\n\r\t]*/ies", "\$this->uTags('\\1','\\2')", $template);
     $template = preg_replace("/[\n\r\t]*\\{eval\\s+(.+?)\\s*\\}[\n\r\t]*/ies", "\$this->evalTags('\\1')", $template);
     $template = str_replace("{LF}", "<?=\"\\n\"?>", $template);
     $template = preg_replace("/\\{(\\\$[a-zA-Z0-9_\\-\\>\\[\\]\\'\"\$\\.- ]+)\\}/s", "<?=\\1?>", $template);
     $template = preg_replace("/[\n\r\t]*\\{dynamic\\s+(.+?)\\}[\n\r\t]*/is", "<!--dynamic \\1-->", $template);
     $template = preg_replace("/{$var_regexp}/es", "template::addQuote('<?=\\1?>')", $template);
     $template = preg_replace("/\\<\\?\\=\\<\\?\\={$var_regexp}\\?\\>\\?\\>/es", "\$this->addQuote('<?=\\1?>')", $template);
     $header_add = '';
     if (!empty($this->sub_templates)) {
         $header_add .= "\n0\n";
         foreach ($this->sub_templates as $fname) {
             $header_add .= "|| checkTplRefresh('{$tpl_file}', '{$fname}', " . TIMESTAMP . ", '{$cache_file}', '{$tpl_dir}', '{$file}')\n";
         }
         $header_add .= ';';
     }
     if (!empty($this->blocks)) {
         //$header_add .= "\n";
         //$header_add .= "block_get('".implode(',', $this->blocks)."');";
     }
     $template = "<? if(!defined('IN_FANWE')) exit('Access Denied'); {$header_add}?>\n{$template}";
     $template = preg_replace("/[\n\r\t]*\\{template\\s+([a-z0-9_:\\/]+)\\}[\n\r\t]*/ies", "\$this->stripvTags('<? include template(\\'\\1\\'); ?>')", $template);
     $template = preg_replace("/[\n\r\t]*\\{template\\s+(.+?)\\}[\n\r\t]*/ies", "\$this->stripvTags('<? include template(\\'\\1\\'); ?>')", $template);
     $template = preg_replace("/[\n\r\t]*\\{echo\\s+(.+?)\\}[\n\r\t]*/ies", "\$this->stripvTags('<? echo \\1; ?>')", $template);
     $template = preg_replace("/([\n\r\t]*)\\{if\\s+(.+?)\\}([\n\r\t]*)/ies", "\$this->stripvTags('\\1<? if(\\2) { ?>\\3')", $template);
     $template = preg_replace("/([\n\r\t]*)\\{elseif\\s+(.+?)\\}([\n\r\t]*)/ies", "\$this->stripvTags('\\1<? } elseif(\\2) { ?>\\3')", $template);
     $template = preg_replace("/\\{else\\}/i", "<? } else { ?>", $template);
     $template = preg_replace("/\\{\\/if\\}/i", "<? } ?>", $template);
     $template = preg_replace("/[\n\r\t]*\\{loop\\s+(\\S+)\\s+(\\S+)\\}[\n\r\t]*/ies", "\$this->stripvTags('<? if(is_array(\\1)) { foreach(\\1 as \\2) { ?>')", $template);
     $template = preg_replace("/[\n\r\t]*\\{loop\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\}[\n\r\t]*/ies", "\$this->stripvTags('<? if(is_array(\\1)) { foreach(\\1 as \\2 => \\3) { ?>')", $template);
     $template = preg_replace("/\\{\\/loop\\}/i", "<? } } ?>", $template);
     $template = preg_replace("/\\{{$const_regexp}\\}/s", "<?=\\1?>", $template);
     if (!empty($this->replace_code)) {
         $template = str_replace($this->replace_code['search'], $this->replace_code['replace'], $template);
     }
     $template = preg_replace("/ \\?\\>[\n\r]*\\<\\? /s", " ", $template);
     if (!@($fp = fopen(PUBLIC_ROOT . $cache_file, 'w'))) {
         $this->error('directory_not_found', dirname(PUBLIC_ROOT . $cache_file));
     }
     //$template = preg_replace("/\"(http)?[\w\.\/:]+\?[^\"]+?&[^\"]+?\"/e", "\$this->transAmp('\\0')", $template);
     $template = preg_replace("/\\<script[^\\>]*?src=\"(.+?)\"(.*?)\\>\\s*\\<\\/script\\>/ies", "\$this->stripScriptAmp('\\1', '\\2')", $template);
     //$template = preg_replace("/[\n\r\t]*\{block\s+([a-zA-Z0-9_\[\]]+)\}(.+?)\{\/block\}/ies", "\$this->stripBlock('\\1', '\\2')", $template);
     flock($fp, 2);
     fwrite($fp, $template);
     fclose($fp);
 }
Example #18
0
 /**
  * 获取链接
  *
  * @param unknown_type $url
  * @return unknown
  */
 public function getLink($url)
 {
     $url = $url ? $url : 'javascript:void(0)';
     $urlArr = explode(' ', $url);
     $urlInfoCount = count($urlArr);
     if ($urlInfoCount > 1) {
         $itemid = intval($urlArr[1]);
     }
     //会员卡 刮刮卡 团购 商城 大转盘 优惠券 订餐 商家订单 表单
     if (strExists($url, '刮刮卡')) {
         $link = U('Wap/Guajiang/index', array('token' => $this->token));
         //'/index.php?g=Wap&m=Guajiang&a=index&token='.$this->token.'&wecha_id='.$this->wecha_id;
         if ($itemid) {
             $link .= '&id=' . $itemid;
         }
     } elseif (strExists($url, '大转盘')) {
         $link = U('Wap/Lottery/index', array('token' => $this->token));
         //='/index.php?g=Wap&m=Lottery&a=index&token='.$this->token.'&wecha_id='.$this->wecha_id;
         if ($itemid) {
             $link .= '&id=' . $itemid;
         }
     } elseif (strExists($url, '优惠券')) {
         $link = U('Wap/Coupon/index', array('token' => $this->token));
         //='/index.php?g=Wap&m=Coupon&a=index&token='.$this->token.'&wecha_id='.$this->wecha_id;
         if ($itemid) {
             $link .= '&id=' . $itemid;
         }
     } elseif (strExists($url, '砸金蛋')) {
         $link = U('Wap/GoldenEgg/index', array('token' => $this->token));
         //='/index.php?g=Wap&m=Guajiang&a=index&token='.$this->token.'&wecha_id='.$this->wecha_id;
         if ($itemid) {
             $link .= '&id=' . $itemid;
         }
     } elseif (strExists($url, '水果机')) {
         $link = U('Wap/LuckyFruit/index', array('token' => $this->token));
         //='/index.php?g=Wap&m=Guajiang&a=index&token='.$this->token.'&wecha_id='.$this->wecha_id;
         if ($itemid) {
             $link .= '&id=' . $itemid;
         }
     } elseif (strExists($url, $this->config['meal_alias_name'])) {
         $link = U('Wap/Meal/index', array('token' => $this->token));
         //='/index.php?g=Wap&m=Product&a=dining&dining=1&token='.$this->token.'&wecha_id='.$this->wecha_id;
     } elseif (strExists($url, $this->config['group_alias_name'])) {
         $link = U('Wap/Group/index', array('token' => $this->token));
         //='/index.php?g=Wap&m=Groupon&a=grouponIndex&token='.$this->token.'&wecha_id='.$this->wecha_id;
     } elseif (strExists($url, '首页')) {
         $link = U('Wap/Index/index', array('token' => $this->token));
         //='/index.php?g=Wap&m=Index&a=index&token='.$this->token.'&wecha_id='.$this->wecha_id;
     } elseif (strExists($url, '网站分类')) {
         $link = U('Wap/Index/lists', array('token' => $this->token));
         //='/index.php?g=Wap&m=Index&a=lists&token='.$this->token.'&wecha_id='.$this->wecha_id;
         if ($itemid) {
             $link = U('Wap/Index/lists', array('token' => $this->token, 'classid' => $itemid));
             //='/index.php?g=Wap&m=Index&a=lists&token='.$this->token.'&wecha_id='.$this->wecha_id.'&classid='.$itemid;
         }
     } elseif (strExists($url, '图文回复')) {
         if ($itemid) {
             $link = U('Wap/Index/index', array('token' => $this->token));
             //='/index.php?g=Wap&m=Index&a=index&token='.$this->token.'&wecha_id='.$this->wecha_id.'&id='.$itemid;
         }
     } elseif (strExists($url, 'LBS信息')) {
         $link = U('Wap/Company/map', array('token' => $this->token));
         //='/index.php?g=Wap&m=Company&a=map&token='.$this->token.'&wecha_id='.$this->wecha_id;
         if ($itemid) {
             $link = U('Wap/Company/map', array('token' => $this->token, 'companyid' => $itemid));
             //='/index.php?g=Wap&m=Company&a=map&token='.$this->token.'&wecha_id='.$this->wecha_id.'&companyid='.$itemid;
         }
     } elseif (strExists($url, 'DIY宣传页')) {
         //$link = U('Wap/Guanjiang/index', array('token' => $this->token, 'wecha_id' => $this->wecha_id));//='/index.php/show/'.$this->token;
     } elseif (strExists($url, '婚庆喜帖')) {
         if ($itemid) {
             $link = U('Wap/Wedding/index', array('token' => $this->token, 'wecha_id' => $this->wecha_id));
             //='/index.php?g=Wap&m=Wedding&a=index&token='.$this->token.'&wecha_id='.$this->wecha_id.'&id='.$itemid;
         }
     } elseif (strExists($url, '投票')) {
         if ($itemid) {
             $link = U('Wap/Vote/index', array('token' => $this->token, 'wecha_id' => $this->wecha_id));
             //='/index.php?g=Wap&m=Vote&a=index&token='.$this->token.'&wecha_id='.$this->wecha_id.'&id='.$itemid;
         }
     } else {
         $link = str_replace(array('{wechat_id}', '{siteUrl}', '&amp;'), array($this->wecha_id, $this->siteUrl, '&'), $url);
         // 			if (!!(strpos($url,'tel')===false)&&$url!='javascript:void(0)'&&!strpos($url,'wecha_id=')){
         // 				if (strpos($url,'?')){
         // 					$link=$link.'&wecha_id='.$this->wecha_id;
         // 				}else {
         // 					$link=$link.'?wecha_id='.$this->wecha_id;
         // 				}
         // 			}
     }
     return $link;
 }
Example #19
0
 function getValue($str = '', $avs, $csiteID = 0, $thisChannelID = 0, $contentID = 0)
 {
     //<stl:***></stl:***>
     $content = bpBase::loadAppClass('articleObj', 'article', 1);
     $mobileConfig = loadConfig('mobile');
     $articleObj = bpBase::loadAppClass('articleObj', 'article');
     $avs['numStart'] = isset($avs['numStart']) ? $avs['numStart'] : 1;
     if (!$avs['sqlStr']) {
         $isDynamic = $avs['isDynamic'] == null ? false : $avs['isDynamic'];
         $site = bpBase::loadAppClass('siteObj', 'site', 1);
         if ($avs['site']) {
             $thisSite = $site->getSiteByID($avs['site']);
             $siteID = intval($avs['site']);
         } else {
             $siteID = intval($csiteID);
         }
         if ($isDynamic || !isset($avs['sql']) || !strlen($avs['sql']) || $thisChannelID != 0 || $contentID != 0) {
             $channel = bpBase::loadAppClass('channelObj', 'channel', 1);
             //properties
             $num = intval($avs['totalNum']);
             $start = $avs['startNum'] == null ? 0 : intval($avs['startNum']) - 1;
             $scope = $avs['scope'] == null ? 'self' : 'children';
             $order = $avs['order'];
             if ($avs['isImage'] == null) {
                 $isImage = 'null';
             } else {
                 $isImage = $avs['isImage'] == 'true' ? 1 : 0;
             }
             switch ($order) {
                 case null:
                     $order = 'taxis';
                     break;
                 case 'Hits':
                     $order = 'viewcount';
                     break;
                 case 'AddDate':
                     $order = 'time';
                     break;
             }
             if ($avs['channelIndex']) {
                 $thisChannel = $channel->getChannelByIndex($avs['channelIndex'], $siteID);
                 $channelID = $thisChannel->id;
             } elseif ($avs['channelID']) {
                 $channelID = $avs['channelID'];
             } else {
                 $channelID = $thisChannelID;
             }
         }
         //
         $returnStr = '';
         if (!$isDynamic) {
             if (isset($avs['sql']) && strlen($avs['sql']) && !$thisChannelID) {
                 $content_db = bpBase::loadModel('article_model');
                 $avs['sql'] = str_replace('{sysTime}', SYS_TIME, $avs['sql']);
                 $contents = $content_db->get_resultsBySql($avs['sql']);
             } else {
                 $sql = $this->getSql($avs, $siteID, $thisChannelID);
                 //$content=bpBase::loadAppClass('articleObj','article',1);
                 $content_db = bpBase::loadModel('article_model');
                 $avs['sql'] = str_replace('{sysTime}', SYS_TIME, $avs['sql']);
                 $contents = $content_db->get_resultsBySql($avs['sql']);
                 //$contents=$content->getContentsByChannelID($channelID,$num,$order,$start,$scope,$isImage);
             }
             if ($contents) {
                 $i = 0;
                 $middleStr = parent::getMiddleBody($str, 'contents', $this->gTag);
                 $tags = array('[stl.fullTitle]', '[stl.content.fullTitle]', '[stl.content.author]', '[stl.content.source]', '[stl.content.thumb]', '[stl.content.content]', '[stl.content.autoname]');
                 foreach ($contents as $c) {
                     $replaces = array($c->title, $c->title, $c->author, $c->source, $c->thumb, $c->content, $c->autoname);
                     $valueStr = str_replace($tags, $replaces, $middleStr);
                     if ($avs['titleLen']) {
                         $valueStr = str_replace('[stl.content.title]', mb_substr($c->title, 0, $avs['titleLen'], DB_CHARSET), $valueStr);
                         if (strlen($c->subtitle)) {
                             //判断是否有副标题
                             $valueStr = str_replace('[stl.content.subtitle]', mb_substr($c->subtitle, 0, $avs['titleLen'], DB_CHARSET), $valueStr);
                         } else {
                             $valueStr = str_replace('[stl.content.subtitle]', mb_substr($c->title, 0, $avs['titleLen'], DB_CHARSET), $valueStr);
                         }
                     } else {
                         if (strlen($c->subtitle)) {
                             //判断是否有副标题
                             $valueStr = str_replace(array('[stl.content.title]', '[stl.content.subtitle]'), array($c->title, $c->subtitle), $valueStr);
                         } else {
                             $valueStr = str_replace(array('[stl.content.title]', '[stl.content.subtitle]'), array($c->title, $c->title), $valueStr);
                         }
                     }
                     if ($avs['introLen']) {
                         $valueStr = str_replace('[stl.content.intro]', mb_substr($c->intro, 0, $avs['introLen'], DB_CHARSET), $valueStr);
                     } else {
                         $valueStr = str_replace('[stl.content.intro]', $c->intro, $valueStr);
                     }
                     if ($avs['absPath'] || intval($avs['site']) != $csiteID) {
                         if (!$c->externallink) {
                             if ($i == 0) {
                                 $thisSite = $site->getSiteByID($c->site);
                             }
                             if (!$thisSite->url) {
                                 $thisSite->url = MAIN_URL_ROOT;
                             }
                             $valueStr = str_replace('[stl.content.link]', $thisSite->url . $c->link, $valueStr);
                         } else {
                             if (substr($c->link, 0, 1) != 'h') {
                                 $thisSite = $site->getSiteByID($c->site);
                                 $valueStr = str_replace('[stl.content.link]', $thisSite->url . $c->link, $valueStr);
                             } else {
                                 $valueStr = str_replace('[stl.content.link]', $c->link, $valueStr);
                             }
                         }
                     } else {
                         $valueStr = str_replace('[stl.content.link]', $c->link, $valueStr);
                     }
                     //手机版链接
                     if ($c->externallink) {
                         $articleInfo = $articleObj->getLinkInfo($c->link);
                         if ($articleInfo) {
                             switch ($articleInfo['type']) {
                                 case 'content':
                                     $mlink = $mobileConfig['homeUrl'] . '/article/' . $articleInfo['id'];
                                     break;
                                 case 'storeContent':
                                     $mlink = $mobileConfig['homeUrl'] . '/store/' . $articleInfo['storeid'] . '/article/' . $articleInfo['id'];
                                     break;
                             }
                         } else {
                             $mlink = $c->link;
                         }
                     } else {
                         $mlink = $mobileConfig['homeUrl'] . '/article/' . $c->id;
                     }
                     $valueStr = str_replace('[stl.content.mlink]', $mlink, $valueStr);
                     //time
                     $valueStr = str_replace('[stl.content.time]', date($avs['dateFormat'], $c->time), $valueStr);
                     //other thumb
                     $valueStr = str_replace('[stl.content.thumb2]', str_replace('.jpg', '_small.jpg', $c->thumb), $valueStr);
                     $valueStr = str_replace('[stl.content.thumb3]', str_replace('.jpg', '_middle.jpg', $c->thumb), $valueStr);
                     $valueStr = str_replace('[stl.content.thumb4]', str_replace('.jpg', '_big.jpg', $c->thumb), $valueStr);
                     //viewcount
                     $valueStr = str_replace('[stl.content.viewcount]', $c->viewcount, $valueStr);
                     //num
                     $valueStr = str_replace('[stl.content.num]', $i + intval($avs['numStart']), $valueStr);
                     //auto info
                     $autoids = explode(',', $c->autoid);
                     $firstAutoid = 0;
                     if ($autoids) {
                         foreach ($autoids as $autoid) {
                             if (intval($autoid)) {
                                 $firstAutoid = $autoid;
                                 break;
                             }
                         }
                     }
                     $valueStr = str_replace('[stl.content.autoID]', $firstAutoid, $valueStr);
                     if (intval($c->autograde) == 1) {
                         if (URL_REWRITE) {
                             $valueStr = str_replace('[stl.content.autolink]', CAR_URL_ROOT . '/brand-' . $firstAutoid . '.html', $valueStr);
                         } else {
                             $valueStr = str_replace('[stl.content.autolink]', CAR_URL_ROOT . '/brand.php?id=' . $firstAutoid, $valueStr);
                         }
                     } else {
                         if (URL_REWRITE) {
                             $valueStr = str_replace('[stl.content.autolink]', CAR_URL_ROOT . '/' . $firstAutoid, $valueStr);
                         } else {
                             $valueStr = str_replace('[stl.content.autolink]', CAR_URL_ROOT . '/g3auto.php?id=' . $firstAutoid, $valueStr);
                         }
                     }
                     if ($firstAutoid) {
                         $valueStr = str_replace('[stl.content.autodisplay]', '', $valueStr);
                     } else {
                         $valueStr = str_replace('[stl.content.autodisplay]', ' style="display:none"', $valueStr);
                     }
                     //THIS AUTO
                     if (strExists($valueStr, '[stl.content.auto')) {
                         if ($firstAutoid) {
                             $autoclassification_db = bpBase::loadModel('autoclassification_model');
                             $firstAuto = $autoclassification_db->getCfByID($firstAutoid);
                             $autoObj = bpBase::loadAppClass('autoObj', 'auto', 1);
                             $smallLogo = $autoObj->getLogo($firstAuto->id, $firstAuto->logo, 's', $firstAuto->grade);
                             $middleLogo = $autoObj->getLogo($firstAuto->id, $firstAuto->logo, 'm', $firstAuto->grade);
                             if ($firstAuto) {
                                 $valueStr = str_replace('[stl.content.autoName]', $firstAuto->name, $valueStr);
                                 if ($firstAuto->grade == 3) {
                                     $valueStr = str_replace('[stl.content.autoAdvantage]', $firstAuto->advantage, $valueStr);
                                     $valueStr = str_replace('[stl.content.autoDefect]', $firstAuto->defect, $valueStr);
                                 }
                             } else {
                                 $valueStr = str_replace('[stl.content.autoName]', '', $valueStr);
                             }
                             if ($c->thumb) {
                                 $valueStr = str_replace(array('[stl.content.autoSmallLogo]', '[stl.content.autoMiddleLogo]'), array($c->thumb, $c->thumb), $valueStr);
                             } else {
                                 $valueStr = str_replace('[stl.content.autoSmallLogo]', $smallLogo, $valueStr);
                                 $valueStr = str_replace('[stl.content.autoMiddleLogo]', $middleLogo, $valueStr);
                             }
                         } else {
                             $valueStr = str_replace('[stl.content.autoName]', '', $valueStr);
                             $valueStr = str_replace('[stl.content.autoAdvantage]', '', $valueStr);
                             $valueStr = str_replace('[stl.content.autoDefect]', '', $valueStr);
                         }
                     }
                     //内容中的经销商信息
                     if (strExists($valueStr, '[stl.content.store')) {
                         $stag = bpBase::loadAppClass('stag', 'template');
                         $storeid = $stag->getFirstTagValue($c->content, 'store');
                         $store_db = bpBase::loadModel('store_model');
                         $thisStore = $store_db->getStoreByStoreID($storeid);
                         $valueStr = str_replace('[stl.content.storeShortName]', $thisStore->shortname, $valueStr);
                         $valueStr = str_replace('[stl.content.storeName]', $thisStore->name, $valueStr);
                         $valueStr = str_replace('[stl.content.storeLink]', $thisStore->url, $valueStr);
                     }
                     //current class
                     if ($contentID == $c->id) {
                         $valueStr = str_replace('[stl.content.currentItemClass]', $avs['currentItemClass'], $valueStr);
                     } else {
                         $valueStr = str_replace('[stl.content.currentItemClass]', '', $valueStr);
                     }
                     //
                     $returnStr .= $valueStr;
                     $i++;
                 }
             }
             return $returnStr;
         } else {
             return '<script src="http://' . $_SERVER['HTTP_HOST'] . '/api/moopha_javascript.php?type=contents&channelID=' . $channelID . '&num=' . $num . '&order=' . $order . '&scope=' . $scope . '&isImage=' . $isImage . '&site=' . $siteID . '"></script>';
         }
     } else {
         //调用论坛帖子等
         $returnStr = '';
         $content_db = bpBase::loadModel('article_model');
         $contents = $content_db->selectBySql($avs['sqlStr']);
         if ($contents) {
             $i = 0;
             $middleStr = parent::getMiddleBody($str, 'contents', $this->gTag);
             foreach ($contents as $c) {
                 $valueStr = $middleStr;
                 //time
                 $valueStr = str_replace('[stl.content.time]', date($avs['dateFormat'], $c['time']), $valueStr);
                 //num
                 $valueStr = str_replace('[stl.content.num]', $i + intval($avs['numStart']), $valueStr);
                 //替换属性
                 foreach ($c as $k => $v) {
                     $valueStr = str_replace('[stl.content.' . $k . ']', $v, $valueStr);
                 }
                 //
                 $returnStr .= $valueStr;
                 $i++;
             }
         }
         return $returnStr;
     }
 }
Example #20
0
 /**
  * 获取链接
  *
  * @param unknown_type $url
  * @return unknown
  */
 public function getLink($url)
 {
     $urlArr = explode(' ', $url);
     $urlInfoCount = count($urlArr);
     if ($urlInfoCount > 1) {
         $itemid = intval($urlArr[1]);
     }
     //会员卡 刮刮卡 团购 商城 大转盘 优惠券 订餐 商家订单 表单
     if (strExists($url, '刮刮卡')) {
         $link = '/index.php?g=Wap&m=Guajiang&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link .= '&id=' . $itemid;
         }
     } elseif (strExists($url, '大转盘')) {
         $link = '/index.php?g=Wap&m=Lottery&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link .= '&id=' . $itemid;
         }
     } elseif (strExists($url, '砸金蛋')) {
         $link = '/index.php?g=Wap&m=Zadan&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link .= '&id=' . $itemid;
         }
     } elseif (strExists($url, '优惠券')) {
         $link = '/index.php?g=Wap&m=Coupon&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link .= '&id=' . $itemid;
         }
     } elseif (strExists($url, '刮刮卡')) {
         $link = '/index.php?g=Wap&m=Guajiang&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link .= '&id=' . $itemid;
         }
     } elseif (strExists($url, '商家订单')) {
         if ($itemid) {
             $link = $link = '/index.php?g=Wap&m=Host&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id . '&hid=' . $itemid;
         } else {
             $link = '/index.php?g=Wap&m=Host&a=Detail&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         }
     } elseif (strExists($url, '万能表单')) {
         if ($itemid) {
             $link = $link = '/index.php?g=Wap&m=Selfform&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id . '&id=' . $itemid;
         }
     } elseif (strExists($url, '相册')) {
         $link = '/index.php?g=Wap&m=Photo&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link = '/index.php?g=Wap&m=Photo&a=plist&token=' . $this->token . '&wecha_id=' . $this->wecha_id . '&id=' . $itemid;
         }
     } elseif (strExists($url, '全景')) {
         $link = '/index.php?g=Wap&m=Panorama&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
         if ($itemid) {
             $link = '/index.php?g=Wap&m=Panorama&a=item&token=' . $this->token . '&wecha_id=' . $this->wecha_id . '&id=' . $itemid;
         }
     } elseif (strExists($url, '会员卡')) {
         $link = '/index.php?g=Wap&m=Card&a=vip&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
     } elseif (strExists($url, '商城')) {
         $link = '/index.php?g=Wap&m=Product&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
     } elseif (strExists($url, '订餐')) {
         $link = '/index.php?g=Wap&m=Product&a=dining&dining=1&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
     } elseif (strExists($url, '团购')) {
         $link = '/index.php?g=Wap&m=Groupon&a=grouponIndex&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
     } elseif (strExists($url, '留言')) {
         $link = '/index.php?g=Wap&m=Liuyan&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
     } elseif (strExists($url, '首页')) {
         $link = '/index.php?g=Wap&m=Index&a=index&token=' . $this->token . '&wecha_id=' . $this->wecha_id;
     } else {
         if (strpos($url, '?')) {
             $link = str_replace('{wechat_id}', $this->wecha_id, $url) . '&wecha_id=' . $this->wecha_id;
         } else {
             $link = str_replace('{wechat_id}', $this->wecha_id, $url) . '?wecha_id=' . $this->wecha_id;
         }
     }
     return $link;
 }
function U($strArr = '', $arrList = array(), $native = false, $hidePostFix = false)
{
    $querystr = '';
    $sys = C('System');
    if (!empty($strArr) && is_string($strArr) && strExists($strArr, '/')) {
        $strArr = explode('/', $strArr);
        if (count($strArr) == 2) {
            array_unshift($strArr, GROUP_NAME);
        }
        $strArr = array_merge_recursive(array('g' => $strArr[0], 'c' => $strArr[1], 'm' => $strArr[2]), $arrList);
    }
    if (!empty($strArr) && is_array($strArr)) {
        //====保证控制器和模型的顺序=====
        $tmp = array();
        foreach (array('g', 'c', 'm') as $val) {
            if (!isset($strArr[$val])) {
                $tmp[$val] = C('System', $val);
            } else {
                $tmp[$val] = $strArr[$val];
                unset($strArr[$val]);
            }
        }
        $strArr = array_merge($tmp, $strArr);
        if (empty($strArr['g']) || $strArr['g'] == C('System', 'default_group')) {
            unset($strArr['g']);
        }
        unset($tmp);
        //====保证控制器和模型的顺序=====
        if (($sys['path_mod'] == 1 || $sys['path_mod'] == 3) && !$native) {
            //开启PATH_INFO
            if (!C('System', 'hide_index') && !C('System', 'hide_urlkey')) {
                $querystr = '/';
            }
            if (is_array($strArr)) {
                foreach ($strArr as $key => $value) {
                    if (C('System', 'hide_urlkey') || in_array($key, array('g', 'c', 'm'))) {
                        $key = '';
                    } else {
                        $key .= C('System', 'delimiter');
                    }
                    $querystr .= $key . urlencode($value) . C('System', 'delimiter');
                }
                $querystr = rtrim($querystr, C('System', 'delimiter'));
            } else {
                $querystr .= $strArr;
            }
            if (!$hidePostFix) {
                $querystr .= C('System', 'postfix');
            }
            if (C('System', 'url_rule')) {
                //自定义路由规则
                foreach (C('System', 'url_rule') as $key => $val) {
                    if (strExists($querystr, $key)) {
                        $querystr = str_replace($key, $val, $querystr);
                        break;
                    }
                }
            }
        } elseif ($strArr) {
            //原生URL
            $querystr = '?' . http_build_query($strArr, '', '&');
        }
    }
    return setHideIndex(MAIN_URL . $querystr);
}