Skip to content

Commit

Permalink
Changed multiple select box for database tables to checkboxes
Browse files Browse the repository at this point in the history
  • Loading branch information
xong committed Sep 29, 2013
1 parent 58c020c commit e5e8ca5
Show file tree
Hide file tree
Showing 36 changed files with 219 additions and 76 deletions.
3 changes: 3 additions & 0 deletions .gitattributes
Expand Up @@ -22,3 +22,6 @@
*.RTF diff=astextplain

.gitattributes export-ignore
settings.conf export-ignore
plugins/plaintext/settings.conf export-ignore
plugins/stats/settings.conf export-ignore
1 change: 0 additions & 1 deletion classes/class.pdf2txt.inc.php
Expand Up @@ -294,4 +294,3 @@ function convert($_data = false)
return $text;
}
}
?>
1 change: 0 additions & 1 deletion classes/class.rexsearch.inc.php
Expand Up @@ -2373,4 +2373,3 @@ function search($_search)
return $return;
}
}
?>
10 changes: 3 additions & 7 deletions config.inc.php
@@ -1,14 +1,13 @@
<?php
$mypage = 'rexsearch';
#error_reporting(E_ALL | E_STRICT);

// general settings for xsearch
// general settings for rexsearch
$REX['ADDON']['rxid'][$mypage] = '587';
$REX['ADDON']['page'][$mypage] = $mypage;
$REX['ADDON']['name'][$mypage] = 'RexSearch';
$REX['ADDON']['perm'][$mypage] = $mypage.'[]';
$REX['PERM'][] = $mypage.'[]';
$REX['EXTPERM'][] = $mypage.'[settings]';
$REX['EXTRAPERM'][] = $mypage.'[settings]';

$REX['ADDON']['version'][$mypage] = '0.7.8';
$REX['ADDON']['author'][$mypage] = 'Robert Rupf';
Expand Down Expand Up @@ -52,11 +51,9 @@
);
}

#error_reporting(E_ALL ^ E_STRICT);
require $REX['ADDON']['dir'][$mypage].'/classes/class.rexsearch.inc.php';
require $REX['ADDON']['dir'][$mypage].'/functions/functions.inc.php';
require $REX['ADDON']['dir'][$mypage].'/functions/functions.mb.inc.php';
#error_reporting(0);

if(!file_exists($settingFile = dirname(__FILE__).'/settings.conf'))
{
Expand Down Expand Up @@ -114,5 +111,4 @@ function a587_add_css($params)

rex_register_extension('OUTPUT_FILTER', 'a587_add_css');
}
#error_reporting(0);
?>

59 changes: 59 additions & 0 deletions files/rexsearch.css
Expand Up @@ -80,6 +80,65 @@ display:block;
padding:3px 5px;
}

#a587_settings_form .checkbox-heading {
clear:both;
padding-left:1%;
font-weight:900;
padding:3px 0.5em;
cursor:pointer;
}

#a587_settings_form .checkbox {
float:left;
width:23%;
clear:none;
padding-left:2%;
display:none;
}

#a587_settings_form .checkbox input {
float:left;
height:1.4em;
line-height:1.4em;
}

#a587_include label {
display:block;
}

#a587_settings_form .checkbox label {
display:block;
width:auto;
cursor:pointer;
opacity:0.55;
min-height:1.4em;
color:#600;
clear:none;
padding-left:5px;
line-height:1em;
min-width:80%;
font-style:italic;
}

#a587_settings_form .checkbox input:checked + label {
opacity:1;
color:#000;
font-style:normal;
}

/*#a587_settings_form .checkbox label:before {
content:'O';
float:left;
margin-right:5px;
color:#a00;
font-size:1.1em;
}
#a587_settings_form .checkbox input:checked + label:before {
content:'Q';
color:#0a0;
}*/

