PDA

Zobacz pełną wersję : Jak dodać opcję drukuj do widoku szczegółowego komponentu np. Sobi2



Jola
20-10-2009, 22:47
Opisany sposób umożliwia osiągnięcie takiej samej funkcjonalności drukowania jaką mają artykuły. Można go zastosować w dowolnym komponencie odpowiednio modyfikując dane.
Przykładowo opiszę to na przykładzie Sobi2.
Zaczynamy od sprawdzenia jak wygląda adres strony, na której chcemy umieścić ikonkę "Drukuj", nazwę go adresem bazowym:

index.php?option=com_sobi2&sobi2Task=sobi2Details&catid=0&sobi2Id=8&Itemid=56Poniższy kod PHP wstawiamy do pliku sobi2.details.tmpl.php zaraz nad

<table class="sobi2Details" <?php echo $style; ?> >Kod PHP:
<?php
$Itemid = JRequest::getVar('Itemid', '', '', 'int');
$sobi2Id = JRequest::getVar('sobi2Id', '', '', 'int');
$print = JRequest::getVar('print', '0', '', 'int');
?>

<?php if ($print == 1){ ?>
<div class="druk"><a href="#" onclick="window.print();return false;"><img src="images/M_images/printButton.png" alt="Drukuj" /></a></div>
<?php }
else { ?>
<div class="druk1"><a href="index.php?view=article&amp;tmpl=component&amp;print=1&amp;layo ut=default&amp;page=&amp;option=com_sobi2&amp;sobi2Task=sobi2D etails&amp;sobi2Id=<?php echo $sobi2Id;?>&amp;catid=0&amp;Itemid=<?php echo $Itemid;?>" title="Drukuj" onclick="window.open(this.href,'win2','status=no,toolbar=no ,scrollbars=yes,titlebar=no,menubar=no,resizable=y es,width=640,height=480,directories=no,location=no '); return false;" rel="nofollow"><img src="images/M_images/printButton.png" alt="Drukuj" /></a>
</div>
<?php }?>Pobrane zmienne $print i $Itemid są uniwersalne dla każdego komponentu, $sobi2Id jest specyficzny dla Sobi2. W innych komponentach zazwyczaj do określenia id wyświetlanego elementu używana jest zmienna o nazwie id.
Przyglądając się adresowi, za pomocą którego otwierana jest strona do drukowania można zauważyć, że zawiera ona adres bazowy:

index.php?view=article&amp;tmpl=component&amp;print=1&amp;layo ut=default&amp;page=&amp;option=com_sobi2&amp;sobi2Task=sobi2D etails&amp;sobi2Id=<?php echo $sobi2Id;?>&amp;catid=0&amp;Itemid=<?php echo $Itemid;?>Używając tej metody dla innego komponentu adres bazowy musi być odpowiedni dla niego.
Pozostają do zdefiniowania (zmienienia) klasy css użyte dla prezentacji ikonek drukowania. Powodzenia.

jeyt
09-07-2010, 14:00
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0-9

Katalog Szukaj

takie cos się pojawiło nad ikonką print, która jest nad widokiem szczegółowym:

$Itemid = JRequest::getVar('Itemid', '', '', 'int'); $sobi2Id = JRequest::getVar('sobi2Id', '', '', 'int'); $print = JRequest::getVar('print', '0', '', 'int'); ?>

nie wiem jak to usunąć, proszę o pomoc

A przy okazji, jak się pozbyć tego: Katalog Szukaj

Jola
10-07-2010, 02:37
Witam,
proponuję przed zmianami w kodzie Sobi2 zapoznać się dobrze z konfiguracją komponentu - co pojawia się kiedy zaznaczy się poszczególne opcje.
Wiem, że komponent jest dosyć rozbudowany - ale warto się zapoznać z jego możliwościami.