Escobar
27-08-2008, 17:04
Witam. Jestem w trakcie tworzenie własnego komponentu backendowego z danymi personalnymi pracownikow i mam kilka pytan glownie na temat działania toolbaru'ow.
Chcialbym zeby po nacisnieciu przycisku Nowy na Toolbarze strona przechodzila do formularza i mozna bylo dodac dane.
Pytanie: jak dodac link'a do przycisku?
jak przekierowac strone?
Jesli to pomoze to wrzucam nizej swoje wypociny ;-)
moja metoda w pliku view.html.php
function display($tpl = null)
{
JToolBarHelper::title( JText::_('Dane szczegółowe'),'generic.png');
JToolBarHelper::save();
JToolBarHelper::cancel();
$model =& $this->getModel();
$dane = $model->_getData();
$this->assignRef('dane', $dane);
parent::display($tpl);
}model to cos takiego.
function _getData()
{
$cid = JRequest::getVar('cid',0);
$task = JRequest::getVar('task','');
$query = "SELECT * FROM #__userinfo WHERE id=".$cid;
$db =& JFactory::getDBO();
$db->setQuery( $query );
$data = $db->loadRow();
return $data;
}a kontroler tak:
function __construct( $config = array() )
{
parent::__construct($config);
$this->registerTask( 'save' , 'zapisz' );
$this->registerTask( 'add' , 'display' );
$this->registerTask( 'edit' , 'display' );
$this->registerTask( 'unblock', 'block' );
$this->registerTask( 'cancel' , 'anuluj' );
}
function display()
{
switch( $this->getTask )
{
case 'add':
{
JRequest::setVar( 'hidemainmenu', 1 );
JRequest::setVar( 'layout', 'form' );
JRequest::setVar( 'view', 'userinfo' );
JRequest::setVar( 'edit', false );
} break;
case 'edit':
{
JRequest::setVar( 'hidemainmenu', 1 );
//JRequest::setVar( 'layout', 'form' );
JRequest::setVar( 'view', 'userinfo' );
JRequest::setVar( 'edit', true );
} break;
}
parent::display();
}
function zapisz()
{
global $mainframe;
JRequest::checkToken() or jexit( 'Invalid Token' );
JTable::addIncludePath( JPATH_COMPONENT.DS.'tables' );
$row = JTable::getInstance('Userinfo','table');
$row->id = JRequest::getVar('id',0,'post');
$row->nazwa = JRequest::getVar('nazwa','','post');
$row->ulica = JRequest::getVar('ulica','','post');
$row->miejscowosc = JRequest::getVar('miejscowosc','','post');
$row->kod = JRequest::getVar('kod','','post');
$row->kraj = JRequest::getVar('kraj','','post');
$row->region = JRequest::getVar('region','','post');
$row->NIP = JRequest::getVar('NIP','','post');
$row->REGON = JRequest::getVar('REGON','','post');
$row->tel = JRequest::getVar('tel','','post');
$row->cena = JRequest::getVar('cena','','post');
$row->upust = JRequest::getVar('upust','','post');
if( !$row->store() )
{
echo "********** alert($row->getError()); window.history.go(-1); ***********\n";
exit();
}
else $mainframe->redirect('index.php?option=com_userinfo','Dane zapisane');
}
function cancel()
{
global $mainframe;
Request::checkToken() or jexit( 'Invalid Token' );
$mainframe->redirect('index.php?option=com_userinfo','Powrót. ..');
}Prosze o szybka pomoc ;-) pozdrawiam
Chcialbym zeby po nacisnieciu przycisku Nowy na Toolbarze strona przechodzila do formularza i mozna bylo dodac dane.
Pytanie: jak dodac link'a do przycisku?
jak przekierowac strone?
Jesli to pomoze to wrzucam nizej swoje wypociny ;-)
moja metoda w pliku view.html.php
function display($tpl = null)
{
JToolBarHelper::title( JText::_('Dane szczegółowe'),'generic.png');
JToolBarHelper::save();
JToolBarHelper::cancel();
$model =& $this->getModel();
$dane = $model->_getData();
$this->assignRef('dane', $dane);
parent::display($tpl);
}model to cos takiego.
function _getData()
{
$cid = JRequest::getVar('cid',0);
$task = JRequest::getVar('task','');
$query = "SELECT * FROM #__userinfo WHERE id=".$cid;
$db =& JFactory::getDBO();
$db->setQuery( $query );
$data = $db->loadRow();
return $data;
}a kontroler tak:
function __construct( $config = array() )
{
parent::__construct($config);
$this->registerTask( 'save' , 'zapisz' );
$this->registerTask( 'add' , 'display' );
$this->registerTask( 'edit' , 'display' );
$this->registerTask( 'unblock', 'block' );
$this->registerTask( 'cancel' , 'anuluj' );
}
function display()
{
switch( $this->getTask )
{
case 'add':
{
JRequest::setVar( 'hidemainmenu', 1 );
JRequest::setVar( 'layout', 'form' );
JRequest::setVar( 'view', 'userinfo' );
JRequest::setVar( 'edit', false );
} break;
case 'edit':
{
JRequest::setVar( 'hidemainmenu', 1 );
//JRequest::setVar( 'layout', 'form' );
JRequest::setVar( 'view', 'userinfo' );
JRequest::setVar( 'edit', true );
} break;
}
parent::display();
}
function zapisz()
{
global $mainframe;
JRequest::checkToken() or jexit( 'Invalid Token' );
JTable::addIncludePath( JPATH_COMPONENT.DS.'tables' );
$row = JTable::getInstance('Userinfo','table');
$row->id = JRequest::getVar('id',0,'post');
$row->nazwa = JRequest::getVar('nazwa','','post');
$row->ulica = JRequest::getVar('ulica','','post');
$row->miejscowosc = JRequest::getVar('miejscowosc','','post');
$row->kod = JRequest::getVar('kod','','post');
$row->kraj = JRequest::getVar('kraj','','post');
$row->region = JRequest::getVar('region','','post');
$row->NIP = JRequest::getVar('NIP','','post');
$row->REGON = JRequest::getVar('REGON','','post');
$row->tel = JRequest::getVar('tel','','post');
$row->cena = JRequest::getVar('cena','','post');
$row->upust = JRequest::getVar('upust','','post');
if( !$row->store() )
{
echo "********** alert($row->getError()); window.history.go(-1); ***********\n";
exit();
}
else $mainframe->redirect('index.php?option=com_userinfo','Dane zapisane');
}
function cancel()
{
global $mainframe;
Request::checkToken() or jexit( 'Invalid Token' );
$mainframe->redirect('index.php?option=com_userinfo','Powrót. ..');
}Prosze o szybka pomoc ;-) pozdrawiam