#a587_settings_folders {
color:#14568A;
background:#fff;
Expand Down
18 changes: 17 additions & 1 deletion functions/functions.inc.php
Expand Up @@ -416,6 +416,23 @@ function a587_getSettingsFormSection($id = '', $title = '&nbsp;', $elements = ar
</p>';
break;

// MULTIPLE CHECKBOXES
case 'multiplecheckboxes':
$checkboxes = '';
foreach($element['options'] as $option)
{
$id = !empty($option['id'])?' id="'.$option['id'].'"':'';
$for = !empty($option['id'])?' for="'.$option['id'].'"':'';
$checkboxes .= '<div class="checkbox"><input type="checkbox"'.$id.' name="'.$element['name'].'" value="'.$option['value'].'"'.($option['checked'] ? ' checked="checked"' : '').' /> <label'.$for.'>'.$option['name'].'</label></div>';
}

$return .= '
<div class="rex-form-col-a rex-form-text">
'.(!empty($element['label']) ? '<label for="'.$element['id'].'">'.$element['label'].'</label>' : '').'
<div class="checkboxes">'.$checkboxes.'</div>
</div>';
break;

// RADIO
case 'radio':
$options = '';
Expand Down Expand Up @@ -501,4 +518,3 @@ function a587_config_unserialize($_str)

return $return;
}
?>
1 change: 0 additions & 1 deletion functions/functions.mb.inc.php
Expand Up @@ -119,4 +119,3 @@ function json_decode($json)
return $x;
}
}
?>
1 change: 0 additions & 1 deletion install.inc.php
@@ -1,3 +1,2 @@
<?php
$REX['ADDON']['install']['rexsearch'] = 1;
?>
1 change: 0 additions & 1 deletion pages/ajax.inc.php
Expand Up @@ -160,4 +160,3 @@
echo ']';
break;
}
?>
1 change: 0 additions & 1 deletion pages/generate.inc.php
Expand Up @@ -264,4 +264,3 @@ function index(type,data)
</div>
</div>';
}
?>
1 change: 0 additions & 1 deletion pages/help.inc.php
Expand Up @@ -4,4 +4,3 @@
<p class="rex-tx1">'.$I18N->Msg('a587_help_forum').'</p>';

echo rex_register_extension_point('A587_PAGE_HELP', $content);
?>
1 change: 0 additions & 1 deletion pages/index.inc.php
Expand Up @@ -75,4 +75,3 @@

include $REX['INCLUDE_PATH'].'/layout/bottom.php';
}
?>
56 changes: 51 additions & 5 deletions pages/settings.inc.php
Expand Up @@ -419,9 +419,10 @@
case 'char':
case 'varc':*/
$options[] = array(
'value' => $table.'`.`'.$column['name'],
'selected' => in_array($column['name'],(!empty($REX['ADDON']['settings']['rexsearch']['include'][$table]) AND is_array($REX['ADDON']['settings']['rexsearch']['include'][$table]))?$REX['ADDON']['settings']['rexsearch']['include'][$table]:array()),
'name' => $table.' . '.$column['name']
'value' => htmlspecialchars($table.'`.`'.$column['name']),
'checked' => in_array($column['name'],(!empty($REX['ADDON']['settings']['rexsearch']['include'][$table]) AND is_array($REX['ADDON']['settings']['rexsearch']['include'][$table]))?$REX['ADDON']['settings']['rexsearch']['include'][$table]:array()),
'name' => $table.' . '.$column['name'],
'id' => $table.' . '.$column['name']
);
//}
}
Expand All @@ -432,10 +433,11 @@
$I18N->Msg('a587_settings_include'),
array(
array(
'type' => 'multipleselect',
'type' => 'multiplecheckboxes',
'id' => 'a587_rexsearch_include',
'name' => 'a587_rexsearch[include][]',
'label' => '&lt;table&gt;.&lt;column&gt;',
//'label' => '&lt;table&gt;.&lt;column&gt;',
'label' => '',
'size' => 20,
'options' => $options
)
Expand Down Expand Up @@ -615,6 +617,50 @@
});
});


// categorize datebase tables
var current_table = '';
$('#a587_include .checkbox').each(function(i, elem)
{
var table = $('input', elem).attr('value').split(/`.`/)[0];

$('label', elem).text($('input', elem).attr('value').split(/`.`/)[1]);

if(current_table != table)
{
$(elem).before(
$('<div>').addClass('checkbox-heading rex-form-row').text(table).click(function()
{
var $next = $(this).next();
var $elements = $next;
while($next.hasClass('checkbox'))
{
//$next.show();
$elements = $elements.add($next);
$next = $next.next();
}

$elements.toggle();
})
);

current_table = table;
}
});

var active_tables = $();
$('#a587_include .checkbox input:checked').each(function(i, elem)
{
var $prev = $(this).closest('.checkbox').prev();
while($prev.hasClass('checkbox'))
$prev = $prev.prev();

active_tables = active_tables.add($prev);
});

active_tables.click();


// directory-selection
function getElementByValue(elements, value) {
var returnElem = false;
Expand Down
1 change: 0 additions & 1 deletion plugins/plaintext/classes/class.simple_html_dom.inc.php
Expand Up @@ -1021,4 +1021,3 @@ function remove($selector) {
$this->root->remove($selector);
}
}
?>
3 changes: 1 addition & 2 deletions plugins/plaintext/config.inc.php
Expand Up @@ -7,7 +7,7 @@
$REX['ADDON']['version'][$mypage] = '0.2';
$REX['ADDON']['author'][$mypage] = 'Robert Rupf';
$REX['ADDON']['supportpage'][$mypage] = 'forum.redaxo.de';
$REX['EXTPERM'][] = $parent.'['.$mypage.']';
$REX['EXTRAPERM'][] = $parent.'['.$mypage.']';

