Skip to content

Instantly share code, notes, and snippets.

@dajoho
Created October 11, 2012 07:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save dajoho/3870786 to your computer and use it in GitHub Desktop.
Save dajoho/3870786 to your computer and use it in GitHub Desktop.
REDAXO rex_form-Beispiel (mit Suche)
<?php
$id = rex_request('id', 'int');
$sort = rex_request('sort','string');
$sorttype = rex_request('sorttype','string');
$filter = rex_request('filter','string');
class br_formatter {
function productstatus($params){
$status = "";
$status_int = $params['subject'];
$list = $params['list'];
if($status_int == 0){
$status = $list->getColumnLink("active","<span class=\"rex-offline\">Offline</span>");
}
elseif($status_int == 1){
$status = $list->getColumnLink("active","<span class=\"rex-online\">Online</span>");
}
return $status;
}
function producttype($params){
$status = "";
$status_int = $params['subject'];
$list = $params['list'];
if($status_int == 0){
$status = 'Buchtipp';
}
elseif($status_int == 1){
$status = 'Buchpickertipp';
}
return $status;
}
function createdate($params){
$date = $params['subject'];
return date('Y-m-d',$date);
}
}
echo '<div id="bookreviews">';
if($func == 'user_status') {
$status = rex_request('user_status', 'int');
$status = ($status+1)%2;
$sql = new sql();
$sql->setTable($REX['TABLE_PREFIX'].'br_review');
$sql->setValue('active', $status);
$sql->setWhere('id='. $id);
$sql->update();
}
if ($func == '' || $func == 'user_status'){
///////////////////////////
// SUCHE
///////////////////////////
echo '<div class="rex-list-navi">
<form action="index.php" method="get" style="margin: 0 0 22px 0;">
<p><label style="padding:0 0 0 10px;">'.$I18N_A423->msg('search_searchLabel').':</label>
<input type="" name="filter" value="'.rex_request('filter','string').'" />
<input type="submit" value="'.$I18N_A423->msg('search_searchButton').'" />
<input type="hidden" name="page" value="bookreviews" />
<input type="hidden" name="subpage" value="" />';
if($filter != ""){
echo '[<a href="index.php?page=bookreviews&subpage=">'.$I18N_A423->msg('search_removeFilter').'</a>]';
}
echo '
</p>
</form>
</div>';
///////////////////////////
$query = 'SELECT review.id, review.type, review.createdate , review.title, reviewer.name , review.active FROM `rex_br_review` as review LEFT JOIN rex_br_reviewer as reviewer ON (reviewer.id = review.r_reviewer1_id)';
if ($filter!="") {
$query.= ' WHERE review.id LIKE "%'.$filter.'%" || review.title LIKE "%'.$filter.'%" || reviewer.name LIKE "%'.$filter.'%"';
}
if ($sort=="" && $sorttype=="") {
$query .= ' ORDER BY id DESC';
}
$list = new rex_list($query, 50);
$list->setColumnParams('title', array('func' => 'edit', 'id' => '###id###'));
$add_edit = '<a href="'. $list->getUrl(array('func' => 'add')) .'"><img src="media/metainfo_plus.gif" alt="add" title="add" /></a>';
$list->setColumnSortable('id');
$list->setColumnSortable('type');
$list->setColumnSortable('title');
$list->setColumnSortable('name');
$list->setColumnSortable('createdate');
$list->addColumn( $add_edit,
'<img src="media/metainfo.gif" alt="field" title="field" />',
0,
array('<th class="rex-icon">###VALUE###</th>',
'<td class="rex-icon">###VALUE###</td>')
);
$list->setColumnParams( $add_edit,
array('func' => 'edit', 'id' => '###id###')
);
$list->setColumnLabel('id', $I18N->msg('br_id'));
$list->setColumnLabel('type', $I18N->msg('br_type'));
$list->setColumnFormat('type', 'custom',array('br_formatter','producttype'));
$list->setColumnLabel('title', $I18N->msg('br_title'));
$list->setColumnLabel('name', $I18N->msg('br_reviewer'));
$list->setColumnLabel('createdate', $I18N->msg('br_createdate'));
$list->setColumnFormat('createdate', 'custom',array('br_formatter','createdate'));
$list->setColumnLabel('active', $I18N->msg('br_status'));
$list->setColumnFormat('active', 'custom',array('br_formatter','productstatus'));
$list->setColumnParams('active', array('func' => 'user_status', 'id' => '###id###', 'user_status' => '###active###'));
$list->show();
}
elseif ($func == 'edit' || $func == 'add'){
$form = new br_review_rex_form('rex_br_review',$I18N->msg('br_bookreview'),"id=".$id,"post", false);
$field =& $form->addSelectField('active');
$field->setLabel($I18N->msg('br_status'));
$select =& $field->getSelect();
$select->setSize(1);
$select->addOption('Offline',0);
$select->addOption('Online',1);
$select->setAttribute('style','width:100px');
$field =& $form->addSelectField('type');
$field->setLabel($I18N->msg('br_type'));
$select =& $field->getSelect();
$select->setSize(1);
$select->addOption('Buchtipp',0);
$select->addOption('Buchpickertipp',1);
$select->setAttribute('style','width:225px');
$field = &$form->addTextField('isbn');
$field->setLabel($I18N->msg('br_isbn'));
$field->setAttribute('style','width:356px');
$field->setSuffix('<a href="#" id="infoload">Buchinfos herunterladen<br>(Cover, Titel, Autor)</a>');
$field = &$form->addMediaField('review_pic');
$field->setLabel("");
$field->setPrefix('<div id="coverpreview"></div><label style="float:left;clear:none;">'.$I18N->msg('br_reviewpic').'</label>');
//$field->setSuffix('');
$field = &$form->addTextField('title');
$field->setLabel($I18N->msg('br_title'));
$field = &$form->addTextField('author');
$field->setLabel($I18N->msg('br_author'));
$field = &$form->addTextField('price');
$field->setLabel($I18N->msg('br_price'));
$field2 = &$form->addTextField('publisher');
$field2->setLabel($I18N->msg('br_publisher'));
$field2->setAttribute('style','width:225px');
$select2 = new rex_select();
$select2->setSize(1);
$select2->setAttribute('style','width:225px');
$select2->setAttribute('id','pushlisher-dropdown');
$select2->addSqlOptions('
SELECT publisher as id, publisher as name FROM rex_br_review WHERE publisher <> "" GROUP BY publisher ORDER BY publisher
');
$field2->setSuffix($select2->get());
$field =& $form->addSelectField('binding');
$field->setLabel($I18N->msg('br_binding'));
$select =& $field->getSelect();
$select->setSize(1);
$select->addOption('gebunden', 'gebunden');
$select->addOption('kartoniert', 'kartoniert');
$select->addOption('CD', 'CD');
$select->addOption('DVD', 'DVD');
$select->addOption('Halbleinen', 'Halbleinen');
$select->addOption('Leinen', 'Leinen');
$select->addOption('Spezial', 'Spezial');
$select->setAttribute('style','width:225px');
$field = &$form->addTextAreaField('description');
$field->setLabel($I18N->msg('br_description'));
$field->setAttribute('style','height:200px');
/////////////////
$form->addFieldset($I18N->msg('br_review1'));
$field =& $form->addSelectField('r_reviewer1_id');
$field->setLabel($I18N->msg('br_reviewer'));
$select =& $field->getSelect();
$select->setSize(1);
$select->setAttribute('style','width:225px');
$select->addOption('---','-');
$select->addSqlOptions('
SELECT name, id FROM rex_br_reviewer WHERE active <> 0 GROUP BY name ORDER BY name
');
$userId = $field->getValue();
if($userId != "" || $userId != 0 || $userId != "0"){
$sql = new rex_sql();
$sql->setQuery('SELECT * FROM rex_br_reviewer WHERE id='.$userId);
if($sql->getRows()>0){
if ($sql->getValue('active')=='0') {
$rezname = $sql->getValue('name');
$rezid = $sql->getValue('id');
$select->addOption($rezname,$rezid);
}
}
}
$field = &$form->addTextAreaField('reviewer1_fazit');
$field->setLabel($I18N->msg('br_fazit'));
$field =& $form->addSelectField('reviewer1_score');
$field->setLabel($I18N->msg('br_score'));
$select =& $field->getSelect();
$select->setSize(1);
$select->addOption('1',1);
$select->addOption('2',2);
$select->addOption('3',3);
$select->addOption('4',4);
$select->addOption('5',5);
$select->addOption('6',6);
$select->setAttribute('style','width:225px');
/////////////////
$form->addFieldset($I18N->msg('br_review2'));
$field =& $form->addSelectField('r_reviewer2_id');
$field->setLabel($I18N->msg('br_reviewer'));
$select =& $field->getSelect();
$select->setSize(1);
$select->setAttribute('style','width:225px');
$select->addOption('---','-');
$select->addSqlOptions('
SELECT name, id FROM rex_br_reviewer WHERE active <> 0 GROUP BY name ORDER BY name
');
$userId = $field->getValue();
if($userId != "" || $userId != 0 || $userId != "0"){
$sql = new rex_sql();
$sql->setQuery('SELECT * FROM rex_br_reviewer WHERE id='.$userId);
if($sql->getRows()>0){
if ($sql->getValue('active')=='0') {
$rezname = $sql->getValue('name');
$rezid = $sql->getValue('id');
$select->addOption($rezname,$rezid);
}
}
}
$field = &$form->addTextAreaField('reviewer2_fazit');
$field->setLabel($I18N->msg('br_fazit'));
$field =& $form->addSelectField('reviewer2_score');
$field->setLabel($I18N->msg('br_score'));
$select =& $field->getSelect();
$select->setSize(1);
$select->addOption('1',1);
$select->addOption('2',2);
$select->addOption('3',3);
$select->addOption('4',4);
$select->addOption('5',5);
$select->addOption('6',6);
$select->setAttribute('style','width:225px');
/////////////////
$form->addFieldset($I18N->msg('br_review3'));
$field =& $form->addSelectField('r_reviewer3_id');
$field->setLabel($I18N->msg('br_reviewer'));
$select =& $field->getSelect();
$select->setSize(1);
$select->setAttribute('style','width:225px');
$select->addOption('---','-');
$select->addSqlOptions('
SELECT name, id FROM rex_br_reviewer WHERE active <> 0 GROUP BY name ORDER BY name
');
$userId = $field->getValue();
if($userId != "" || $userId != 0 || $userId != "0"){
$sql = new rex_sql();
$sql->setQuery('SELECT * FROM rex_br_reviewer WHERE id='.$userId);
if($sql->getRows()>0){
if ($sql->getValue('active')=='0') {
$rezname = $sql->getValue('name');
$rezid = $sql->getValue('id');
$select->addOption($rezname,$rezid);
}
}
}
$field = &$form->addTextAreaField('reviewer3_fazit');
$field->setLabel($I18N->msg('br_fazit'));
$field =& $form->addSelectField('reviewer3_score');
$field->setLabel($I18N->msg('br_score'));
$select =& $field->getSelect();
$select->setSize(1);
$select->addOption('1',1);
$select->addOption('2',2);
$select->addOption('3',3);
$select->addOption('4',4);
$select->addOption('5',5);
$select->addOption('6',6);
$select->setAttribute('style','width:225px');
/////////////////
$form->addFieldset($I18N->msg('br_review4'));
$field =& $form->addSelectField('r_reviewer4_id');
$field->setLabel($I18N->msg('br_reviewer'));
$select =& $field->getSelect();
$select->setSize(1);
$select->setAttribute('style','width:225px');
$select->addOption('---','-');
$select->addSqlOptions('
SELECT name, id FROM rex_br_reviewer WHERE active <> 0 GROUP BY name ORDER BY name
');
$userId = $field->getValue();
if($userId != "" || $userId != 0 || $userId != "0"){
$sql = new rex_sql();
$sql->setQuery('SELECT * FROM rex_br_reviewer WHERE id='.$userId);
if($sql->getRows()>0){
if ($sql->getValue('active')=='0') {
$rezname = $sql->getValue('name');
$rezid = $sql->getValue('id');
$select->addOption($rezname,$rezid);
}
}
}
$field = &$form->addTextAreaField('reviewer4_fazit');
$field->setLabel($I18N->msg('br_fazit'));
$field =& $form->addSelectField('reviewer4_score');
$field->setLabel($I18N->msg('br_score'));
$select =& $field->getSelect();
$select->setSize(1);
$select->addOption('1',1);
$select->addOption('2',2);
$select->addOption('3',3);
$select->addOption('4',4);
$select->addOption('5',5);
$select->addOption('6',6);
$select->setAttribute('style','width:225px');
/////////////////
$form->addFieldset($I18N->msg('br_cats'));
$field =& $form->addSelectField('cat_id');
$field->setLabel($I18N->msg('br_cats'));
$select =& $field->getSelect();
$select->setSize(10);
$select->setMultiple(true);
$select->setAttribute('style','width:225px');
$select->addSqlOptions('
SELECT name, id FROM rex_br_categories WHERE active <> 0 GROUP BY name ORDER BY name
');
$userId = $field->getValue();
if($userId != "" || $userId != 0 || $userId != "0"){
$sql = new rex_sql();
$sql->setQuery('SELECT * FROM rex_br_categories WHERE id='.$userId);
if($sql->getRows()>0){
if ($sql->getValue('active')=='0') {
$rezname = $sql->getValue('name');
$rezid = $sql->getValue('id');
$select->addOption($rezname,$rezid);
}
}
}
/////////////////
if($func == 'edit'){
$form->addParam('id', $id);
}
$form->show();
}
if($func == "delete"){
$query = "delete from rex_br_review where id='".$id."' ";
$delsql = new sql;
$delsql->debugsql=0;
$delsql->setQuery($query);
$func = "";
}
echo '</div>';
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment