var Model = function(opt){
this._config(opt);
this.init.apply(this,arguments);
}
QW.ObjectH.mix(Model.prototype,{
init : function(){},
_config : function(opt){
var opt = opt||{};
QW.ObjectH.mix(this,opt,true);
},
attrs : {},
get : function(key){
if (this.attr.hasOwnProperty(key)) {
return this.attr[key];
}
return null;
},
set : function(key,val,override){
if(override){
this.attr[key] = val;
}else{
if (!this.attr.hasOwnProperty(key)) {
this.attr[key] = val;
}
}
}
});
var extend = function(proto, props){
var child = inherits(this, proto, props);
child.extend = this.extend;
return child;
};
var inherits = function(p,proto, props){
var child;
if (proto && proto.hasOwnProperty('constructor')) {
child = proto.constructor;
} else {
child = function(){ p.apply(this, arguments); };
}
function ctor(){};
ctor.prototype = p.prototype;
child.prototype = new ctor;
child.prototype.constructor = child;
if(proto){
QW.ObjectH.mix(child.prototype,proto,true);
}
if(props){
QW.ObjectH.mix(child,props,true);
}
child.__super__ = p.prototype;
return child;
};
Model.extend = extend;
var app = {};
app.model = Model.extend({
init : function(){
alert(1);
}
});
app.model2 = app.model.extend({
init : function(){
alert(2);
}
});
var _app = new app.model2({test:'test'});
posted @ 2012-03-20 17:46 greengnn 阅读(49) 评论(0) 编辑
http://www.netgli.com/157.html
http://www.youth2009.org/uninstall-macports.html
http://interfacelab.com/nginx-php-fpm-apc-awesome/
http://www.softwareprojects.com/resources/programming/t-how-to-install-php-fpm-spawn-fcgi-replacement-1602.html
http://blog.jasonmooberry.com/2010/12/memp-php-5-3-with-fpm-and-nginx-via-macports/
posted @ 2012-03-09 02:22 greengnn 阅读(142) 评论(0) 编辑
pager_build : function(act,query,res){
var pn = res.data.pn,
rn = res.data.rn,
tn = res.data.tn,
pager;
if(!tn){
pager = '';
}
var dataQuery = StringH.queryUrl(query);
var pns = Math.ceil(tn / rn);
var html = ['<div class="global-page">'];
var plink = function(i){
dataQuery.pn = i;
return '<a href="#" class="action" data-act="'+act+'" data-query="'+ObjectH.encodeURIJson(dataQuery)+'">'+(i+1)+'</a>';
}
if(pns < 12){
for(var i=0;i<pns;i++){
if(i == pn){
html.push('<span class="select">'+(pn+1)+'</span>');
}else{
html.push(plink(i));
}
}
}else if(pns > 11){
if (pn < 6){
for(var i=0;i<9;i++){
if(i < 9){
if(i == pn){
html.push('<span class="select">'+(pn+1)+'</span>');
}else{
html.push(plink(i));
}
}
}
html.push('<span class="global-page-break">...</span>');
html.push(plink(pns-1));
}else if(pn+5 < pns ){
html.push(plink(0));
if(pn == 6){
html.push(plink(1));
}else if(pn != 5){
html.push('<span class="global-page-break">...</span>');
}
for(var i =0;i<9;i++){
if(i == 4){
html.push('<span class="select">'+(pn+1)+'</span>');
}else{
html.push(plink(pn + i - 4));
}
}
if((pn + 7) == pns){
html.push(plink(pns-2));
}else if((pn+6) == pns){
}else{
html.push('<span class="global-page-break">...</span>');
}
html.push(plink(pns-1));
}else{
html.push(plink(1));
html.push('<span class="global-page-break">...</span>');
for(var i =0;i<9;i++){
if((pns-pn) + i == 9){
html.push('<span class="select">'+(pn+1)+'</span>');
}else{
html.push(plink(pns-9+i));
}
}
}
}
html.push('</div>');
if(pns > 1){
pager = html.join('');
}else{
pager = '';
}
W('#settingpageer').html(pager);
},
posted @ 2012-02-07 16:02 greengnn 阅读(69) 评论(0) 编辑
var logger = (function(){
var loghost = 'http://127.0.0.1/log.gif?';
var log = function(err){
var img = new Image(0,0);
var _url =[];
_url.push('name'+'='+encodeURIComponent(err.name));
_url.push('message'+'='+encodeURIComponent(err.message));
_url.push('location'+'='+encodeURIComponent(err.location));
if(err.line)
_url.push('line'+'='+encodeURIComponent(err.line));
if(err.func)
_url.push('func'+'='+encodeURIComponent(err.func));
var url = _url.join('&');
img.src = loghost+url;
console.log(img.src);
}
return {log:log};
})();
function trapError(msg, URI, ln) {
// wrap our unknown error condition in an object
var error = new Error(msg);
error.location = URI; // add custom property
error.line = ln;
logger.log(error);
warnUser();
return true; // stop the yellow triangle
}
window.onerror = trapError;
function foo() {
try {
riskyOperation();
} catch (err) {
// add custom property
err.location = location.href;
err.func = 'foo';
logger.log(err);
warnUser();
}
}
function warnUser() {
alert("An error has occurred while processing this page.\
Our engineers have been alerted!");
// do something
}
foo();
posted @ 2012-01-29 16:34 greengnn 阅读(66) 评论(0) 编辑
js部分
function uploadSucc(data){
alert(data);
}
W('#uploadframe').on('load',function(e,uploadSucc){
e.preventDefault();
var el = this;
(function(){
try{
var data = el.contentWindow.document.body.getElementsByTagName("TEXTAREA")[0].value;
data = QW.StringH.evalExp(data);
console.log(data);
uploadSucc(data);
}catch(e){
setTimeout(arguments.callee,0);
return;
}
})();
});
HTML
<form action="<%#site_url#%>setting/upload" enctype="multipart/form-data" method="post" target="uploadframe">
<input type="file" name="file"/>
<input type="submit" value="上传"/>
</form>
<iframe id="uploadframe" name="uploadframe"></iframe>
posted @ 2012-01-21 15:50 greengnn 阅读(113) 评论(0) 编辑
摘要: mysql 和 mongo db 语法对比本文描述了MySQL中的常用SQL语句在MongoDB中的写法,如果你长期使用MySQL而对MongoDB跃跃欲试,这篇简单的文章可以帮助你更快的进入角色。查询:MySQL:SELECT * FROM userMongo:db.user.find()MySQL:SELECT * FROM user WHERE name = ’starlee’Mongo:db.user.find({‘name’ : ’starlee’})插入:MySQL:INSERT INOT user (`name`, `age`) values (’starlee’,25)Mong阅读全文
posted @ 2011-12-19 10:56 greengnn 阅读(96) 评论(0) 编辑
摘要: $config = jkit::$config->load('upload')->get('default'); Upload::$default_directory= $config['directory'];//默认保存文件夹 Upload::$remove_spaces=$config['remove_spaces'];//上传文件删除空格 $file=$_FILES['ofile1']; $files = Validation::factory($_FILES); $files->ru..阅读全文
posted @ 2011-11-24 11:51 greengnn 阅读(104) 评论(0) 编辑
摘要: 安装lighttpd fastcgi djangolighttpd conf配置server.modules = ( "mod_access", "mod_alias", "mod_compress", "mod_redirect", "mod_rewrite", "mod_fastcgi",)server.document-root = "/var/www2/mysite"server.upload-dirs = ( "/var/cache/l阅读全文
posted @ 2011-11-08 16:18 greengnn 阅读(181) 评论(0) 编辑
摘要: //快速排序function quicksort(seq) { if (seq.length > 1) { var k = seq[0]; var x = []; var y = []; for (var i=1,len = seq.length; i<len; i++) { if (seq[i] <= k) { x.push(seq[i]); } else { y.push(seq[i]); } } x = quicksort(x); y = quicksort(y); ret...阅读全文
posted @ 2011-11-01 19:59 greengnn 阅读(151) 评论(0) 编辑
摘要: function getRandomPlayCard(m){ var arr=new Array(m); for(var i=0;i<m;i++){ var rnd=Math.floor(Math.random()*(i+0.99999)) arr[i]=arr[rnd]; arr[rnd]=i; } return arr;};阅读全文
posted @ 2011-11-01 18:08 greengnn 阅读(103) 评论(0) 编辑