-
-
Save joachimdoerr/9ab261b5b760b82244af59b598071c7b to your computer and use it in GitHub Desktop.
REDAXO rex_form-Beispiel (mit Suche)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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