⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adv_query_builder.smarty

📁 PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。
💻 SMARTY
📖 第 1 页 / 共 2 页
字号:
{literal}<style>fieldset { border: 1px dotted #999; }legend { border: 1px dotted #999;}.metadatadate { width: 80px; font-size;12px }.datediff { width: 30px}.filesize { width: 60px }</style><script>var meta_workflows = {/literal}{$metainfo.workflow_str}{literal};var meta_fieldsets = {/literal}{$metainfo.fieldset_str}{literal};var meta_fields = {/literal}{$metainfo.fields_str}{literal};var meta_users = {/literal}{$metainfo.users_str}{literal};var meta_mimetypes = {/literal}{$metainfo.mimetypes_str}{literal};var meta_documenttypes = {/literal}{$metainfo.documenttypes_str}{literal};var criteria = [ {fields: 0, visible: 0}];function selectorChange(groupid){	var fields = $('fields'  + groupid);	var workflows = $('workflows' + groupid);	var fieldsets = $('fieldsets' + groupid);	var selector = $('selector' + groupid);	switch(selector.selectedIndex)	{		case 0: fields.selectedIndex=0; break;		case 1: fieldsets.selectedIndex=0; break;		case 2: workflows.selectedIndex=0; break;	}	workflows.style.display = (selector.selectedIndex == 2)?'block':'none';	fieldsets.style.display = (selector.selectedIndex == 1)?'block':'none';	fields.style.display = (selector.selectedIndex == 0)?'block':'none';	var wlist = $('workflow_states' + groupid);	wlist.selectedIndex = 0;	$('workflow_states_wrapper' + groupid).style.display = 'none';	var fslist = $('fieldset_fields' + groupid);	fslist.selectedIndex = 0;	$('fieldset_fields_wrapper' + groupid).style.display = 'none';}function fieldChange(groupid){	fields = $('fields' + groupid);	fid = fields.selectedIndex - 1;	if (fid<0) return;	name = meta_fields[fid].name;	alias = meta_fields[fid].alias;	type = meta_fields[fid].type;	addField(groupid, name, alias, type);}function delField(groupid, fid){	el = $('field' + groupid + '_' + fid);	el.innerHTML = '';	if (--criteria[groupid].visible == 0)	{		$('criteria_nofields' + groupid).style.display = 'block';	}}function createUserList(groupid, fid){	var html = "<table><tr><td width=\"140\">";	html += "<SELECT style=\"width: 140px \" id=\"field" + groupid + "_" + fid + "op\">";	html += "<option value=\"is\">{/literal}{i18n}is{/i18n}{literal}";	html += "<option value=\"is not\">{/literal}{i18n}is not{/i18n}{literal}";	html += "</SELECT>"	html += "<td>"	html += "<SELECT  id=\"field" + groupid + "_" + fid + "start\">";	for(i=0;i<meta_users.length;i++)	{		html += "<option value=\"" + meta_users[i].name + "\">" + meta_users[i].name;	}	html += "</SELECT>";	html += "<td width=\"100%\">&nbsp;";	html += "</table>";	return html;}function createDocTypes(groupid, fid){	var html = "<table><tr><td width=\"140\">";	html += "<SELECT style=\"width: 140px \" id=\"field" + groupid + "_" + fid + "op\">";	html += "<option value=\"is\">{/literal}{i18n}is{/i18n}{literal}";	html += "<option value=\"is not\">{/literal}{i18n}is not{/i18n}{literal}";	html += "</SELECT>"	html += "<td>"	html += "<SELECT  id=\"field" + groupid + "_" + fid + "start\">";	for(i=0;i<meta_documenttypes.length;i++)	{		html += "<option value=\"" + meta_documenttypes[i].name + "\">" + meta_documenttypes[i].name;	}	html += "</SELECT>";	html += "<td width=\"100%\">&nbsp;";	html += "</table>";	return html;}function createMimeTypes(groupid, fid){	var html = "<table><tr><td width=\"140\">";	html += "<SELECT style=\"width: 140px \" id=\"field" + groupid + "_" + fid + "op\">";	html += "<option value=\"is\">{/literal}{i18n}is{/i18n}{literal}";	html += "<option value=\"is not\">{/literal}{i18n}is not{/i18n}{literal}";	html += "</SELECT>"	html += "<td>"	html += "<SELECT  id=\"field" + groupid + "_" + fid + "start\">";	for(i=0;i<meta_mimetypes.length;i++)	{		html += "<option value=\"" + meta_mimetypes[i] + "\">" + meta_mimetypes[i];	}	html += "</SELECT>";	html += "<td width=\"100%\">&nbsp;";	html += "</table>";	return html;}function onBetweenOpChange(groupid, fid){	var op = document.getElementById('field' + groupid + '_' + fid + 'op');	var end = document.getElementById('field' + groupid + '_' + fid + 'end');	var range1 = document.getElementById('field' + groupid + '_' + fid + 'range1');	var range2 = document.getElementById('field' + groupid + '_' + fid + 'range2');	switch (op.value)	{		case 'between':		case 'not between':				range2.style.visibility = range1.style.visibility = 'visible';				break;		default:				range2.style.visibility = range1.style.visibility = 'hidden';				break;	}}function initDate(groupid, fid){	var startname = "field"+ groupid + '_' + fid +"start";	var endname = "field"+ groupid + '_' + fid +"end";	var now = new Date();	var yesterday = now.getTime() - 60 * 60 * 24 * 1000;	var df = new Ext.form.DateField({format : "Y-m-d", fieldClass: 'metadatadate', name: startname, value: new Date(yesterday)});	var df2 = new Ext.form.DateField({format : "Y-m-d", fieldClass: 'metadatadate', name: endname, value: now});	df.render(startname);	df2.render(endname);}function createRange(groupid, fid, type){	var html = "<table><tr><td width=\"140\">";	html += "<SELECT style=\"width: 140px\" id=\"field" + groupid + "_" + fid + "op\"  onchange=\"onBetweenOpChange("+  groupid + "," + fid +")\">";	switch(type)	{		case 'DATE':			html += "<option value=\"\>\">{/literal}{i18n}after{/i18n}{literal}";			html += "<option value=\"between\">{/literal}{i18n}between{/i18n}{literal}";			html += "<option value=\"<\">{/literal}{i18n}before{/i18n}{literal}";			html += "<option value=\"is\">{/literal}{i18n}on{/i18n}{literal}";			html += "<option value=\"is not\">{/literal}{i18n}not on{/i18n}{literal}";			break;		default:			html += "<option value=\"is\">=";			html += "<option value=\"is not\">!=";			html += "<option value=\"\>\">\>";			html += "<option value=\"\>=\">\>=";			html += "<option value=\"\<\">\<";			html += "<option value=\"\<=\">\<=";			html += "<option value=\"between\">{/literal}{i18n}between{/i18n}{literal}";			break;	}	html += "</SELECT>";	html += "<td valign=top width=\"100\"><div id=\"field"+ groupid + '_' + fid +"start\"></div>";	html += "<td valign=top width=\"50\" id=\"field"+ groupid + '_' + fid+"range1\" style=\"visibility: hidden\">&nbsp;and&nbsp;";	html += "<td valign=top width=\"100\" id=\"field"+ groupid + '_' + fid+"range2\" style=\"visibility: hidden\">";	html += "<div id=\"field"+ groupid + '_' + fid + "end\"></div>";	html += "<td width=\"100%\">&nbsp;";	html += "</table>";	return html;}function createDate(groupid, fid){	return createRange(groupid, fid, 'DATE');}function initInt(groupid, fid){	var startname = "field"+ groupid + '_' + fid +"start";	var endname = "field"+ groupid + '_' + fid +"end";	var nf = new Ext.form.NumberField( {allowNegative: false, decimalPrecision : 0, name: startname});	nf.render(startname);	var nf2 = new Ext.form.NumberField( {allowNegative: false, decimalPrecision : 0, name: endname});	nf2.render(endname);}function createInt(groupid, fid){	return createRange(groupid, fid, 'INT');}function createFloat(groupid, fid){	return createRange(groupid, fid, 'FLOAT');}function getElByName(groupid, name){	form = $('form' + groupid)	for(var i=0;i<form.elements.length;i++)	{		if (form.elements[i].name == name)		{			return form.elements[i];		}	}	var item = $(name);	if (item != null)	{		return item;	}	return null;}function onDateDiffChange(groupid, fid){	var prefix = 'field' + groupid + '_' + fid;	var period=1;	switch($(prefix + 'period').selectedIndex)	{		case 1: period = 30; break;		case 2: period = 365; break;	}	$(prefix + 'start').value = parseInt(getElByName(groupid, prefix + 'input').value) * period;}function initDateDiff(groupid, fid){	var startname = "field"+ groupid + '_' + fid +"input";	var nf = new Ext.form.NumberField( {allowNegative: false, fieldClass: 'datediff', decimalPrecision : 0, name: startname, value: "1"});	nf.render(startname);	nf.on('change', function(){ onDateDiffChange(groupid, fid); });}function initFilesize(groupid, fid){	var startname = "field"+ groupid + '_' + fid +"input";	var nf = new Ext.form.NumberField( {allowNegative: false, fieldClass: 'filesize', decimalPrecision : 0, name: startname, value: "0"});	nf.render(startname);	nf.on('change', function(){ onFilesizeChange(groupid, fid); });}function onFilesizeChange(groupid, fid){	var prefix = 'field' + groupid + '_' + fid;	var factor=1;	switch($(prefix + 'factor').selectedIndex)	{		case 1: factor = 1024; break;		case 2: factor = 1024*1024; break;		case 3: factor = 1024*1024*1024; break;	}	$(prefix + 'start').value = parseInt(getElByName(groupid, prefix + 'input').value) * factor;}function createFilesize(groupid, fid){	var html = "<table><tr><td width=\"140\"";	html += "<SELECT style=\"width: 140px\" id=\"field" + groupid + "_" + fid + "op\">";	html += "<option value=\"\<\">\<";	html += "<option value=\"\<=\">\<=";	html += "<option value=\"\>\">\>";	html += "<option value=\"\>=\">\>=";	html += "<option value=\"=\">=";	html += "<option value=\"!=\">!=";	html += "</SELECT>"	html += "<td valign=top width=\"50px\"><div id=\"field"+ groupid + '_' + fid +"input\"></div>";	html += "<td>";	html += "<SELECT  id=\"field" + groupid + "_" + fid + "factor\" onchange=\"onFilesizeChange( " + groupid + "," + fid + ")\">";	html += "<option>{/literal}{i18n}bytes{/i18n}{literal}";	html += "<option>{/literal}{i18n}kilobytes{/i18n}{literal}";	html += "<option>{/literal}{i18n}megabytes{/i18n}{literal}";	html += "<option>{/literal}{i18n}gigabytes{/i18n}{literal}";	html += "</SELECT>";	html += "<input style=\"display: none\" value=\"0\" id=\"field" + groupid + "_" + fid + "start\">";	html += "<td width=\"100%\">&nbsp;";	html += "</table>";	return html;}function createDateDiff(groupid, fid){	var html = "<table><tr><td width=\"140\">";	html += "<SELECT style=\"width: 140px\" id=\"field" + groupid + "_" + fid + "op\">";	html += "<option value=\"\<\">{/literal}{i18n}less than{/i18n}{literal}";	html += "<option value=\"\>\">{/literal}{i18n}greater than{/i18n}{literal}";	html += "</SELECT>"	html += "<td valign=top width=\"50px\"><div id=\"field"+ groupid + '_' + fid +"input\"></div>";	html += "<td>";	html += "<SELECT  id=\"field" + groupid + "_" + fid + "period\" onchange=\"onDateDiffChange( " + groupid + "," + fid + ")\">";	html += "<option>{/literal}{i18n}days{/i18n}{literal}";	html += "<option>{/literal}{i18n}months{/i18n}{literal}";	html += "<option>{/literal}{i18n}years{/i18n}{literal}";	html += "</SELECT>";	html += "<td>ago"	html += "<input style=\"display: none\" value=\"1\" id=\"field" + groupid + "_" + fid + "start\">";	html += "<td width=\"100%\">&nbsp;";	html += "</table>";	return html;}function createSelect(groupid, fid, options){	var html = "<table><tr><td width=\"140\">";	html += "<select id=\"field"+ groupid + "_" + fid +"op\" style=\"width: 140px\">";	html += "<option value=\"is\">{/literal}{i18n}is{/i18n}{literal}";	html += "<option value=\"is not\">{/literal}{i18n}is not{/i18n}{literal}";	html += "</select>&nbsp;&nbsp;";	html += "<td valign=top>";	html += "<select name=\"field"+ groupid + "_" + fid +"start\" id=\"field"+ groupid + "_" + fid +"start\">";	for(i=0;i<options.length;i++)	{		html += "<option value=\"" + options[i].name + "\">" + options[i].name;	}	html += "</select>";	html += "</table>";	return html;}function createText(groupid, fid, type){	var html = "<table><tr><td width=\"140\">";	html += "<select style=\"width: 140px\" id=\"field"+ groupid + "_" + fid +"op\"\>";	var readonly = '';	switch(type)	{		case 'STRINGMATCH':			readonly = 'readonly';			html += "<option value=\"is\">{/literal}{i18n}is{/i18n}{literal}";			html += "<option value=\"is not\">{/literal}{i18n}is not{/i18n}{literal}";			break;		case 'STRING':			html += "<option value=\"is\">{/literal}{i18n}is{/i18n}{literal}";			html += "<option value=\"is not\">{/literal}{i18n}is not{/i18n}{literal}";			html += "<option value=\"contains\">{/literal}{i18n}contains{/i18n}{literal}";			html += "<option value=\"does not contain\">{/literal}{i18n}does not contain{/i18n}{literal}";			html += "<option value=\"like\">{/literal}{i18n}like{/i18n}{literal}";			html += "<option value=\"not like\">{/literal}{i18n}not like{/i18n}{literal}";			html += "<option value=\"starts with\">{/literal}{i18n}starts with{/i18n}{literal}";			html += "<option value=\"ends with\">{/literal}{i18n}ends with{/i18n}{literal}";			break;		case 'FULLTEXT':			html += "<option value=\"contains\">{/literal}{i18n}contains{/i18n}{literal}";			html += "<option value=\"does not contain\">{/literal}{i18n}does not contain{/i18n}{literal}";			break;	}	html += "</select>&nbsp;&nbsp;";	html += "<td>"	html += "<input id=\"field"+  groupid + "_" + fid +"start\" " + readonly + ">";	html += "</table>";	return html;}function createBool(groupid, fid){	var html = "<select style=\"width: 140px\" id=\"field"+ groupid + "_" + fid +"op\"\>";	html += "<option value=\"is\">{/literal}{i18n}is{/i18n}{literal}";	html += "<option value=\"is not\">{/literal}{i18n}is not{/i18n}{literal}";	html += "</select>&nbsp;&nbsp;";	html += "<select id=\"field"+ groupid + "_" + fid +"start\"\>";	html += "<option value=\"true\">{/literal}{i18n}True{/i18n}{literal}";	html += "<option value=\"false\">{/literal}{i18n}False{/i18n}{literal}";	html += "</select>&nbsp;&nbsp;";	return html;}function addFieldTypeSelection(groupid, fid, type, options){	var html = '';	var callback = null;	var params = null;	switch(type)	{		case 'FILESIZE':			html = createFilesize(groupid, fid);			return {html: html, init: initFilesize};		case 'MIMETYPES':			html = createMimeTypes(groupid, fid);			break;		case 'DOCTYPES':			html = createDocTypes(groupid, fid);			break;		case 'BOOL':			html = createBool(groupid, fid);			break;		case 'STRING':			if (options != null && options.length != 0)			{				html = createSelect(groupid, fid, options);				break;			}			// want to fall through		case 'FULLTEXT':		case 'STRINGMATCH':			html = createText(groupid, fid, type);			break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -