PDA

Zobacz pełną wersję : problem z JToolBarHelper



Escobar
27-08-2008, 18: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

wojtekkk87
30-08-2008, 22:39
do przycisku nie przypisujesz linka ale w kontrolerze tworzysz funkcję o nazwie takiej jak nazwa nadawana przyciskowi (pierwszy parametr). Proponuję zaglądnąć do mojego kursu (http://www.wromanek.info/kurs-pisania-komponentow-dla-joomla-1.5-mvc-/index.php) a wiele spraw się wyjaśni;)

Escobar
04-09-2008, 15:05
Udalo sie! Dzieki za pomoc i kurs :)

wojtekkk87
04-09-2008, 23:54
Hehe :) Proszę:)