Namespace.register("U.CD.SL"); //注册示例项目区域
U.CD.SL.MySQL = "mysql"; //后台据此判断是到mongodb还是mysql。type是命令类型
U.CD.SL.Data = null; //保存示例中的数据,避免数据库频繁刷新。
U.CD.SL.PrePD = null; //保存了示例项目中评论和大图2个按钮,在onmouseover中切换状态。
//示例项目
U.CD.SL.Init = function () {
// if (!$("#UCD_SL_N_F_R")[0].childNodes.length) U.D.AD.BDGG($("#UCD_SL_N_F_R")[0], '897767'); //百度广告,外部js加载不成功,导致本网站js不能运行,奇怪了
//暂时做几个功能,以后扩充。
//var _lans = $("#UCD_SL_N_F")[0].getElementsByTagName("div"), i;
//for (i = 0; i < _lans.length; i++) { if (_lans[i].innerHTML != "HTML5语言") _lans[i].onclick = U.M.apply(this, [[alert, (["有空看看http://www.1473.cn,有惊喜!"])]]) }
// var _s = $("#UCD_SL")[0];
// //_s.style.width = document.body.clientWidth * 0.67 + "px"; //设置展示区域宽度
// _s.style.width = "1000px";
// _s.style.left = (document.body.clientWidth - parseInt(_s.style.width)) / 2 + "px"; //宽度居中
// _s.style.height = document.body.clientHeight - 20 - 20 - 80 + "px"; //减去头部和尾部高度
// _s.style.display = "block"; //显示或隐藏
var UCD_SL_T_Width, UCD_SL_T_Left, UCD_SL_T_height;
UCD_SL_T_Width = "1000px";
UCD_SL_T_Left = (document.body.clientWidth - parseInt(UCD_SL_T_Width)) / 2 + "px";
UCD_SL_T_height = document.body.clientHeight - 20 - 20 - 80 + "px";
U.UF.UI.Form({ id: "UCD_SL_T", style: { "width": UCD_SL_T_Width, "left": UCD_SL_T_Left, "top": "5%", "height": UCD_SL_T_height }, title: "成功案例" })
$("#UCD_SL_T .UD_SYF_SCO").append($(".UCD_SL_N_T")[0]);
$("#UCD_SL_T .UD_SYF_SCO").append($(".UCD_SL_NN")[0]);
//$("#UCD_SL_N_N")[0].style.height = _s.clientHeight - 100 + "px";
//选取数据库所有数据,参数1表示滚动加载的页数,以后再修正为滚动加载,数据库默认1次加载500条。
//为了避免频繁加载,结果需要保存到全局变量中。
if (!U.CD.SL.Data || true) {// 加个true 刷新案例
//try catch不成功?以后再搞
try {
//第一个参数:请求的后台地址。第二个参数是一个数组(数据库名字,存储过程名字,后面的都是存储过程的参数)
//第三个参数是回调函数。第四个是回调参数。
U.ACD.Request(U.CD.AjaxUrl, ([U.CD.SL.MySQL, "Select_All", 1, U.CD.USLang]), U.CD.SL.Display, ([""]));
}
catch (e) { alert("数据库连接暂时不成功,但不影响客户端操作"); }
}
}
//弹出切换语言窗口
U.CD.SL.L = function () {
// var _b = $("#UCD_L_C")[0];
// _b.style.width = "537px";
// _b.style.left = (document.body.clientWidth - parseInt(_b.style.width)) / 2 + "px"; //宽度居中
// // _b.style.height = document.body.clientHeight - 20 - 20 - 430 + "px"; //减去头部和尾部高度
// _b.style.display = "block"; //显示或隐藏
if ($("#test")[0]) {
$("#test")[0].style.display = "block"
} else {
U.UF.UI.Form({ id: "test", "class": "UCD_L_C", style: { "width": "537px", "left": "698px", "height": "298px", "top": "256px" }, title: "云端切换语言" });
$("#test .UD_SYF_SCO")[0].appendChild($(".UCD_SL_C_N")[0]);
$("#test .UD_SYF_SCO")[0].style.overflow = "hidden";
$("#UCD_L_C")[0].style.display = "none";
}
}
//展示数据库中发布的项目
U.CD.SL.Display = function (r) {
if (r.value == "") { U.CD.SL.Init(); }
var _r = U.CD.SL.Data = r.value[0]; //获取mysql数据库返回的数据。
U.CD.SL.DisFlow(_r);
}
U.CD.SL.DisFlow = function (_r) {
var _nr = $("#UCD_SL_N_N")[0], i, j, _l; //_l流式布局个数定义
var userId = U.M.Cookies.get("usestudiosso") && U.M.Cookies.get("usestudiosso").split("&").filter(function (v) { return v.indexOf("userid") != -1 }); //当前登录用户的id
userId && (userId = userId[userId.length - 1].split("=")[1]);
$("#UCD_SL_N_N")[0].innerHTML = ""; //清空div
if (!_r.length) _nr.innerHTML = "
暂时无人添加示例,您可以来添加哦,分享是一种美德,点此分享!
";
_l = U.CD.SL.Flowlayout(_nr, 140, 7); //返回列数,如果已经做了流式布局,下一次进来不再调用此函数。
var a = _r, len = a.length, tp;
for (i = 0; i < len; i++) {
for (j = i; j < len; j++) {
if (Date.parse(a[i].CreateDate) < Date.parse(a[j].CreateDate)) {//按时间排序 降序
tp = a[i];
a[i] = a[j];
a[j] = tp;
}
}
}
_r = a;
for (i = 0; i < _r.length; i++) {
var _p = $("#UCD_SL_N_N")[0]; //找到流式布局点,追加相应元素,这是技巧,为了兼容Chrome,使用了Uq方法获取孩子节点 .Child()[i % _l]
//var _src = "http://www.1473.cn/img/usestudiobackgroudnimage/beta1/bg1(1).jpg";
var _a = $$("div", { "className": "UCD_SL_N_N_C", "onmouseover": [[U.CD.SL.DisReply, (["retElement", _r[i]])]], "onclick": [[U.CD.SL.DisOther, ([_r[i]])]] }, _p); //单个样式
$$("img", { "className": "UCD_SL_N_N_C_I", "src": _r[i].DImg, "onerror": [U.MD.C.imgError, (["this", 1])] }, _a); //图像样式
var _b = $$("div", { "className": "UCD_SL_N_N_C_RD" }, _a); //评论,大图样式
var pl = $$("div", { "className": "UCD_SL_N_N_C_R" }, _b); //评论样式
$$("img", { "src": "../images/cgal_dt.png", "onclick": [[U.UF.EV.stopBubble], [U.Img.Create, ([{ 'Img': _r[i].DImg, 'Thm': _r[i].DSmallImg}])]] }, pl);
//"onclick": [[U.UF.EV.stopBubble], [U.Img.Create, ([{ 'Img': _r[i].DImg, 'Thm': _r[i].DSmallImg}])]]
//"onclick": [[U.UF.EV.stopBubble], [U.CD.OU.Reply, ([_r[i].DID])]]
//如果是管理员账号,则添加一个发布审核按钮。
/*if (U.CD.U.IsUSelf().userid == "baa5e5ae-0fc2-4eab-ba44-cd993d6ce5a1")
$$("div", { "className": "UCD_SL_N_N_C_S", "innerHTML": "审核", "onclick": [[U.UF.EV.stopBubble], [U.CD.SL.VerConfirm, ([_r[i]])]] }, _b); //评论样式*/
var dt = $$("div", { "className": "UCD_SL_N_N_C_D" }, _b); //大图样式
$$("img", { "src": "../images/cgal_pl.png", "onclick": [[U.UF.EV.stopBubble], [U.CD.OU.Reply, ([_r[i].DID])]] }, dt);
_r[i].DBrief = _r[i].DBrief.replace(/\r\n/g, '
'); //换行符号处理
$$("div", { "className": "UCD_SL_N_N_C_T", "title": _r[i].DName, "innerHTML": _r[i].DName }, _a); //标题样式
$$("div", { "className": "UCD_SL_N_N_C_N", "innerHTML": _r[i].DBrief }, _a); //内容样式
if (userId && (userId == _r[i].UserID)) {//只有用户自己的案例才可以修改
$$("div", { "className": "UCD_SL_N_N_C_XG", "onclick": [[U.UF.EV.stopBubble], [U.CD.SL.Publish, [null, US.userInfo.UserId, _r[i]]]] }, _b); //修改
$$("div", { "className": "UCD_SL_N_N_C_SC", "onclick": [[U.UF.EV.stopBubble], [function (id, div) {//删除的函数
U.UF.UI.Confirm("确定要删除吗?", [function (id, div) { //confirm
var rt = U.ACD.Request(U.CD.AjaxUrl, ([U.CD.SL.MySQL, "Develop_delete_example", id]), 0, ([""])); //删除数据库案例
if (rt.value.affectedRows == 1) {//影响行数
$(div).remove(); //把div删除了
U.Alert("删除成功!"); //弹个框
}
}, ([id, div])], [function () { }, ([])]);
}, [_r[i].DID, _a]]]//id和div传进去
}, _b); //删除
}
//U.ACD.Request(U.CD.AjaxUrl, ([U.CD.SL.MySQL, "Select_All", 1, U.CD.USLang]), U.CD.SL.Display, ([""]));
}
}
//精华,提问,等切换区域
U.CD.SL.Type = function (t) {
//如果前台有数据,切换时筛选数据
var d = U.CD.SL.Data, n = d.length, i, _r = [];
if (d) {
for (i = 0; i < n; i++) {
if (d[i].DType == t)
_r.push(d[i]);
}
}
$("#UCD_SL_N_N")[0].innerHTML = "";
U.CD.SL.DisFlow(_r);
}
//搜索函数
U.CD.SL.Sou = function (o) {
var s = o.parentNode.getElementsByTagName("input")[0].value;
var d = U.CD.SL.Data, n = d.length, i, _r = [];
if (d) {
for (i = 0; i < n; i++) {
if (d[i].DName.indexOf(s) > -1)
_r.push(d[i]);
}
}
$("#UCD_SL_N_N")[0].innerHTML = "";
U.CD.SL.DisFlow(_r);
}
//回车搜索
U.CD.SL.SouEnter = function (o) {
if (event.keyCode == 13) {
var s = o.parentNode.getElementsByTagName("input")[0].value;
var d = U.CD.SL.Data, n = d.length, i, _r = [];
if (d) {
for (i = 0; i < n; i++) {
if (d[i].DName.indexOf(s) > -1)
_r.push(d[i]);
}
}
$("#UCD_SL_N_N")[0].innerHTML = "";
U.CD.SL.DisFlow(_r);
}
}
//鼠标移动到相关条目时弹出查看该项目评论信息。
U.CD.SL.DisReply = function (SO, r) {
//给SO添加2个div,用来查看评论和大图
var _s, i;
if (U.CD.SL.PrePD) { if (U.CD.SL.PrePD.childNodes[1]) { _s = U.CD.SL.PrePD.childNodes[1].childNodes; for (i = 0; i < _s.length; i++) { _s[i].style.display = "none"; } } }
_s = SO.childNodes[1].childNodes; for (i = 0; i < _s.length; i++) { _s[i].style.display = "block"; }
U.CD.SL.PrePD = SO;
}
//弹出审核确认取消框。
U.CD.SL.VerConfirm = function (r) {
U.UF.UI.Confirm("你确定取消" + r.DName + "在首页中的显示吗?", [U.CD.SL.Verify, ([r])], "");
}
//去数据库通过审核,展示在前台供其他用户查看项目。
U.CD.SL.Verify = function (r) {
U.ACD.Request(U.CD.AjaxUrl, ([U.CD.SL.MySQL, "Add_Develop", r.DID, r.UserID, r.UserName, r.DName, r.DBrief, r.DSmallImg, r.DImg, r.DPrice, "0"]), U.CD.SL.VerifyAsyn, ([""]));
}
//数据库是否成功
U.CD.SL.VerifyAsyn = function (r) {
r.value[0].length ? alert("审核成功") : alert("审核失败");
}
//展示其他人的项目。
U.CD.SL.DisOther = function (u) {
//window.open("http://d.1473.cn/" + "#!/" + encodeURI(u.DID + "|" + u.UserID));
$("#UCD_SL_T")[0].style.display = "none";
U.CD.Url.Param(["#!", u.DID + "|" + u.UserID]); //采用本窗口加载模式
}
//前端后端切换
U.CD.SL.Change = function (l) {
U.UF.UI.Confirm("你确定切换到" + l + "后端吗?前端:包括HTML,CSS,Javascript等知识.后端:包括C语言,PHP语言,Ruby语言等.
", [U.CD.SL.ChangeAsyn, ([l])], "");
}
U.CD.SL.ChangeAsyn = function (l) { window.open("http://c.1473.cn/" + "#!/" + l); } //异步采用新窗口模式
//流式布局函数,封装起来,以后给UC。参数1为大的元素,参数2为小元素的宽度,各个小元素的margin,此函数返回值为列数
U.CD.SL.Flowlayout = function (NR, W, M) {
// var _a = NR.clientWidth, i; //大容器宽度
// var _num = Math.floor(_a / (W + 2 * M)); //小元素宽度
// //添加列数到大元素
// for (i = 0; i < _num; i++) {
// $$("div", { "style": { "width": W + "px", "margin": M + "px" }, "className": "UCD_SL_N_N_L" }, NR); //追加流式布局的包容器
// }
// return _num;
var _a = NR.clientWidth, i; //大容器宽度
var _num = Math.floor(_a / (W + 2 * M)); //小元素宽度
//添加列数到大元素
for (i = 0; i < 5; i++) {
$$("div", { "style": { "width": "185px", "margin-right": "10px" }, "className": "UCD_SL_N_N_L" }, NR); //追加流式布局的包容器
}
return _num;
}
//-------------------------------------------------------------------发布项目到首页区域-----------------------------------------------------
//发布一个项目,会添加到示例项目区域。
U.CD.SL.Publish = function (SO, userid, node) {
//到数据库查询是否已经发不过。
U.ACD.Request(U.CD.AjaxUrl, ([U.CD.SL.MySQL, "Select_One", node.ID]), U.CD.SL.ISPub, (["", SO, userid, node]));
}
//--------------------------------------UJ框架RadioList控件-------------------------------------------------
//S是一个json,表示多个Checkbox的内容,D表示需要生成checkbox的父亲元素,比如一个div
//调用方法。//var ra = U.UF.UI.RadioList($("#UCD_FB_N_CK_CK")[0], { "TW": "提问", "ZY": "作业", "JH": "精华", "CT": "控件" });
//取值方法 ra.value();可以获取用户选择的值。
U.UF.UI.RadioList = function (D, S) {
var T = new U.UF.UI.RadioListT(D, S);
T.init(); //初始化单选按钮组。
return T;
}
U.UF.UI.RadioListT = function (D, S) {
if (U.M.GetType(S) != "Object") return; //如果不是数组,返回
D.innerHTML = ""; //清空以前的
this.D = D; this.S = S; this.A = []; //所有checkbox元素,用于选择, //返回选中的Checkbox。
}
U.UF.UI.RadioListT.prototype = {
init: function () {
var S = this.S, p, c; //得到Checkbox长度,p为span,c为checkbox
for (var s in S) {
if (S.hasOwnProperty(s)) {
p = $$("div", { "innerHTML": S[s], "style": { "cssText": "margin-left:5px;"} }, this.D);
c = $$("input", { "type": "radio", "value": s, "onclick": [this.radiochecked, ([this, "retElement"])] }, p);
this.A.push(c);
}
}
this.A[0].checked = true;
},
//选中函数,其他全部不选中,单击的元素选中。r为保证作用域,"retElement"表示radio元素本身。
radiochecked: function (r, o) {
var i; for (i = 0; i < r.A.length; i++) r.A[i].checked = false; o.checked = true;
},
//返回被选中的值
value: function () {
var i; for (i = 0; i < this.A.length; i++) if (this.A[i].checked == true) return this.A[i].value;
return this.A[0].value; //默认返回第一个元素
}
}
//检测以前是否发布过的异步函数
U.CD.SL.ISPub = function (r) {
//清空以前数据
var SO = r.context[1], userid = r.context[2], node = r.context[3]; //得到传递的参数
var _r = r.value[0]; //得到数据库的值。
//如果没获取到数据,表示没发不过,所有选项清空,否则,表示修改,把数据库的值赋予各个选项。
if (_r.length == 0) { $("#UCD_FB_N_N_Name")[0].value = "", $("#UCD_FB_N_N_T")[0].value = "", $("#UCD_FB_NR_IMG")[0].value = "", $("#UCD_FB_N_N_P")[0].value = ""; }
else { _r = _r[0]; $("#UCD_FB_N_N_Name")[0].value = _r.DName, $("#UCD_FB_N_N_T")[0].value = _r.DBrief, $("#UCD_FB_NR_IMG")[0].src = _r.DSmallImg, $("#UCD_FB_N_N_P")[0].value = _r.DPrice; }
// var _UDUP = $("#UCD_FB")[0]; //获取命令窗口
//var _NR = $("#UCD_FB_N_N")[0]; _NR.innerHTML = ""; //获取内容窗口
if (_r.DName) $("#UCD_FB_N_T")[0].innerHTML = "您已经发不过" + node.Name + "了?但还可以修改相应信息";
else $("#UCD_FB_N_T")[0].innerHTML = "您将要发布" + node.Name + "吗?此项目将对所有人可见!";
$("#UCD_FB_N_N_Name")[0].value = node.Name; //给标题赋值
//生成CheckBoxList
var ra = U.UF.UI.RadioList($("#UCD_FB_N_CK_CK")[0], U.CD.DType);
$("#UCD_FB_NR_IMG")[0].onclick = U.M.apply(this, [[U.UF.EV.stopBubble], [U.Img.Create, [([{ 'Thm': _r.DSmallImg, 'Img': _r.DImg}])]]]);
$("#UCD_FB_N_N_N_S")[0].onclick = U.M.apply(this, [[U.CD.SL.PSubmit, ([SO, userid, node, ra])]]); //给提交按钮赋值
if (!$("#UCD_FB2")[0]) {
U.UF.UI.Form({ id: "UCD_FB2", style: { "width": "537px", "left": "690px", "top": "200px", "height": "537px" }, title: "发布项目窗口." });
$("#UCD_FB2 .UD_SYF_SC")[0].childNodes[0].remove()
$("#UCD_FB2 .UD_SYF_SC")[0].append($(".UCD_FB_N")[0]);
} else {
$("#UCD_FB2")[0].style.display = "block";
}
// if (_UDUP.style.display == "none") { U.D.PopupWindow(_UDUP); } //onclick直接响应
}
//单击发布按钮,发布到mysql
U.CD.SL.PSubmit = function (SO, userid, node, ra) {
var _c = U.CD.U.IsUSelf(); //获取用户登录Cookie. _c.userid _c.username _c.Loginid
if (!_c) { U.CD.U.LoginApply(); return; } //如果未登录,弹出登录窗口。
//_n名字 _b简介 -i图片 _p价格。
var _n = $("#UCD_FB_N_N_Name")[0].value, _b = $("#UCD_FB_N_N_T")[0].value;
var _s = $("#UCD_FB_NR_IMG")[0].title; _i = $("#UCD_FB_NR_IMG")[0].src, _p = $("#UCD_FB_N_N_P")[0].value;
var username = _c.username; //cookie中的用户名
if (!$("#UCD_FB_N_N_Name")[0].value) { U.Alert("项目名称不能为空!"); return; } //项目名称不可以为空
//id为项目id,存储在mongodb中,
//提交到数据库,ra.value()表示提交到精华区域、学习区域的类型, U.CD.USLang表示提交到哪一个语言。"1"表示发布到首页。
U.ACD.Request(U.CD.AjaxUrl, ([U.CD.SL.MySQL, "Add_Develop", node.ID, userid, username, _n, _b, _s, _i, _p, "1", U.CD.USLang, ra.value()]), U.CD.SL.PSubAsyn, ([""]));
}
//发布成功后异步函数。
U.CD.SL.PSubAsyn = function (r) {
r.value[0].length ? alert("发布项目成功") : alert("发布项目失败");
}
//新用户发布自己的项目
U.CD.SL.PubPro = function () {
var _c = U.CD.U.IsUSelf(); //获取用户登录Cookie. _c.userid _c.username _c.Loginid
if (!_c) { U.CD.U.LoginApply(); return; } //如果未登录,弹出登录窗口。
U.CD.SL.SelPro();
// alert("请在右边项目区域单击操作图标,发布自己的项目,谢谢!!!!");
// U.CD.RT.CProject(_c.userid, U.CD.U.CUser.TNode[0]);
// U.CD.RT.Panel();
}
U.CD.SL.SelPro = function (node, UUID) {
if (node != undefined) {
var DetailsFrame = document.getElementById("UCD_SLPublish").getElementsByClassName("UD_SYF_SCO")[0];
U.CD.RT.F_L_Node(node, UUID, DetailsFrame);
$("#UCD_SLPublish")[0].style.display = "none";
} else {
$("#UCD_SLPublish")[0].style.display = "block";
U.D.PopupWindow($("#UCD_SLPublish")[0]);
}
}