dede二次開發織夢
DEDE 區分 PC / 手機端 js (手機端PC端對應跳轉)
<script type="text/javascript"> function mobile_device_detect(url) { if(window.location.pathname != '/'){ url += window.location.pathname; } if(window.location.search != ''){ url += window.location.search; } var thisOS = navigator.platform; var device = new Array("iPhone","iPod","iPad","android","Nokia","SymbianOS","Symbian","Windows Phone","Phone","Linux armv71","MAUI","UNTRUSTED/1.0","Windows CE","BlackBerry","IEMobile"); for(var i=0;i<device.length;i++) { if(thisOS.match(device[i])) { window.location=url; } } //因為相當部分的手機系統不知道資訊,這裡是做臨時性特殊辨認 if(navigator.platform.indexOf('iPad') != -1) { window.location=url; } //做這一部分是因為Android手機的核心也是Linux //但是navigator.platform顯示資訊不盡相同情況繁多,因此從瀏覽器下手,即用navigator.appVersion資訊做判斷 //------ 測試這部分導致不管pc還是手機都跳到手機端,所以先註釋不用,測試就通過了! ------- //var check = navigator.appVersion; //if( check.match(/linux/i) ) //{ //X11是UC瀏覽器的平臺 ,如果有其他特殊瀏覽器也可以附加上條件 // if(check.match(/mobile/i) || check.match(/X11/i)) // { // window.location=url; // } //} //類in_array函式 Array.prototype.in_array = function(e) { for(i=0;i<this.length;i++) { if(this[i] == e) return true; } return false; } } mobile_device_detect("http://地址/m"); </script>
DEDE分頁js
/** * 分頁 * thisPage 當前頁 * allPage 總頁數 * url 跳轉地址 * idName 選擇器id名稱(放置分頁的位置) * showNum 展示幾個頁碼 */ function getPageShow(thisPage,allPage,rdurl,idName,showNum){ var str = '<ul>'; if(rdurl){ } //根據當前頁計算前後頁數 var leftPage_num = Math.floor( showNum / 2 ); var rightPage_num = showNum - leftPage_num; //左邊顯示數為當前頁減左邊該顯示的數 例如總顯示7頁 當前頁是5 左邊最小為5-3 右邊為5+3 var left = thisPage - leftPage_num; left = Math.max(left,1); //左邊最小不能小於1 var right = left + showNum - 1; //左邊加顯示頁數減1就是右邊顯示數 right = Math.min(right, allPage); //右邊最大不能大於總頁數 left = Math.max(right - showNum + 1 , 1); //確定右邊再計算左邊,必須二次計算 if (thisPage > 1) { str += '<li><a href=" '+ rdurl + (Number(thisPage)-1) +'">上一頁</a></li>'; }else{ str += '<li><a href="'+ rdurl + thisPage +'">上一頁</a></li>'; } if(left > 1){ str += ' ..'; } for (var i = left; i <= right; i++) { if(thisPage == i){ str += '<li><a class="now_page" href="'+ rdurl + i +'">'+ i +'</a></li>'; } else{ str += '<li><a href="'+ rdurl + i +'">'+ i +'</a></li>'; } } if(right < allPage){ str += ' ..'; } if (thisPage == allPage) { str += '<li><a href="'+ rdurl + allPage +'">下一頁</a></li>'; }else{ str += '<li><a href="'+ rdurl + (Number(thisPage)+1) +'">下一頁</a></li>'; } str += '</ul>'; $("." + idName).html(str); } function getRequest() { var url = location.search; //獲取url中"?"符後的字串 var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for ( var i = 0; i < strs.length; i++) { theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]); } } return theRequest; }
在DEDEcms的/member和/plus資料夾下,有許多模板需要呼叫當前模板的頭部和尾部,
同時使用同一個變數<?php pasterTempletDiy("head.htm"); ?>會出現問題,plus能正常使用,而會員中心卻打不開,
其實解決辦法很簡單,就是單獨寫變數。方法如下:
會員部分開啟/member/config.php,在最下面新增如下程式碼
//引入arc.partview.class.php類處理 require_once(DEDEINC."/arc.partview.class.php"); function pasterTempletDiy($path) { global $cfg_basedir,$cfg_templets_skin; $tmpfile = $cfg_basedir.$cfg_templets_skin."/".$path;//模版檔案的路徑 $dtp = new PartView(); $dtp->SetTemplet($tmpfile); $dtp->Display(); }
對應模板用:
<?php pasterTempletDiy("head.htm"); ?>
<?php pasterTempletDiy("footer.htm"); ?>
/plus檔案部分,把變數pasterTempletDiy換成變數pasterTempletDiy2即可:
//引入arc.partview.class.php類處理
require_once(DEDEINC."/arc.partview.class.php");
function pasterTempletDiy2($path)
{
global $cfg_basedir,$cfg_templets_skin;
$tmpfile = $cfg_basedir.$cfg_templets_skin."/".$path;//模版檔案的路徑
$dtp = new PartView();
$dtp->SetTemplet($tmpfile);
$dtp->Display();
}
對應模板用:
<?php pasterTempletDiy2("head.htm"); ?>
<?php pasterTempletDiy2("footer.htm"); ?>
{dede:php}標籤迴圈巢狀方法:
{dede:php}
$row = $dsql->Execute('me',"SELECT `id`,`typename`,`content` FROM dede_arctype WHERE `topid` = '上級id'"); //獲取一個欄目下的分類
while($arr = $dsql->GetArray('me'))
{
preg_match_all('#src\s*=\s*["\']?([^\s"\']*)#i', $arr['content'], $match); //欄目下分類的縮圖 :在欄目內容裡設定一張圖片,利用正則獲取img下src的路徑
foreach($match[1] AS $v)
{
echo '輸出樣式內容'; //$v是img下src的路徑
$row1 = $dsql->Execute('me1',"SELECT `id`,`title`,`source`,`click` FROM dede_archives WHERE `typeid` =".$arr['id']); //根據獲取當前$arr['id']獲取文章
while($arr1 = $dsql->GetArray('me1'))
{
echo '輸出樣式內容' ; //$arr1文章物件
}
}
}
{/dede:php}
DEDE內建標籤:
圖片集:
{dede:arclist addfields='piclinks欄位名稱' row='讀取幾行' typeid=上級id channelid='模型id'}
<a href="#" target="_blank" class="course_[field:global.autoindex/]"><img src="[field:litpic/]"/></a>
{/dede:arclist}
標籤內判斷變數:
[field:pubdate runphp=yes]
if(){
@me = field:pubdate; //@me 就是[field:pubdate runphp=yes]裡的field:pubdate
}
[/field:pubdate]
[field:array runphp=yes]
if( $GLOBALS['autoindex'] == 1){ //$GLOBALS['autoindex'] 自增1,2,3 ,用於css樣式
@me = ''; //@me = 物件 :@me['title'] 文章標題 [email protected]['litpic'] 文章縮圖
}else{
@me = '';
}
[/field:array]
文章迴圈 -- 根據樣式 $GLOBALS['autoindex']:
<!-- 文章列表 start -->
{dede:channelartlist typeid=121 row=6}
<div class="list tabs_news_{dede:global name='itemindex'/}">
{dede:arclist titlelen='42' row='30' orderby='pubdate' orderway='desc'}
[field:array runphp=yes]
$sum = $GLOBALS['dsql']->GetOne("SELECT COUNT(id) as sum FROM dede_archives WHERE typeid ="[email protected]['typeid']);
if($GLOBALS['autoindex']==$sum['sum'] && ($GLOBALS['autoindex'] -1) % 5 == 0){
@me = '<div class="box">
<div class="img">
<a href="'[email protected]['arcurl'].'">
<div class="play">
<h6>'[email protected]['title'].'</h6>
</div>
<img src="'[email protected]['litpic'].'" alt="'[email protected]['title'].'" />
</a>
</div>
<div class="newslist">
<ul></ul></div></div></div>';
}else if($GLOBALS['autoindex']==$sum['sum'] && $GLOBALS['autoindex'] % 5 == 0){
@me = '<li><strong> | </strong><a href="'[email protected]['arcurl'].'">'[email protected]['title'].'</a></li></ul></div></div></div>';
}else if(($GLOBALS['autoindex'] -1) % 5 == 0){
@me = '<div class="box">
<div class="img">
<a href="'[email protected]['arcurl'].'">
<div class="play">
<h6>'[email protected]['title'].'</h6>
</div>
<img src="'[email protected]['litpic'].'" alt="'[email protected]['title'].'" />
</a>
</div>
<div class="newslist">
<ul>';
}else if($GLOBALS['autoindex']%5 == 0){
@me = '<li><strong> | </strong><a href="'[email protected]['arcurl'].'">'[email protected]['title'].'</a></li></ul></div></div>';
}else{
if($GLOBALS['autoindex'] == $sum['sum']){
@me = '<li><strong> | </strong><a href="'[email protected]['arcurl'].'">'[email protected]['title'].'</a></li></ul></div></div></div>';
}else{
@me = '<li><strong> | </strong><a href="'[email protected]['arcurl'].'">'[email protected]['title'].'</a></li>';
}
}
[/field:array]
{/dede:arclist}
{/dede:channelartlist}
<!-- 文章列表 end -->
dede評論重寫
<?php
/**
*
* Ajax評論
*
* @version $Id: feedback_ajax.php 1 15:38 2010年7月8日Z tianya $
* @package DedeCMS.Site
* @copyright Copyright (c) 2007 - 2010, DesDev, Inc.
* @license http://help.dedecms.com/usersguide/license.html
* @link http://www.dedecms.com
*/
require_once(dirname(__FILE__).'/../include/common.inc.php');
require_once(DEDEINC.'/channelunit.func.php');
AjaxHead();
if($cfg_feedback_forbid=='Y') exit('系統已經禁止評論功能!');
$aid = intval($aid);
if(empty($aid)) exit('沒指定評論文件的ID,不能進行操作!');
include_once(DEDEINC.'/memberlogin.class.php');
$cfg_ml = new MemberLogin();
if(empty($dopost)) $dopost = '';
$page = empty($page) || $page<1 ? 1 : intval($page);
$pagesize = 10;
/*----------------------
獲得指定頁的評論內容
function getlist(){ }
----------------------*/
if($dopost=='getlist')
{
$res = GetList($page);
$res['page'] = GetPageList($pagesize, $res['totalcount']);
echo json_encode($res);
exit();
}
/*----------------------
傳送評論
function send(){ }
----------------------*/
else if($dopost=='send')
{
require_once(DEDEINC.'/charset.func.php');
//檢查驗證碼
if($cfg_feedback_ck=='Y')
{
$svali = strtolower(trim(GetCkVdValue()));
if(strtolower($validate) != $svali || $svali=='')
{
ResetVdValue();
ShowMsg('驗證碼錯誤,請點選驗證碼圖片更新驗證碼!','-1');
exit();
}
}
$arcRow = GetOneArchive($aid);
if(empty($arcRow['aid']))
{
ShowMsg('無法檢視未知文件的評論!','-1');
exit();
}
if(isset($arcRow['notpost']) && $arcRow['notpost']==1)
{
ShowMsg('這篇文件禁止評論!','-1');
exit();
}
if( $cfg_soft_lang != 'utf8' )
{
$msg = UnicodeUrl2Gbk($msg);
if(!empty($username)) $username = UnicodeUrl2Gbk($username);
}
//詞彙過濾檢查
if( $cfg_notallowstr != '' )
{
if(preg_match("#".$cfg_notallowstr."#i", $msg))
{
ShowMsg("評論內容含有禁用詞彙!",'-1');
exit();
}
}
if( $cfg_replacestr != '' )
{
$msg = preg_replace("#".$cfg_replacestr."#i", '***', $msg);
}
if( empty($msg) )
{
ShowMsg ("評論內容可能不合法或為空!",'-1');
exit();
}
if($cfg_feedback_guest == 'N' && $cfg_ml->M_ID < 1)
{
ShowMsg("管理員禁用了遊客評論!<a href='{$cfg_cmspath}/member/login.php'>點選登入</a></font>",'-1');
exit();
}
//檢查使用者
$username = empty($username) ? '遊客' : $username;
if(empty($notuser)) $notuser = 0;
if($notuser==1)
{
$username = $cfg_ml->M_ID > 0 ? '匿名' : '遊客';
}
else if($cfg_ml->M_ID > 0)
{
$username = $cfg_ml->M_UserName;
}
else if($username!='' && $pwd!='')
{
$rs = $cfg_ml->CheckUser($username, $pwd);
if($rs==1)
{
$dsql->ExecuteNoneQuery("Update `#@__member` set logintime='".time()."',loginip='".GetIP()."' where mid='{$cfg_ml->M_ID}'; ");
}
$cfg_ml = new MemberLogin();
}
//檢查評論間隔時間
$ip = GetIP();
$dtime = time();
if(!empty($cfg_feedback_time))
{
//檢查最後發表評論時間,如果未登陸判斷當前IP最後評論時間
$where = ($cfg_ml->M_ID > 0 ? "WHERE `mid` = '$cfg_ml->M_ID' " : "WHERE `ip` = '$ip' ");
$row = $dsql->GetOne("SELECT dtime FROM `#@__feedback` $where ORDER BY `id` DESC ");
if(is_array($row) && $dtime - $row['dtime'] < $cfg_feedback_time)
{
ResetVdValue();
ShowMsg("管理員設定了評論間隔時間,請稍等休息一下!",'-1');
exit();
}
}
$face = 1;
extract($arcRow, EXTR_SKIP);
$msg = cn_substrR(TrimMsg($msg), 500);
$username = cn_substrR(HtmlReplace($username,2), 20);
if(empty($feedbacktype) || ($feedbacktype!='good' && $feedbacktype!='bad'))
{
$feedbacktype = 'feedback';
}
//儲存評論內容
if(!empty($fid))
{
$row = $dsql->GetOne("SELECT username,msg from `#@__feedback` WHERE id ='$fid' ");
$qmsg = '{quote}{content}'.$row['msg'].'{/content}{title}'.$row['username'].' 的原帖:{/title}{/quote}';
$msg = addslashes($qmsg).$msg;
}
$ischeck = ($cfg_feedbackcheck=='Y' ? 0 : 1);
$arctitle = addslashes(RemoveXSS($title));
$typeid = intval($typeid);
$feedbacktype = preg_replace("#[^0-9a-z]#i", "", $feedbacktype);
$inquery = "INSERT INTO `#@__feedback`(`aid`,`typeid`,`username`,`arctitle`,`ip`,`ischeck`,`dtime`, `mid`,`bad`,`good`,`ftype`,`face`,`msg`)
VALUES ('$aid','$typeid','$username','$arctitle','$ip','$ischeck','$dtime', '{$cfg_ml->M_ID}','0','0','$feedbacktype','$face','$msg'); ";
$rs = $dsql->ExecuteNoneQuery($inquery);
if( !$rs )
{
ShowMsg("發表評論出錯了!",'-1');
//echo $dslq->GetError();
exit();
}
$newid = $dsql->GetLastID();
/*給文章評分
if($feedbacktype=='bad')
{
$dsql->ExecuteNoneQuery("UPDATE `#@__archives` SET scores=scores-{cfg_feedback_sub},badpost=badpost+1,lastpost='$dtime' WHERE id='$aid' ");
}
else if($feedbacktype=='good')
{
$dsql->ExecuteNoneQuery("UPDATE `#@__archives` SET scores=scores+{$cfg_feedback_add},goodpost=goodpost+1,lastpost='$dtime' WHERE id='$aid' ");
}
else
{
$dsql->ExecuteNoneQuery("UPDATE `#@__archives` SET scores=scores+1,lastpost='$dtime' WHERE id='$aid' ");
}*/
//給使用者增加積分
if($cfg_ml->M_ID > 0)
{
#api{{
if(defined('UC_API') && @include_once DEDEROOT.'/api/uc.func.php')
{
//同步積分
uc_credit_note($cfg_ml->M_LoginID, $cfg_sendfb_scores);
//推送事件
$arcRow = GetOneArchive($aid);
$feed['icon'] = 'thread';
$feed['title_template'] = '<b>{username} 在網站發表了評論</b>';
$feed['title_data'] = array('username' => $cfg_ml->M_UserName);
$feed['body_template'] = '<b>{subject}</b><br>{message}';
$url = !strstr($arcRow['arcurl'],'http://') ? ($cfg_basehost.$arcRow['arcurl']) : $arcRow['arcurl'];
$feed['body_data'] = array('subject' => "<a href=\"".$url."\">$arcRow[arctitle]</a>", 'message' => cn_substr(strip_tags(preg_replace("/\[.+?\]/is", '', $msg)), 150));
$feed['images'][] = array('url' => $cfg_basehost.'/images/scores.gif', 'link'=> $cfg_basehost);
uc_feed_note($cfg_ml->M_LoginID,$feed); unset($arcRow);
}
#/aip}}
$dsql->ExecuteNoneQuery("UPDATE `#@__member` set scores=scores+{$cfg_sendfb_scores} WHERE mid='{$cfg_ml->M_ID}' ");
$row = $dsql->GetOne("SELECT COUNT(*) AS nums FROM `#@__feedback` WHERE `mid`='".$cfg_ml->M_ID."'");
$dsql->ExecuteNoneQuery("UPDATE `#@__member_tj` SET `feedback`='$row[nums]' WHERE `mid`='".$cfg_ml->M_ID."'");
}
$_SESSION['sedtime'] = time();
if($ischeck==0)
{
ShowMsg("成功發表評論,但需稽核後才會顯示你的評論!",'-1');
exit();
}
else
{
$spaceurl = '#';
if($cfg_ml->M_ID > 0) $spaceurl = "{$cfg_memberurl}/index.php?uid=".urlencode($cfg_ml->M_LoginID);
$id = $newid;
$msg = stripslashes($msg);
$msg = str_replace('<', '<', $msg);
$msg = str_replace('>', '>', $msg);
helper('smiley');
$msg = RemoveXSS(Quote_replace(parseSmileys($msg, $cfg_cmspath.'/images/smiley')));
//$msg = RemoveXSS(Quote_replace($msg));
if($feedbacktype=='bad') $bgimg = 'cmt-bad.gif';
else if($feedbacktype=='good') $bgimg = 'cmt-good.gif';
else $bgimg = 'cmt-neu.gif';
global $dsql, $aid, $pagesize, $cfg_templeturl;
if($cfg_ml->M_ID==""){
$mface=$cfg_cmspath."/member/templets/images/dfboy.png";
} else {
$row = $dsql->GetOne("SELECT face,sex FROM `#@__member` WHERE mid={$cfg_ml->M_ID} ");
if(empty($row['face']))
{
if($row['sex']=="女") $mface=$cfg_cmspath."/member/templets/images/dfgirl.png";
else $mface=$cfg_cmspath."/member/templets/images/dfboy.png";
}
}
}
exit();
}
/**
* 讀取列表內容
*
* @param int $page 頁碼
* @return string
*/
function GetList($page=1)
{
global $dsql, $aid, $pagesize, $cfg_templeturl,$cfg_cmspath;
$querystring = "SELECT fb.*,mb.userid,mb.face as mface,mb.spacesta,mb.scores,mb.sex FROM `#@__feedback` fb
LEFT JOIN `#@__member` mb on mb.mid = fb.mid WHERE fb.aid='$aid' AND fb.ischeck='1' ORDER BY fb.id DESC";
$row = $dsql->GetOne("SELECT COUNT(*) AS dd FROM `#@__feedback` WHERE aid='$aid' AND ischeck='1' ");
$totalcount = (empty($row['dd']) ? 0 : $row['dd']);
$startNum = $pagesize * ($page-1);
if($startNum > $totalcount)
{
echo "引數錯誤!";
return $totalcount;
}
$str = '';
$dsql->Execute('fb', $querystring." LIMIT $startNum, $pagesize ");
while($fields = $dsql->GetArray('fb')){
$str .= '<li>
<div class="clearfix">
<span class="section_reply_photo"><img src="'.$fields['mface'].'" /></span>
<p class="f_col_DarkGray"><strong>'.$fields['username'].'</strong><span>'.date('Y-m-d H:i',$fields['dtime']).'</span></p>
<p class=" song "><span class="reply_time">'.$fields['msg'].'</span> </p>
</div>
</li>';
}
$res['totalcount'] = $totalcount;
$res['msg'] = $str;
return $res;
}
/**
* 獲取分頁列表
*
* @param int $pagesize 顯示條數
* @param int $totalcount 總數
* @return string
*/
function GetPageList($pagesize, $totalcount,$showNum='5')
{
global $page;
$curpage = empty($page) ? 1 : intval($page);
$allpage = ceil($totalcount / $pagesize);
$pagestr = '';
if($totalcount <= 0)
{
return '';
}
$pagestr .= '<ul>';
//根據當前頁計算前後頁數
$leftPage_num = ceil( $showNum / 2 );
$rightPage_num = $showNum - $leftPage_num;
//左邊顯示數為當前頁減左邊該顯示的數 例如總顯示7頁 當前頁是5 左邊最小為5-3 右邊為5+3
$left = $page - $leftPage_num;
$left = $left <= 0 ? 1 : $left; //左邊最小不能小於1
$right = $left + $showNum - 1; //左邊加顯示頁數減1就是右邊顯示數
$right = $right <= $allpage ? $right : $allpage; //右邊最大不能大於總頁數
$left = $right - $showNum + 1 <= 0 ? 1 : $left; //確定右邊再計算左邊,必須二次計算
if ($page > 1) {
$pagestr .= "<a href='#' onclick='LoadCommets(".($curpage-1).");'>上一頁</a>";
}else{
$pagestr .= "<a href='#' onclick='LoadCommets(".$curpage.");'>上一頁</a>";
}
for ($i = $left; $i <= $right; $i++)
{
if($page == $i){
$pagestr .= "<li><a href='#' class='now_page' onclick='LoadCommets(".$i.");'>".$i."</a></li>";
}else{
$pagestr .= "<li><a href='#' onclick='LoadCommets(".$i.");'>".$i."</a></li>";
}
}
if ($page == $allPage) {
$pagestr .= "<a href='#' onclick='LoadCommets(".$allPage.");'>下一頁</a>";
}else{
$pagestr .= "<a href='#' onclick='LoadCommets(".($curpage+1).");'>上一頁</a>";
}
$pagestr .= '</ul>';
return $pagestr;
}
html:
<script type="text/javascript">
$(function () {
$pageno = "1";
LoadCommets($pageno);
});
//獲取評論列表內容
function LoadCommets(pageno) {
aid = "{dede:field.id/}";
$.post('/plus/feedback_ajax.php',{dopost:'getlist',aid:aid,page:pageno},function (res) {
res = JSON.parse(res);
$('.clink_pager').html(res.page);
$('.section_reply').html(res.msg);
});
}
function changeAuthCode() {
var num = new Date().getTime();
var rand = Math.round(Math.random() * 10000);
num = num + rand;
$('#ver_code').css('visibility','visible');
if ($("#vdimgck")[0]) {
$("#vdimgck")[0].src = "../include/vdimgck.php?tag=" + num;
}
return false;
}
//提交前檢驗
function vaildSend() {
if($('textarea').val().length > 200){
alert("你的評論是不是太長了?請填寫200字以內的評論。");
return false;
}
if($('textarea').val() == ''){
alert("評論內容不能為空!");
return false;
}
if($("input[name='validate']").val() == ''){
alert("請填寫驗證碼!");
return false;
}
}
</script>
<div class="comm">
<!-- 發表評論 /s -->
<div class="comm_pub clearfix">
<form action="/plus/feedback_ajax.php" method="post" onsubmit="return vaildSend()">
<input type="hidden" name="dopost" value="send" />
<input type="hidden" name="comtype" value="comments" />
<input type="hidden" name="aid" value="{dede:field.id/}">
<input type="hidden" name="fid" id="feedbackfid" value="0" />
<h4>評論(500):</h4>
<textarea name="msg" rows="4"></textarea>
<p class="fr">
<img src="{dede:global.cfg_cmspath/}/include/vdimgck.php" id="validateimg" onclick="this.src=this.src+'?'" style="cursor: pointer;" alt="看不清?點選更換"/>
驗證碼: <input type="text" name="validate" size="4" style="text-transform:uppercase;border:solid 2px #ddd;border-radius: 3px;width: 60px;" />
<button >發表評論</button>
</p>
</form>
</div>
<!-- 發表評論 /e -->
<div class="comm_list clearfix ">
<ul class="section_reply">
<!-- 評論內容 -->
</ul>
<div class="clink_pager" data-allpage="1">
<!-- 分頁 -->
</div>
</div>
</div>
</div>
相關推薦
dede二次開發織夢
DEDE 區分 PC / 手機端 js (手機端PC端對應跳轉) <script type="text/javascript"> function mobile_device_detect(url) { if(window.location.pathnam
(dede)織夢系統二次開發筆記
func 頭條 mem ima lac keywords 引號 系統 日期 (dede)織夢系統二次開發記錄 --soulsjie 一、模板常用文件說明 模板文件都在文件夾templets下,我們以默認模板(default)為例,對模板文件結構進行分析: 首頁模板文件目錄
織夢DedeCMS的二次開發之數據庫類操作
高亮顯示 delete from 進行 往裏面 參考 如何 tps .com 1.創建數據表 為了讓講解更加的貼合實際,天涯版主創建了一個名為"dede_test"的表,裏面就2個字段,1個id,作為唯一標識,另一個name作為名稱。然後往裏面添加測試數據,這個操作類似於A
(轉)織夢DedeCMS二次開發聯動篩選功能的實現(含多選功能)
原文:http://www.dedejs.com/html/article-571-1.html點選開啟連結織夢預設的列表頁沒有篩選功能,但有時候我們做產品列表頁的時候,產品的欄位比較多,很多人都需要用到篩選功能,這樣可以讓使用者更方便的找到自己所需要的東西,實現這個聯動篩選
dede模版引擎二次開發(增加修改顯示)
add.php <?php require_once ("../include/common.inc.php"); //這個兩行就是連線資料成功了 $dsql.方法(執行SQL語句完畢); require_once DEDEINC."/arc.partview.
dedecms二次開發:dedetemplate.class.php 動態模板類
filename 外部 運行 mpi public esc val net color dedecms二次開發目錄點這個:dedecms二次開發教程目錄 核心類文件 include/dedetemplate.class.php 用途:用於非核心模塊的動態頁面或列表頁的模板解
VB.Net實現下CATIA二次開發方法
ror 點擊 doc struct cat inf 定義 then ports 源自網絡。 在visual studio(vb,c#,c++)下使用CATIA進行二次開發有如下特點: -->需要引用CATIA的對象庫 -->需要對象聲明(visua
呼叫中心系統OA二次開發
清單 二次開發 工作 註意 分辨率 傳真 新增 歷史 有效 1. 既有修改 分辨率顯示自適應調整 工作流數據調整 2. 呼叫中心 語音電話 l 新建任務 字段:任務主題、語音主題、提
(6)微信二次開發 之 微信文本消息接口實現
微信 odin link 消息處理 nal puts 算法 帳號 接口實現 p.p1 { margin: 13.0px 0.0px 13.0px 0.0px; text-align: justify; font: 16.0px SimSun } p.p2 { margin:
學習 MeteoInfo二次開發教程(一)
mat 沒有 組件 資源管理 img 教程 layer 添加 bbs 來自氣象家園:http://bbs.06climate.com/forum.php?mod=viewthread&tid=6631 按照教程,沒有太大問題,有些是對c#操作不熟悉導致。 1.添加d
學習 MeteoInfo二次開發教程(三)
開發教程 cnblogs false raw class .dll dll inf legend 1.breakList的問題 ((PolygonBreak) aLS.breakList[0]).DrawFill=false; 新的類庫將LegendScheme的brea
學習 MeteoInfo二次開發教程(四)
手動添加 map dem itl 數控 nas 字號 south title 教程四的問題不大。 1.private void AddMapFrame_ChinaSouthSea()、private void AddTitle()兩個函數和public Form1()函數並
Revit二次開發--Hello World
man dem users att try encoding cli 引用 類庫 部署完開發環境,就要進行每次學習新的技能,必寫的Hello World。 1、打開VS開發環境,新建一個項目類庫RevitDemo。 2、修改Class1名稱為Command。 3、在引
GTS-800二次開發基本流程總結
win highlight line names 關閉 參數 ble 名稱 速度 1、打開控制器 GT_Open 2、啟動伺服使能 GT_ClrSts 3、軸規劃位置清零 GT_SetPrfPos 4、軸運動模式
AE二次開發,解決子窗體使用父窗體的AxControl控件
控件 con pri apc sha item object new end 在子窗體寫構造函數,然後再在父窗體按鈕點擊事件下寫 public frmIDW(AxMapControl axMapControl1) { Initia
學習MeteoInfo二次開發教程(十二)
odi 資源 level 無法訪問 .cn oid pub images bsp 1.添加新的Form窗體: 在解決方案資源管理器中,右鍵MeteoInfoDemo,“添加”,“Windows 窗體” 2.新窗體中添加好layersLegend1和Layout之後,要把la
一個星期實現二次開發,解決很多用戶無法解決的問題
解決方案 版本號 臨時性 開發 用戶 最近,收到一個用戶的體驗分享,他用一個星期完成對H3的從陌生到基本熟悉,再從基本屬性到基本二次自定義開發,對於他對我我們H3的支持,我們表示感謝~~以下是對該用戶的實例分享整理。-------------------------------------
java代碼生成器 快速開發平臺 二次開發 外包項目利器 springmvc SSM後臺框架源碼
java 下拉聯動 頭像裁剪 圖片裁剪 springmvc A 調用攝像頭拍照,自定義裁剪編輯頭像,頭像圖片色度調節 B 集成代碼生成器 [正反雙向](單表、主表、明細表、樹形表,快速開發利器)+快速表單構建器 freemaker模版技術 ,0個代碼不用寫,生成完整的一個模塊,帶
QGIS(PYTHON3.5、QT5.7.1、QGIS3)系列二次開發環境
qgis c++ python 二次開發 QGIS(PYTHON3.5、QT5.7.1、QGIS3系列二次開發環境,所有環境以虛擬機方式提供,以便研究或直接使用。 具體包括:獨立應用二次開發環境(WINDOWS,LINUX);android二次開發;獨立應用PYTHON二次開發環境(WI
AE二次開發中幾個功能速成歸納(符號設計器、創建要素、圖形編輯、屬性表編輯、緩沖區分析)
文件夾路徑 及其 基本框架 option 開啟 rgs database ets remove /* * 實習課上講進階功能所用文檔,因為趕時間從網上抄抄改改,湊合能用,記錄一下以備個人後用。 * * --------------------------------