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

📄 adv_query_builder.smarty

📁 PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。
💻 SMARTY
📖 第 1 页 / 共 2 页
字号:
		case 'USERLIST':			html = createUserList(groupid, fid);			break;		case 'DATE':			html = createDate(groupid, fid);			return {html: html, init: initDate};		case 'INT':			html = createInt(groupid, fid);			return {html: html, init: initInt};		case 'FLOAT':			html = createFloat(groupid, fid);			return {html: html, init: initFloat};		case 'DATEDIFF':			html = createDateDiff(groupid, fid);			return {html: html, init: initDateDiff};		default:			html += 'unknown: ' + type;	}	return {html: html, init: callback};}function removeCriteriaGroup(groupid){	$("groupwrapper" + groupid).innerHTML = '';	criteria[groupid].fields = 0;}function initAddField(groupid){	if (criteria[groupid].visible == 0)	{		$('criteria_nofields' + groupid).style.display = 'none';		if (groupid > 0)		{			$('removeCriteriaGroup' + groupid).style.display = 'block';		}	}	var fid = ++criteria[groupid].fields;	criteria[groupid].visible++;	return fid;}function addMetadataField(groupid){	var fid = initAddField(groupid);	var fieldsetid=$('fieldsets' + groupid).selectedIndex-1;	var fieldid=$('fieldset_fields' + groupid).selectedIndex;	var fieldsetname = meta_fieldsets[fieldsetid].name;	var fieldname = meta_fieldsets[fieldsetid].fields[fieldid].name;	var fieldtype = meta_fieldsets[fieldsetid].fields[fieldid].datatype;	var fieldoptions = meta_fieldsets[fieldsetid].fields[fieldid].options;	var html = "<table  width=\"650\">";	html += "<tr>";	html += "<td width=\"120\" valign=top><nobr><B>" + fieldsetname + ':</B></nobr><br><nobr><i>' + fieldname + '</i></nobr>';	html += "<div id=\"field" + groupid + "_" + fid + "expr\" style=\"display: none\">[\"" + fieldsetname + "\"][\""+fieldname + "\"]</div>";	html += "<td><nobr>";	var rec = addFieldTypeSelection(groupid, fid, fieldtype, fieldoptions);	html += rec.html;	html += "<td width=\"55\">";	html += "<input type=\"button\" value=\"{/literal}{i18n}remove{/i18n}{literal}\" onclick=\"delField(" + groupid + "," + fid + ")\">";	html += "</table>";	var el = new Ext.Element(document.createElement('div'));	el.dom.id = "field" + groupid + "_" + fid;	el.id = el.dom.id;	el.dom.innerHTML = html;	el.appendTo('criteria_fields' + groupid);	if (rec.init != null)	{		rec.init(groupid, fid);	}	return fid;}function addWorkflowStateField(groupid){	var wid=$('workflows' + groupid).selectedIndex-1;	var sid=$('workflow_states' + groupid).selectedIndex;	var workflowname = meta_workflows[wid].name;	var statename = meta_workflows[wid].states[sid].name;	var fid = addField(groupid, 'Workflow', 'Workflow', 'STRINGMATCH');	$('field' + groupid + '_' + fid + 'start').value = workflowname;	fid = addField(groupid, 'Workflow State', 'WorkflowState', 'STRINGMATCH');	$('field' + groupid + '_' + fid + 'start').value = statename;	$('groupop' + groupid).selectedIndex = 0;}function addField(groupid, display, exprname, type){	var fid = initAddField(groupid);	var rec = {init:null};	var html = "<table  width=\"650\">";	html += "<tr>";	html += "<td width=\"120\" valign=top>" + display;	html += "<div id=\"field" + groupid + "_" + fid + "expr\" style=\"display: none\">" + exprname + "</div>";	html += "<td valign=top><nobr>";	rec = addFieldTypeSelection(groupid, fid, type, null);	html += rec.html;	html += "<td width=\"55\" valign=top>";	html += "<input type=\"button\" value=\"{/literal}{i18n}remove{/i18n}{literal}\" onclick=\"delField(" + groupid + "," + fid + ")\">";	html += "</table>";	var el = new Ext.Element(document.createElement('div'));	el.dom.id = "field" + groupid + "_" + fid;	el.id = el.dom.id;	el.dom.innerHTML = html;	el.appendTo('criteria_fields' + groupid);	var el = $('field' + groupid + '_' + fid + 'start');    if (el != null)    {		var map = new Ext.KeyMap(el,				{				    stopEvent: true,					key: Ext.EventObject.ENTER,					fn: function() {					    butSearchClick();					}				});    }    var el = $('field' + groupid + '_' + fid + 'end');    if (el != null)    {		var map = new Ext.KeyMap(el,				{				    stopEvent: true,					key: Ext.EventObject.ENTER,					fn: function() {					    butSearchClick();					}				});    }	if (rec.init != null)	{		rec.init(groupid, fid);	}	return fid;}function fieldsetsChange(groupid){	var fieldsets = $('fieldsets' + groupid);	var fsid = fieldsets.selectedIndex -1;	if (fsid < 0)	{		$('fieldset_fields_wrapper' + groupid).style.display = 'none';		return;	}	$('fieldset_fields_wrapper' + groupid).style.display = 'block';	$('fieldset_name' + groupid).innerHTML = '<nobr><B>' + meta_fieldsets[fsid].name + ' Fields:</b></nobr>';	var fslist = $('fieldset_fields' + groupid);	for(i=fslist.options.length-1;i>=0;i--)	{		fslist.remove(i);	}	var fields = meta_fieldsets[fsid].fields;	for (i=0;i<fields.length;i++)	{		var opt = new Option(fields[i].name, fields[i].id);		fslist.options[fslist.options.length] = opt;	}}function workflowsChange(groupid){	var workflows = $('workflows' + groupid);	var wid = workflows.selectedIndex -1;	if (wid < 0)	{		$('workflow_states_wrapper' + groupid).style.display = 'none';		return;	}	$('workflow_states_wrapper' + groupid).style.display = 'block';	$('workflow_name' + groupid).innerHTML = '<nobr><B>' +meta_workflows[wid].name + ' States:</b></nobr>';	var wlist = $('workflow_states' + groupid);	for(i=wlist.options.length-1;i>=0;i--)	{		wlist.remove(i);	}	var states = meta_workflows[wid].states;	for (i=0;i<states.length;i++)	{		var opt = new Option(states[i].name, states[i].id);		wlist.options[wlist.options.length] = opt;	}}function addCriteriaSet(){	cs = criteria.length;	criteria[cs] = {fields:0, visible:0};	var wrapping = $('groupwrapping');	var wrapperTemplate = $('groupwrapper0');	var content = wrapperTemplate.innerHTML;	var words = ['groupwrapper0','groupop0','criteria0','criteria_nofields0','criteria_fields0','fieldsets0','selector0','workflows0',			'fieldset_fields_wrapper0','fieldset_name0','fieldset_fields0','workflow_states_wrapper0','workflow_name0','workflow_states0',			'selectorChange(0)','fieldChange(0)','fieldsetsChange(0)','workflowsChange(0)', 'fields0', 'form0', 'addMetadataField(0)', 'addWorkflowStateField(0)',			'removeCriteriaGroup0', 'removeCriteriaGroup(0)'];	for(i=0;i<words.length;i++)	{		var oldword = words[i];		var newword = oldword.replace('0', cs);		content = content.replace(oldword, newword);	}	var el = new Ext.Element(document.createElement('div'));	el.dom.id = "groupwrapper" + cs;	el.id = el.dom.id;	el.dom.innerHTML = content;	el.appendTo(wrapping);	$('selector' + cs).selectedIndex = 0;	$('groupop' + cs).selectedIndex = 1;	$('criteria_fields' + cs).innerHTML = '';	$('criteria_nofields' + cs).style.display = 'block';	$('removeCriteriaGroup' + cs).style.display = 'block';	selectorChange(cs);}function buildExpression(){	mainOp = $('allop').value;	var main_str = '';	var gv = 0;	for(var gid=0;gid<criteria.length;gid++)	{		if (criteria[gid].fields == 0)		{			continue;		}		criteriaOp = $('groupop' + gid).value;		var set_str = '';		var fv =0;		for(fid=1;fid<=criteria[gid].fields;fid++)		{			if ($('field' + gid + '_' + fid).innerHTML == '')			{				continue;			}			if (fv++ > 0) set_str += ' ' + criteriaOp + ' ';			var fieldname = $('field' + gid + '_' + fid + 'expr').innerHTML;			var fieldop = $('field' + gid + '_' + fid + 'op').value;			var start = getElByName(gid, 'field' + gid + '_' + fid + 'start');			var end = getElByName(gid, 'field' + gid + '_' + fid + 'end');			var expr = expr = fieldname + ' ' + fieldop + ' "' + start.value.replace(/\"/g, "'") + '"';			switch (fieldop)			{				case 'between':				case 'BETWEEN':					expr += ' AND "' + end.value.replace(/\"/g, "'") + '"';					break;				default:					break;			}			set_str += expr;		}		if (set_str != '')		{			set_str = '(' + set_str + ')';			if (gv++ > 0) main_str += ' ' + mainOp + ' ';			main_str += set_str;		}	}	return main_str;}function butSearchClick(){	var expr = buildExpression();	if (expr == '')	{		alert('{/literal}{i18n}Please select some search criteria{/i18n}{literal}');		return;	}	var txtQuery = document.getElementById('txtQuery');	txtQuery.value=expr;	var frm = document.getElementById('frmQuickSearch');	frm.submit();}</script>{/literal}<fieldset>	<legend>{i18n}Advanced Search{/i18n}</legend>{capture assign=options}<a href="{$rootUrl}/search2.php?action=queryBuilder">{i18n}Search Criteria Editor{/i18n}</a>{/capture}{i18n arg_options=$options}The #options# may also be used to create more complex search criteria expressions.{/i18n}<br><br>{capture assign=options}<select id="allop"><option value="AND">{i18n}all{/i18n}<option value="OR" SELECTED>{i18n}any{/i18n}</select>{/capture}{i18n arg_options=$options}Return items which match #options# of the criteria groups specified.{/i18n}<div id="groupwrapping"><div id="groupwrapper0">	<fieldset>    	<legend>{i18n}Criteria Group{/i18n}</legend>    	{capture assign=options}    		<select id="groupop0">				<option value="AND">{i18n}all{/i18n}				<option value="OR" SELECTED>{i18n}any{/i18n}			</select>    	{/capture}        {i18n arg_options=$options}Return items which match #options# of the criteria specified below.{/i18n}		<br>		<div id="criteria0">		<form id="form0" onsubmit="return false;">			<table width="100%">			<tr>				<td width="50%" valign="top">					<br>					<div id="criteria_nofields0" style="color: brown">{i18n}No criteria have been selected for the criteria group.{/i18n}					<p>					<input type=button value="{i18n}Remove Criteria Group{/i18n}" onclick="removeCriteriaGroup(0)" id="removeCriteriaGroup0" style="display: none">					</div>					<div id="criteria_fields0">					</div>				</td>				<td valign="top">					<table >					<tr>						<td valign=top>							<select id="selector0" style="width: 200px" onchange="selectorChange(0)">								<option value="0">{i18n}Available Criteria{/i18n}								<option value="1">{i18n}Available Fieldsets{/i18n}								<option value="2">{i18n}Available Workflows{/i18n}							</select>							<br>							<div>							<select id="fields0" size="5" style="width: 200px; height: 100px; display: block" onclick="fieldChange(0)">							<option value="" selected>--- {i18n}Select some criteria{/i18n} ---							{foreach from=$metainfo.fields item=field}								<option>{$field.display}							{/foreach}							</select>							<select id="fieldsets0" size="5" style="width: 200px;   height: 100px; display: none" onclick="fieldsetsChange(0)">							<option value="" selected>--- {i18n}Select a fieldset{/i18n} ---							{foreach from=$metainfo.fieldsets item=fieldset}								<option>{$fieldset.name}							{/foreach}							</select>							<select id="workflows0" size="5" style="width: 200px;   height: 100px; display: none" onclick="workflowsChange(0)" >							<option value="" selected>--- {i18n}Select a workflow{/i18n} ---							{foreach from=$metainfo.workflows item=workflow}								<option>{$workflow.name}							{/foreach}							</select>							</div>						<td valign=top>							<div id="fieldset_fields_wrapper0" style="display: none"">								<div id="fieldset_name0"></div>								<select id="fieldset_fields0" size=5 style="width: 150px" onclick="addMetadataField(0)">								</select>							</div>							<div id="workflow_states_wrapper0" style="display: none">								<div id="workflow_name0"></div>								<select id="workflow_states0" size=5 style="width: 150px" onclick="addWorkflowStateField(0)">								</select>							</div>						</td>					<tr>						<td colspan=5>							{i18n}Click on a field above to add it to the criteria group.{/i18n}						</td>					</tr>					</table>				</td>			</tr>			</table>		</form>		</div>	</fieldset></div></div><div id=""><input type=button value="{i18n}Add another set of criteria{/i18n}" onclick="addCriteriaSet()"><input type=button value="{i18n}Search{/i18n}" onclick="butSearchClick()"></div></fieldset></div>

⌨️ 快捷键说明

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