require_once $dir.'/functions/functions.inc.php';

Expand Down Expand Up @@ -51,4 +51,3 @@ function a587_plaintext_add_css($params)

rex_register_extension('OUTPUT_FILTER', 'a587_plaintext_add_css');
}
?>
1 change: 0 additions & 1 deletion plugins/plaintext/functions/functions.inc.php
Expand Up @@ -74,4 +74,3 @@ function a587_getPlaintext($_text,$_remove)

return $_text;
}
?>
2 changes: 0 additions & 2 deletions plugins/plaintext/install.inc.php
Expand Up @@ -3,5 +3,3 @@
$mypage = 'plaintext';

$REX['ADDON']['install'][$mypage] = true;

?>
1 change: 0 additions & 1 deletion plugins/plaintext/pages/index.inc.php
Expand Up @@ -319,4 +319,3 @@
</div>
<?php
include $REX['INCLUDE_PATH'].'/layout/bottom.php';
?>
2 changes: 0 additions & 2 deletions plugins/plaintext/uninstall.inc.php
Expand Up @@ -2,5 +2,3 @@
$mypage = 'plaintext';

$REX['ADDON']['install'][$mypage] = 0;

?>
57 changes: 26 additions & 31 deletions plugins/reindex/config.inc.php
Expand Up @@ -6,44 +6,39 @@
$REX['ADDON']['version'][$mypage] = '0.1';
$REX['ADDON']['author'][$mypage] = 'Robert Rupf';
$REX['ADDON']['supportpage'][$mypage] = 'forum.redaxo.de';
$REX['EXTPERM'][] = $parent.'['.$mypage.']';
$REX['EXTRAPERM'][] = $parent.'['.$mypage.']';

function rr_rexsearch_reindex($_params)
include_once dirname(__FILE__).'/functions/function.reindex.inc.php';
include_once dirname(__FILE__).'/functions/function.reindex_article.inc.php';

if($REX['REDAXO'] AND is_object($REX['USER']) AND ($REX['USER']->hasPerm($parent.'['.$mypage.']') OR $REX['USER']->isAdmin()))
{
$columns = array();
$id = 0;
$I18N->appendFile(dirname(__FILE__).'/lang/');

if(!empty($_params['xform']))
{
$tablename = $_params['form']->params['main_table'];
//$wherecondition = $_params['sql']->wherevar;
$wherecondition = $_params['form']->params['main_where'];
}
else
if(rex_get('func') == 'reindex' AND rex_get('article_id', 'int') AND 0 <= rex_get('clang', 'int', -1))
{
$tablename = $_params['form']->tableName;
$wherecondition = $_params['form']->whereCondition;
rex_register_extension('ADDONS_INCLUDED', function()
{
global $REX;

$rexsearch = new RexSearch();
$rexsearch->indexArticle($REX['ARTICLE_ID'], $REX['CUR_CLANG']);

rex_register_extension('PAGE_CONTENT_OUTPUT', function($_params)
{
global $I18N;

echo rex_info($I18N->msg('a587_reindex_done'));
});
});
}

$last_id = intval($_params['sql']->getLastId());

if(!isset($REX['ADDON']['settings']['rexsearch']['include'][$tablename]) OR !is_array($REX['ADDON']['settings']['rexsearch']['include'][$tablename]))
return true;

if(empty($id))
$id = $last_id;

$rexsearch = new RexSearch;
foreach($REX['ADDON']['settings']['rexsearch']['include'][$tablename] as $col)
$rexsearch->indexColumn($tablename, $col, false, false, false, false, $wherecondition);

return true;
}

if(OOAddon::isActivated('rexsearch') OR class_exists('rexsearch'))
{
rex_register_extension('REX_FORM_SAVED', 'rr_rexsearch_reindex');
rex_register_extension('REX_XFORM_SAVED', 'rr_rexsearch_reindex');
rex_register_extension('REX_FORM_DELETED', 'rr_rexsearch_reindex');
rex_register_extension('REX_FORM_SAVED', 'a587_rexsearch_reindex');
rex_register_extension('REX_XFORM_SAVED', 'a587_rexsearch_reindex');
rex_register_extension('REX_FORM_DELETED', 'a587_rexsearch_reindex');

rex_register_extension('PAGE_CONTENT_MENU', 'a587_rexsearch_reindex_article');
}
?>

0 comments on commit e5e8ca5

Please sign in to comment.