/**
* Manage fulltext configurations, dictionaries and mappings
*
- * $Id: fulltext.php,v 1.3 2007/10/17 20:56:28 ioguix Exp $
+ * $Id: fulltext.php,v 1.4 2007/11/23 17:58:47 xzilla Exp $
*/
// Include application functions
$misc->printTrail('database');
$misc->printTabs('database','fulltext');
+ $misc->printTabs('fulltext','ftsconfigs');
$misc->printMsg($msg);
$cfgs = $data->getFtsConfigurations();
echo "<ul class=\"navlink\">\n";
echo "\t<li><a href=\"fulltext.php?action=createconfig&{$misc->href}\">{$lang['strftscreateconfig']}</a></li>\n";
- echo "\t<li><a href=\"fulltext.php?action=createdict&{$misc->href}\">{$lang['strftscreatedict']}</a></li>\n";
- echo "\t<li><a href=\"fulltext.php?action=createparser&{$misc->href}\">{$lang['strftscreateparser']}</a></li>\n";
echo "</ul>\n";
}
doAlterConfig($lang['strftsconfigalteredbad']);
}
+ /**
+ * View list of FTS parsers
+ */
+ function doViewParsers($msg = '') {
+ global $data, $misc;
+ global $lang;
- /**
- * View details of FTS configuration given
- */
- function doViewConfig($ftscfg, $msg = '') {
- global $data, $misc;
- global $lang;
-
- $misc->printTrail('ftscfg');
+ $misc->printTrail('database');
$misc->printTabs('database','fulltext');
- $misc->printMsg($msg);
+ $misc->printTabs('fulltext','ftsparsers');
+ $misc->printMsg($msg);
- echo "<h3>{$lang['strftsparsers']}</h3>\n";
+ $parsers = $data->getFtsParsers();
- $parsers = $data->getFtsParsers();
+ $columns = array(
+ 'schema' => array(
+ 'title' => $lang['strschema'],
+ 'field' => field('schema'),
+ ),
+ 'name' => array(
+ 'title' => $lang['strname'],
+ 'field' => field('name'),
+ ),
+ 'comment' => array(
+ 'title' => $lang['strcomment'],
+ 'field' => field('comment'),
+ ),
- $columns = array(
- 'schema' => array(
- 'title' => $lang['strschema'],
- 'field' => field('schema'),
- ),
- 'name' => array(
- 'title' => $lang['strname'],
- 'field' => field('name'),
- ),
- 'comment' => array(
- 'title' => $lang['strcomment'],
- 'field' => field('comment'),
- ),
+ );
- );
+ $actions = array();
- $actions = array();
+ $misc->printTable($parsers, $columns, $actions, $lang['strftsnoparsers']);
- $misc->printTable($parsers, $columns, $actions, $lang['strftsnoparsers']);
+ //TODO: create parser
+ //echo "<ul class=\"navlink\">\n";
+ //echo "\t<li><a href=\"#\">{$lang['strftscreateparser']}</a></li>\n";
+ //echo "</ul>\n";
- echo "<h3>{$lang['strftsdicts']}</h3>\n";
+ }
- $dicts = $data->getFtsDictionaries();
- $columns = array(
- 'schema' => array(
- 'title' => $lang['strschema'],
- 'field' => field('schema'),
- ),
- 'name' => array(
- 'title' => $lang['strname'],
- 'field' => field('name'),
- ),
- 'actions' => array(
- 'title' => $lang['stractions'],
- ),
- 'comment' => array(
- 'title' => $lang['strcomment'],
- 'field' => field('comment'),
- ),
+ /**
+ * View list of FTS dictionaries
+ */
+ function doViewDicts($msg = '') {
+ global $data, $misc;
+ global $lang;
- );
+ $misc->printTrail('database');
+ $misc->printTabs('database','fulltext');
+ $misc->printTabs('fulltext','ftsdicts');
+ $misc->printMsg($msg);
+
+ $dicts = $data->getFtsDictionaries();
+
+ $columns = array(
+ 'schema' => array(
+ 'title' => $lang['strschema'],
+ 'field' => field('schema'),
+ ),
+ 'name' => array(
+ 'title' => $lang['strname'],
+ 'field' => field('name'),
+ ),
+ 'actions' => array(
+ 'title' => $lang['stractions'],
+ ),
+ 'comment' => array(
+ 'title' => $lang['strcomment'],
+ 'field' => field('comment'),
+ ),
+
+ );
+
+ $actions = array(
+ 'drop' => array(
+ 'title' => $lang['strdrop'],
+ 'url' => "fulltext.php?action=dropdict&{$misc->href}&",
+ 'vars' => array('ftsdict' => 'name'),
+ ),
+ 'alter' => array(
+ 'title' => $lang['stralter'],
+ 'url' => "fulltext.php?action=alterdict&{$misc->href}&",
+ 'vars' => array('ftsdict' => 'name'),
+ ),
+ );
+
+ $misc->printTable($dicts, $columns, $actions, $lang['strftsnodicts']);
+
+ echo "<ul class=\"navlink\">\n";
+ echo "\t<li><a href=\"fulltext.php?action=createdict&{$misc->href}&\">{$lang['strftscreatedict']}</a></li>\n";
+ echo "</ul>\n";
- $actions = array(
- 'drop' => array(
- 'title' => $lang['strdrop'],
- 'url' => "fulltext.php?action=dropdict&{$misc->href}&ftscfg={$ftscfg}&",
- 'vars' => array('ftsdict' => 'name'),
- ),
- 'alter' => array(
- 'title' => $lang['stralter'],
- 'url' => "fulltext.php?action=alterdict&{$misc->href}&ftscfg={$ftscfg}&",
- 'vars' => array('ftsdict' => 'name'),
- ),
- );
+ }
- $misc->printTable($dicts, $columns, $actions, $lang['strftsnodicts']);
+
+ /**
+ * View details of FTS configuration given
+ */
+ function doViewConfig($ftscfg, $msg = '') {
+ global $data, $misc;
+ global $lang;
+
+ $misc->printTrail('ftscfg');
+ $misc->printTabs('database','fulltext');
+ $misc->printTabs('fulltext','ftsconfigs');
+ $misc->printMsg($msg);
echo "<h3>{$lang['strftsconfigmap']}</h3>\n";
'name' => array(
'title' => $lang['strftsmapping'],
'field' => field('name'),
- //'url' => "fulltext.php?action=viewtoken&{$misc->href}&",
- //'vars' => array('ftscfg' => 'name'),
),
'dictionaries' => array(
'title' => $lang['strftsdicts'],
'title' => $lang['stralter'],
'url' => "fulltext.php?action=altermapping&{$misc->href}&",
'vars' => array('mapping' => 'name', 'ftscfg' => 'cfgname'),
- 'multiaction' => 'altermapping',
),
'multiactions' => array(
'keycols' => array('mapping' => 'name'),
echo "<ul class=\"navlink\">\n";
echo "\t<li><a href=\"fulltext.php?action=addmapping&{$misc->href}&ftscfg={$ftscfg}\">{$lang['strftsaddmapping']}</a></li>\n";
- echo "\t<li><a href=\"#\">{$lang['strftscreateconfig']}</a></li>\n";
- echo "<\t<li>a href=\"#\">{$lang['strftscreatedict']}</a></li>\n";
echo "</ul>\n";
}
echo "\t\t<td class=\"data1\"><input name=\"formName\" size=\"32\" maxlength=\"{$data->_maxNameLen}\" value=\"",
htmlspecialchars($_POST['formName']), "\" /> ",
"<input type=\"checkbox\" name=\"formIsTemplate\" id=\"formIsTemplate\"", @$_POST['formIsTemplate'] ? ' checked="checked" ' : '',
- "onchange=\"document.getElementsByName('formTemplate')[0].disabled = this.checked;document.getElementsByName('formLexize')[0].disabled = !this.checked;document.getElementsByName('formInit')[0].disabled = !this.checked;\" />",
+ "onchange=\"document.getElementsByName('formTemplate')[0].disabled = this.checked;document.getElementsByName('formOption')[0].disabled = this.checked;document.getElementsByName('formLexize')[0].disabled = !this.checked;document.getElementsByName('formInit')[0].disabled = !this.checked;\" />",
"<label for=\"formIsTemplate\">{$lang['strftscreatedicttemplate']}</label></td>\n\t</tr>\n";
// Template
"/></td>\n\t</tr>\n";
// Option
- echo "\t<tr>\n\t\t<th class=\"data left\">{$lang['strftsoption']}</th>\n";
+ echo "\t<tr>\n\t\t<th class=\"data left\">{$lang['strftsoptionsvalues']}</th>\n";
echo "\t\t<td class=\"data1\"><input name=\"formOption\" size=\"32\" maxlength=\"1000\" value=\"",
htmlspecialchars($_POST['formOption']), "\" /></td>\n\t</tr>\n";
$status = $data->createFtsDictionary($_POST['formName'], @$_POST['formIsTemplate'], @$_POST['formTemplate'], @$_POST['formLexize'], @$_POST['formInit'], @$_POST['formOption'], $_POST['formComment']);
if ($status == 0) {
$_reload_browser = true;
- doDefault($lang['strftsdictcreated']);
+ doViewDicts($lang['strftsdictcreated']);
}
else
doCreateDict($lang['strftsdictcreatedbad']);
echo "</table>\n";
echo "<p><input type=\"hidden\" name=\"action\" value=\"alterdict\" />\n";
echo "<input type=\"hidden\" name=\"ftsdict\" value=\"", htmlspecialchars($_POST['ftsdict']), "\" />\n";
- echo "<input type=\"hidden\" name=\"ftscfg\" value=\"", htmlspecialchars($_REQUEST['ftscfg']), "\" />\n";
- echo "<input type=\"hidden\" name=\"prev_action\" value=\"viewconfig\" /></p>\n";
+ echo "<input type=\"hidden\" name=\"prev_action\" value=\"viewdicts\" /></p>\n";
echo $misc->form;
echo "<input type=\"submit\" name=\"alter\" value=\"{$lang['stralter']}\" />\n";
echo "<input type=\"submit\" name=\"cancel\" value=\"{$lang['strcancel']}\" /></p>\n";
$status = $data->updateFtsDictionary($_POST['ftsdict'], $_POST['formComment'], $_POST['formName']);
if ($status == 0)
- doDefault($lang['strftsdictaltered']);
+ doViewDicts($lang['strftsdictaltered']);
else
doAlterDict($lang['strftsdictalteredbad']);
}
if (is_array($_REQUEST['mapping'])) {
$status = $data->changeFtsMapping($_REQUEST['ftscfg'], $_REQUEST['mapping'], 'drop');
if ($status != 0) {
- doDefault($lang['strftsmappingdroppedbad']);
+ doViewConfig($_REQUEST['ftscfg'], $lang['strftsmappingdroppedbad']);
return;
}
- doDefault($lang['strftsmappingdropped']);
+ doViewConfig($_REQUEST['ftscfg'], $lang['strftsmappingdropped']);
} else {
$status = $data->changeFtsMapping($_REQUEST['ftscfg'], array($_REQUEST['mapping']), 'drop');
if ($status == 0) {
- doDefault($lang['strftsmappingdropped']);
+ doViewConfig($_REQUEST['ftscfg'], $lang['strftsmappingdropped']);
} else {
- doDefault($lang['strftsmappingdroppedbad']);
+ doViewConfig($_REQUEST['ftscfg'], $lang['strftsmappingdroppedbad']);
}
}
}
function doTree() {
global $misc, $data, $lang, $slony;
- $ftscfgs = $data->getFtsConfigurations();
+ $tabs = $misc->getNavTabs('fulltext');
+ $items = $misc->adjustTabsForTree($tabs);
$reqvars = $misc->getRequestVars('ftscfg');
$attrs = array(
- 'text' => field('name'),
- 'icon' => 'Fts',
- 'toolTip'=> field('comment'),
+ 'text' => noEscape(field('title')),
+ 'icon' => field('icon'),
'action' => url('fulltext.php',
$reqvars,
- array(
- 'action' => 'viewconfig',
- 'ftscfg' => field('name')
- )
+ field('urlvars')
),
- 'branch' => ifempty(
- field('branch'), '', url('fulltext.php',
- $reqvars,
- array(
- 'action' => 'subtree',
- 'ftscfg' => field('name')
- )
- )),
+ 'branch' => url('fulltext.php',
+ $reqvars,
+ array(
+ 'action' => 'subtree',
+ 'what' => field('icon') // IZ: yeah, it's ugly, but I do not want to change navigation tabs arrays
+ )
+ ),
);
- $misc->printTreeXML($ftscfgs, $attrs);
+ $misc->printTreeXML($items, $attrs);
exit;
}
+ function doSubTree($what) {
+ global $misc, $data, $lang;
+
+ switch($what) {
+ case 'FtsCfg':
+ $items = $data->getFtsConfigurations();
+ $urlvars = array('action' => 'viewconfig', 'ftscfg' => field('name'));
+ break;
+ case 'FtsDict':
+ $items = $data->getFtsDictionaries();
+ $urlvars = array('action' => 'viewdicts');
+ break;
+ case 'FtsParser':
+ $items = $data->getFtsParsers();
+ $urlvars = array('action' => 'viewparsers');
+ break;
+ default:
+ exit;
+ }
+
+ $reqvars = $misc->getRequestVars('ftscfg');
+
+ $attrs = array(
+ 'text' => noEscape(field('name')),
+ 'icon' => $what,
+ 'toolTip'=> field('comment'),
+ 'action' => url('fulltext.php',
+ $reqvars,
+ $urlvars
+ ),
+ 'branch' => ifempty(
+ field('branch'), '', url('fulltext.php',
+ $reqvars,
+ array(
+ 'action' => 'subtree',
+ 'ftscfg' => field('name')
+ )
+ )),
+ );
+
+ $misc->printTreeXML($items, $attrs);
+ exit;
+ }
+
if ($action == 'tree') doTree();
+ if ($action == 'subtree') doSubTree($_REQUEST['what']);
$misc->printHeader($lang['strschemas']);
$misc->printBody();
case 'viewconfig':
doViewConfig($_REQUEST['ftscfg']);
break;
+ case 'viewparsers':
+ doViewParsers();
+ break;
+ case 'viewdicts':
+ doViewDicts();
+ break;
case 'createdict':
if (isset($_POST['create'])) doSaveCreateDict();
else doCreateDict();