Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Sun, Jul 20, 6:27 AM

in-portal

Index: trunk/kernel/units/configuration/configuration_tag_processor.php
===================================================================
--- trunk/kernel/units/configuration/configuration_tag_processor.php (revision 4807)
+++ trunk/kernel/units/configuration/configuration_tag_processor.php (revision 4808)
@@ -1,195 +1,206 @@
<?php
class ConfigurationTagProcessor extends kDBTagProcessor {
+ function Init($prefix,$special,$event_params=null)
+ {
+ parent::Init($prefix, $special, $event_params);
+ $this->Application->LinkVar('module_key');
+ }
+
/**
* Prints list content using block specified
*
* @param Array $params
* @return string
* @access public
*/
function PrintList($params)
{
$list =& $this->GetList($params);
$id_field = $this->Application->getUnitOption($this->Prefix,'IDField');
$list->Query();
$o = '';
$list->GoFirst();
$block_params=$this->prepareTagParams($params);
// $block_params['name'] = $this->SelectParam($params, 'render_as,block');
$block_params['pass_params'] = 'true';
$block_params['IdField'] = $list->IDField;
$prev_heading = '';
$next_block = $params['full_block'];
$this->groupRecords($list->Records, 'heading');
$field_values = $this->Application->GetVar($this->getPrefixSpecial(true));
while (!$list->EOL())
{
$this->Application->SetVar( $this->getPrefixSpecial().'_id', $list->GetDBField($id_field) ); // for edit/delete links using GET
// using 2 blocks for drawing o row in case if current & next record titles match
$next_item_prompt = $list->CurrentIndex + 1 < $list->RecordsCount ? $list->Records[$list->CurrentIndex + 1]['prompt'] : '';
$this_item_prompt = $list->GetDBField('prompt');
if ($next_item_prompt == $this_item_prompt) {
$curr_block = $params['half_block1'];
$next_block = $params['half_block2'];
} else {
$curr_block = $next_block;
$next_block = $params['full_block'];
}
$block_params['name'] = $curr_block;
$block_params['show_heading'] = ($prev_heading != $list->GetDBField('heading') ) ? 1 : 0;
// set values from submit if any
if ($field_values) {
$list->SetDBField('VariableValue', $field_values[$list->GetDBField('VariableName')]['VariableValue']);
}
$o.= $this->Application->ParseBlock($block_params, 1);
$prev_heading = $list->GetDBField('heading');
$list->GoNext();
}
$this->Application->RemoveVar('ModuleRootCategory');
$this->Application->SetVar( $this->getPrefixSpecial().'_id', '');
return $o;
}
function getModuleItemName()
{
$module = $this->Application->GetVar('module');
$table = $this->Application->getUnitOption('confs', 'TableName');
$sql = 'SELECT ConfigHeader
FROM '.$table.'
WHERE ModuleName = '.$this->Conn->qstr($module);
return $this->Conn->GetOne($sql);
}
function PrintConfList($params)
{
$list =& $this->GetList($params);
$id_field = $this->Application->getUnitOption($this->Prefix, 'IDField');
$list->PerPage = -1;
$list->Query();
$o = '';
$list->GoFirst();
$tmp_row = Array();
while (!$list->EOL()) {
$rec = $list->getCurrentRecord();
$tmp_row[0][$rec['VariableName']] = $rec['VariableValue'];
$tmp_row[0][$rec['VariableName'].'_prompt'] = $rec['prompt'];
$list->GoNext();
}
$list->Records = $tmp_row;
$block_params = $this->prepareTagParams($params);
$block_params['name'] = $this->SelectParam($params, 'render_as,block');
- $block_params['module_key'] = $this->Application->GetLinkedVar('module_key');
+ $block_params['module_key'] = $this->Application->GetVar('module_key');
$block_params['module_item'] = $this->getModuleItemName();
$list->GoFirst();
return $this->Application->ParseBlock($block_params, 1);
}
+ function ShowRelevance($params)
+ {
+ return $this->Application->GetVar('module_key') != '_';
+ }
+
function ConfigValue($params)
{
return $this->Application->ConfigValue($params['name']);
}
function Error($params)
{
$object =& $this->Application->recallObject( $this->getPrefixSpecial() );
$field = $object->GetDBField($params['id_field']);
$errors = $this->Application->GetVar('errormsgs');
$errors = $errors[$this->getPrefixSpecial()];
if (isset($errors[$field])) {
$msg = $this->Application->Phrase($errors[$field]);
}
else {
$msg = '';
}
return $msg;
}
/**
* Allows to show category path of selected module
*
* @param Array $params
* @return string
*/
function CategoryPath($params)
{
if (!isset($params['cat_id'])) {
$params['cat_id'] = $this->ModuleRootCategory( Array() );
}
$block_params['current'] = 1;
$block_params['separator'] = $params['separator'];
if ($params['cat_id'] == 0) {
$block_params['name'] = $params['rootcatblock'];
return $this->Application->ParseBlock($block_params);
}
else {
$cat_object =& $this->Application->recallObject( $this->getPrefixSpecial(), $this->Prefix.'_List' );
$sql = 'SELECT CategoryId, ParentId, Name FROM '.TABLE_PREFIX.'Category WHERE CategoryId='.$params['cat_id'];
$res = $this->Conn->GetRow($sql);
if ($res === false) {
// in case if category is deleted
return '';
}
$block_params['name'] = $params['block'];
$block_params['cat_name'] = $res['Name'];
$block_params['separator'] = $params['separator'];
$block_params['cat_id'] = $res['CategoryId'];
$next_params['separator'] = $params['separator'];
$next_params['rootcatblock'] = $params['rootcatblock'];
$next_params['block'] = $params['block'];
$next_params['cat_id'] = $res['ParentId'];
return $this->CategoryPath($next_params).$this->Application->ParseBlock($block_params);
}
}
/**
* Shows edit warning in case if module root category changed but not saved
*
* @param Array $params
* @return string
*/
function SaveWarning($params)
{
$temp_category_id = $this->Application->RecallVar('ModuleRootCategory');
if ($temp_category_id !== false) {
return $this->Application->ParseBlock($params);
}
return '';
}
function ModuleRootCategory($params)
{
$category_id = $this->Application->RecallVar('ModuleRootCategory');
if ($category_id === false) {
$category_id = $this->Application->findModule('Name', $this->Application->GetVar('module'), 'RootCat');
}
return $category_id;
}
}
?>
\ No newline at end of file
Property changes on: trunk/kernel/units/configuration/configuration_tag_processor.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.11
\ No newline at end of property
+1.12
\ No newline at end of property
Index: trunk/kernel/admin_templates/config/config_search.tpl
===================================================================
--- trunk/kernel/admin_templates/config/config_search.tpl (revision 4807)
+++ trunk/kernel/admin_templates/config/config_search.tpl (revision 4808)
@@ -1,124 +1,124 @@
<inp2:m_set nobody="yes"/>
<inp2:m_include t="incs/header"/>
<body topmargin="0" leftmargin="8" marginheight="0" marginwidth="8" bgcolor="#FFFFFF">
<inp2:m_ParseBlock name="section_header" prefix="confs" icon="icon46_settings_search" title="!la_tab_ConfigSearch!"/>
<inp2:m_ParseBlock name="blue_bar" prefix="confs" title_preset="config_list_search" icon="icon46_settings_output"/>
<!-- ToolBar --->
<table class="toolbar" height="30" cellspacing="0" cellpadding="0" width="100%" border="0">
<tbody>
<tr>
<td>
<script type="text/javascript">
var a_toolbar = new ToolBar();
a_toolbar.AddButton( new ToolBarButton('select', '<inp2:m_phrase label="la_ToolTip_Save" escape="1"/>', function() {
submit_event('confs','<inp2:confs_SaveEvent/>');
}
) );
a_toolbar.AddButton( new ToolBarButton('cancel', '<inp2:m_phrase label="la_ToolTip_Cancel" escape="1"/>', function() {
submit_event('confs','OnCancel');
}
) );
a_toolbar.Render();
</script>
</td>
</tr>
</tbody>
</table>
<inp2:m_DefineElement name="confs_checkbox_td">
<td valign="top" class="text">
<inp2:m_if check="m_ParamEquals" name="nolabel" value="true">
<inp2:m_else />
<label for="_cb_<inp2:InputName field="$Field"/>"><inp2:m_Phrase label="$Label" /></label>
</inp2:m_if>
<input type="checkbox" name="_cb_<inp2:InputName field="$Field"/>" <inp2:Field field="$Field" checked="checked" db="db"/> id="_cb_<inp2:InputName field="$Field"/>" onclick="update_checkbox(this, document.getElementById('<inp2:InputName field="$Field"/>'))" >
<input type="hidden" id="<inp2:InputName field="$Field"/>" name="<inp2:InputName field="$Field"/>" value="<inp2:Field field="$Field" db="db"/>">
</td>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="confs_edit_text">
<td valign="top" class="text">
<label for="<inp2:InputName field="$Field"/>"><inp2:m_Phrase label="$Label" /></label>
<input type="text" name="<inp2:InputName field="$Field"/>" value="<inp2:Field field="$Field"/>" size="3" />
</td>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="confs_detail_row">
<inp2:m_if check="m_ParamEquals" name="show_heading" value="1">
<tr class="subsectiontitle">
<td colspan="4">
<inp2:Field name="ConfigHeader" as_label="1"/>
</td>
</tr>
</inp2:m_if>
<tr class="<inp2:m_odd_even odd="table_color1" even="table_color2"/>">
<td class="text">
<inp2:Field field="DisplayName" as_label="true" />
<inp2:m_if check="m_IsDebugMode">
<br /><small>[<inp2:Field name="SearchConfigId"/>] <inp2:Field name="FieldName"/></small>
</inp2:m_if>
</td>
<inp2:m_ParseBlock name="confs_checkbox_td" pass_params="true" IdField="SearchConfigId" Label="la_prompt_SimpleSearch" Field="SimpleSearch" />
<inp2:m_ParseBlock name="confs_edit_text" pass_params="true" IdField="SearchConfigId" Label="la_prompt_weight" Field="Priority" />
<inp2:m_ParseBlock name="confs_checkbox_td" pass_params="true" IdField="SearchConfigId" Label="la_prompt_AdvancedSearch" Field="AdvancedSearch" />
</tr>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="config_values">
- <inp2:m_if check="m_ParamEquals" name="module_key" value="_" inverse="inverse">
<tr class="subsectiontitle">
<td colspan="4">
<inp2:m_phrase name="$module_item" /> <inp2:m_phrase name="la_prompt_relevence_settings" />
</td>
</tr>
<tr class="<inp2:m_odd_even odd="table_color1" even="table_color2"/>">
<td colspan="4">
<inp2:m_phrase name="la_prompt_required_field_increase"/>
<input type="text" size="3" name="conf[SearchRel_Increase_<inp2:m_param name="module_key" />][VariableValue]" VALUE="<inp2:Field field="SearchRel_Increase_{$module_key}" />">%
</td>
</tr>
<tr class="<inp2:m_odd_even odd="table_color1" even="table_color2"/>">
<td colspan="4">
<inp2:m_phrase name="la_prompt_relevence_percent"/>
<input type="text" size="3" name="conf[SearchRel_Keyword_<inp2:m_param name="module_key" />][VariableValue]" value="<inp2:Field field="SearchRel_Keyword_{$module_key}" />">% <inp2:Field field="SearchRel_Keyword_{$module_key}_prompt" as_label="1" /> &nbsp;&nbsp;&nbsp;
<input type="text" size="3" name="conf[SearchRel_Pop_<inp2:m_param name="module_key" />][VariableValue]" value="<inp2:Field field="SearchRel_Pop_{$module_key}" />">% <inp2:Field field="SearchRel_Pop_{$module_key}_prompt" as_label="1" />&nbsp;&nbsp;&nbsp;
<input type="text" size="3" name="conf[SearchRel_Rating_<inp2:m_param name="module_key" />][VariableValue]" value="<inp2:Field field="SearchRel_Rating_{$module_key}" />">% <inp2:Field field="SearchRel_Rating_{$module_key}_prompt" as_label="1" />
</td>
</tr>
<inp2:m_if check="m_GetEquals" name="module" value="In-Portal" inverse="inverse">
<tr class="subsectiontitle">
<td colspan="4">
<inp2:m_phrase name="$module_item" /> <inp2:m_phrase name="la_prompt_multipleshow" />
</td>
</tr>
<tr class="<inp2:m_odd_even odd="table_color1" even="table_color2"/>">
<td class="text" width="120"><inp2:Field field="Search_ShowMultiple_{$module_key}_prompt" as_label="1"/></td>
<td class="text" colspan="3">
<input type="checkbox" name="_cb_conf[Search_ShowMultiple_<inp2:m_param name="module_key" />][VariableValue]" <inp2:Field field="Search_ShowMultiple_{$module_key}" checked="checked" db="db"/> id="_cb_conf[Search_ShowMultiple_<inp2:m_param name="module_key" />][VariableValue]" onclick="update_checkbox(this, document.getElementById('conf[Search_ShowMultiple_<inp2:m_param name="module_key" />][VariableValue]'))" >
<input type="hidden" id="conf[Search_ShowMultiple_<inp2:m_param name="module_key" />][VariableValue]" name="conf[Search_ShowMultiple_<inp2:m_param name="module_key" />][VariableValue]" value="<inp2:Field field="Search_ShowMultiple_{$module_key}" db="db"/>">
</td>
</tr>
</inp2:m_if>
- </inp2:m_if>
</inp2:m_DefineElement>
-<table width="100%" border="0" cellspacing="0" cellpadding="4" class="tableborder" style="border-bottom-width: 0px;">
+<table width="100%" border="0" cellspacing="0" cellpadding="4" class="tableborder"<inp2:m_if check="conf_ShowRelevance"> style="border-bottom-width: 0px;"</inp2:m_if>>
<inp2:confs_PrintList render_as="confs_detail_row" />
</table>
+<inp2:m_if check="conf_ShowRelevance">
<table width="100%" border="0" cellspacing="0" cellpadding="4" class="tableborder">
<inp2:conf_PrintConfList block="config_values" />
</table>
+</inp2:m_if>
<inp2:m_include t="incs/footer"/>
\ No newline at end of file
Property changes on: trunk/kernel/admin_templates/config/config_search.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.4
\ No newline at end of property
+1.5
\ No newline at end of property
Index: trunk/core/units/configuration/configuration_tag_processor.php
===================================================================
--- trunk/core/units/configuration/configuration_tag_processor.php (revision 4807)
+++ trunk/core/units/configuration/configuration_tag_processor.php (revision 4808)
@@ -1,195 +1,206 @@
<?php
class ConfigurationTagProcessor extends kDBTagProcessor {
+ function Init($prefix,$special,$event_params=null)
+ {
+ parent::Init($prefix, $special, $event_params);
+ $this->Application->LinkVar('module_key');
+ }
+
/**
* Prints list content using block specified
*
* @param Array $params
* @return string
* @access public
*/
function PrintList($params)
{
$list =& $this->GetList($params);
$id_field = $this->Application->getUnitOption($this->Prefix,'IDField');
$list->Query();
$o = '';
$list->GoFirst();
$block_params=$this->prepareTagParams($params);
// $block_params['name'] = $this->SelectParam($params, 'render_as,block');
$block_params['pass_params'] = 'true';
$block_params['IdField'] = $list->IDField;
$prev_heading = '';
$next_block = $params['full_block'];
$this->groupRecords($list->Records, 'heading');
$field_values = $this->Application->GetVar($this->getPrefixSpecial(true));
while (!$list->EOL())
{
$this->Application->SetVar( $this->getPrefixSpecial().'_id', $list->GetDBField($id_field) ); // for edit/delete links using GET
// using 2 blocks for drawing o row in case if current & next record titles match
$next_item_prompt = $list->CurrentIndex + 1 < $list->RecordsCount ? $list->Records[$list->CurrentIndex + 1]['prompt'] : '';
$this_item_prompt = $list->GetDBField('prompt');
if ($next_item_prompt == $this_item_prompt) {
$curr_block = $params['half_block1'];
$next_block = $params['half_block2'];
} else {
$curr_block = $next_block;
$next_block = $params['full_block'];
}
$block_params['name'] = $curr_block;
$block_params['show_heading'] = ($prev_heading != $list->GetDBField('heading') ) ? 1 : 0;
// set values from submit if any
if ($field_values) {
$list->SetDBField('VariableValue', $field_values[$list->GetDBField('VariableName')]['VariableValue']);
}
$o.= $this->Application->ParseBlock($block_params, 1);
$prev_heading = $list->GetDBField('heading');
$list->GoNext();
}
$this->Application->RemoveVar('ModuleRootCategory');
$this->Application->SetVar( $this->getPrefixSpecial().'_id', '');
return $o;
}
function getModuleItemName()
{
$module = $this->Application->GetVar('module');
$table = $this->Application->getUnitOption('confs', 'TableName');
$sql = 'SELECT ConfigHeader
FROM '.$table.'
WHERE ModuleName = '.$this->Conn->qstr($module);
return $this->Conn->GetOne($sql);
}
function PrintConfList($params)
{
$list =& $this->GetList($params);
$id_field = $this->Application->getUnitOption($this->Prefix, 'IDField');
$list->PerPage = -1;
$list->Query();
$o = '';
$list->GoFirst();
$tmp_row = Array();
while (!$list->EOL()) {
$rec = $list->getCurrentRecord();
$tmp_row[0][$rec['VariableName']] = $rec['VariableValue'];
$tmp_row[0][$rec['VariableName'].'_prompt'] = $rec['prompt'];
$list->GoNext();
}
$list->Records = $tmp_row;
$block_params = $this->prepareTagParams($params);
$block_params['name'] = $this->SelectParam($params, 'render_as,block');
- $block_params['module_key'] = $this->Application->GetLinkedVar('module_key');
+ $block_params['module_key'] = $this->Application->GetVar('module_key');
$block_params['module_item'] = $this->getModuleItemName();
$list->GoFirst();
return $this->Application->ParseBlock($block_params, 1);
}
+ function ShowRelevance($params)
+ {
+ return $this->Application->GetVar('module_key') != '_';
+ }
+
function ConfigValue($params)
{
return $this->Application->ConfigValue($params['name']);
}
function Error($params)
{
$object =& $this->Application->recallObject( $this->getPrefixSpecial() );
$field = $object->GetDBField($params['id_field']);
$errors = $this->Application->GetVar('errormsgs');
$errors = $errors[$this->getPrefixSpecial()];
if (isset($errors[$field])) {
$msg = $this->Application->Phrase($errors[$field]);
}
else {
$msg = '';
}
return $msg;
}
/**
* Allows to show category path of selected module
*
* @param Array $params
* @return string
*/
function CategoryPath($params)
{
if (!isset($params['cat_id'])) {
$params['cat_id'] = $this->ModuleRootCategory( Array() );
}
$block_params['current'] = 1;
$block_params['separator'] = $params['separator'];
if ($params['cat_id'] == 0) {
$block_params['name'] = $params['rootcatblock'];
return $this->Application->ParseBlock($block_params);
}
else {
$cat_object =& $this->Application->recallObject( $this->getPrefixSpecial(), $this->Prefix.'_List' );
$sql = 'SELECT CategoryId, ParentId, Name FROM '.TABLE_PREFIX.'Category WHERE CategoryId='.$params['cat_id'];
$res = $this->Conn->GetRow($sql);
if ($res === false) {
// in case if category is deleted
return '';
}
$block_params['name'] = $params['block'];
$block_params['cat_name'] = $res['Name'];
$block_params['separator'] = $params['separator'];
$block_params['cat_id'] = $res['CategoryId'];
$next_params['separator'] = $params['separator'];
$next_params['rootcatblock'] = $params['rootcatblock'];
$next_params['block'] = $params['block'];
$next_params['cat_id'] = $res['ParentId'];
return $this->CategoryPath($next_params).$this->Application->ParseBlock($block_params);
}
}
/**
* Shows edit warning in case if module root category changed but not saved
*
* @param Array $params
* @return string
*/
function SaveWarning($params)
{
$temp_category_id = $this->Application->RecallVar('ModuleRootCategory');
if ($temp_category_id !== false) {
return $this->Application->ParseBlock($params);
}
return '';
}
function ModuleRootCategory($params)
{
$category_id = $this->Application->RecallVar('ModuleRootCategory');
if ($category_id === false) {
$category_id = $this->Application->findModule('Name', $this->Application->GetVar('module'), 'RootCat');
}
return $category_id;
}
}
?>
\ No newline at end of file
Property changes on: trunk/core/units/configuration/configuration_tag_processor.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.11
\ No newline at end of property
+1.12
\ No newline at end of property

Event Timeline