/** * 数据库导入 */ 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'); } }
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); }
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; }
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; }
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; } }
/** * 获取链接 * * @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}', '&'), 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; }
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> <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; }
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; }
/** * 根据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); }
/** * 获取链接 * * @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}', '&'), 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; }
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; } }
/** * 获取链接 * * @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); }