PDA

Zobacz pełną wersję : Problem z ikonami podczas aktualizacji komponentu.



piogor
20-01-2014, 16:17
Witam.

Staram się przenieść komponent z Joooma 1.5 -> 2.5. Wszystko działa tak jak powinno oprócz ikon przycisków. Na starszej wersji dodane są w następujący sposób:



$bar = & JToolBar::getInstance('toolbar');
$bar->appendButton( 'Link', 'New', 'New','(..)' , false );


W dołączonym pliku CSS mam odwołanie na tą ikonę:
.icon-32-New { background-image: url(../images/new.png); }

W nowszej wersji ten sposób niestety nie działa. Efektem jest wywietlenie się samego linku bez "kafelka" ikony. Dorzucam różnicę w załączniku.

Co muszę dokładnie pozmieniać, aby ikony działały poprawnie na Joomla 2.5? Dodam, że przedrążyłem google i nie znalazłem działającego rozwiązania. Może to kwestia jakiejś konfiguracji?7252

Pawelo31
20-01-2014, 17:28
To musisz trochę inaczej. Ja mam w swoim komponencie coś takiego w pliku view.html.php

<?php// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import Joomla view library
jimport('joomla.application.component.view');



class DudoniordersViewKategorie extends JViewLegacy
{
/**
* @return void
*/

function display($tpl = null)
{
require_once JPATH_ADMINISTRATOR.'/components/com_dudoniorders/helpers/menu.php'; //dołącz menu
JToolBarHelper::title( JText::_('Edycja kategorii'), 'generic.png' );


$task = JRequest::getCmd('task');
$model = &$this->getModel('kategorie');

$pobierzDane = $model->pobierzDane(); //Pobieranie wszystkich rekordów z tabeli #__kategorie
$this->assignRef('pobierzDane', $pobierzDane);

$pobierzKategorie = $model->pobierzKategorie(JRequest::getVar('cid')); //Pobiera id kategorii, które będą edytowane
$this->assignRef('pobierzKategorie', $pobierzKategorie);

if ($task == 'nadpisz') {
$nadpiszKategorie = $model->nadpiszKategorie();
$this->assignRef('nadpiszKategorie', $nadpiszKategorie);
}

if ($task == 'zapisz') {
$zapiszKategorie = $model->zapiszKategorie();
$this->assignRef('zapiszKategorie', $zapiszKategorie);
}

$this->addToolBar();

parent::display($tpl);
}

protected function addToolBar() {
/*
if (JRequest::getVar('layout') != 'edit')
{
JToolBarHelper::save('','Edytuj');
}
*/
JToolBarHelper::addNew('add');
JToolBarHelper::editList('edit');

JToolBarHelper::divider();

JToolBarHelper::publishList('kategorie.publish');
JToolBarHelper::unpublishList('kategorie.unpublish ');

JToolBarHelper::divider();

JToolBarHelper::preferences('com_dudoniorders');
}
}



dla dodawania masz taki przycisk JToolBarHelper::addNew('add'); Musisz wywołać funkcję tutaj $this->addToolBar(); w function display($tpl = null) która się odpala automatycznie
Tak nadajesz nazwę jeśli chcesz inną JToolBarHelper::save('','Zapisz');
Musisz jeszcze stworzyć widok po przyciśnięciu przycisku dla editList('add'); - add.php

piogor
21-01-2014, 09:26
Do tej pory cała obsługę dodawania i obsługi przycisków (tasków) miałem w models/file.php. Kod, który przytoczyłem w pierwszym poście jest właśnie z tego pliku. Nie rozumiem za bardzo jakbym miał to teraz przenieść wszystko do viel.html.php...

EDIT
Skorzystałem z
http://docs.joomla.org/J2.5:Using_the_JToolBar_class_in_the_frontend
i na chwilę obecną pojawiły mi się ikonki na przyciskach.