Zobacz pełną wersję : "Start > mój komponent" - jak utrzymać ścieżkę w trakcie pracy komponentu
DarkOfTheMoon
23-02-2006, 23:46
Przy wywołaniu komponentu ładnie się pojawia, ale jeżeli ze strony głównej komponentu przechodzę do wykonania innego zadania i $task realizuje inną funkcję komponentu, pozostaje już tylko "Start".
O przekazaniu jakiej zmiennej Joomlowskiej zapomniałem? ($option przekazuję oczywiście)
DarkOfTheMoon
24-02-2006, 13:53
$Itemid przekazywałem jeszcze przed opisaniem problemu, ale przy wywołaniu funkcji z komponentu otrzymywałem komunikat:
"Treść którą chcesz zobaczyć nie istnieje. Proszę wybrać inny element z nawigacji"
Dla przykładu plik x.php
require_once( $mainframe->getPath( 'front_html' ) );
switch( $task ) {
case 'new':
HTML_carmart::nowe($option, $Itemid);
break;
default:
HTML_carmart::brak($option, $Itemid);
break;
Plik x.html.php
class HTML_carmart {
function brak($option, $Itemid) {
...
<form action="index.php" method="post" name="adminForm">
<div class="carmart_menu" align="right">
<?php
mosMenuBar::startTable();
mosMenuBar::addNew('new', 'Nowe');
mosMenuBar::editList('edit', 'Edytuj');
mosMenuBar::publish('publish');
mosMenuBar::unpublish('unpublish');
mosMenuBar::deleteList( ' ', 'delete', 'Usuń' );
mosMenuBar::endTable();
?>
</div>
<input type="hidden" name="option" value="<?php echo $option;?>"/>
<input type="hidden" name="option" value="<?php echo $Itemid;?>"/> // poprawione na Itemid
<input type="hidden" name="task" value="new" />
</form>
<?php
}
function nowe($option, $Itemid) {
?>
<div class="carmart_menu" align="right">
<?php
mosMenuBar::startTable();
mosMenuBar::addNew('new', 'Nowe');
mosMenuBar::editList('edit', 'Edytuj');
mosMenuBar::publish('publish');
mosMenuBar::unpublish('unpublish');
mosMenuBar::deleteList( ' ', 'delete', 'Usuń' );
mosMenuBar::endTable();
...
DarkOfTheMoon
24-02-2006, 19:40
Pozwoliłem sam sobie odpowiedzieć na część problemu aby nie umknęło i nie wprowadzało niepotrzebnego zamieszania. Otóż przytoczony komunikat błędu spowodowany został moim błędem w nazewnictwie zmiennych przekazywanych w formularzu (zaznaczyłem w kodzie na czerwono). Po korekcie zmienna jest już poprawnie przekazywana do funkcji bez nikakich problemów.
Niestety pomimo przekazania $option oraz $Itemid, ścieżka zmienia się z "Start > mój_komponent" na "Start"...
DarkOfTheMoon
24-02-2006, 19:57
Kończąc pisanie poprzedniego posta, pomyślałem sobie o jeszcze jednej możliwości - może dane pobierane są z globalnej GET a nie POST. Zmieniłem metodę przesyłania formularza na GET i zadziałało!
I takie to już moje szczęście na tym forum, sam zaczynam i sam kończę... Niech służy innym!
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!