Jola
20-10-2009, 21: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&tmpl=component&print=1&layo ut=default&page=&option=com_sobi2&sobi2Task=sobi2D etails&sobi2Id=<?php echo $sobi2Id;?>&catid=0&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&tmpl=component&print=1&layo ut=default&page=&option=com_sobi2&sobi2Task=sobi2D etails&sobi2Id=<?php echo $sobi2Id;?>&catid=0&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.
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&tmpl=component&print=1&layo ut=default&page=&option=com_sobi2&sobi2Task=sobi2D etails&sobi2Id=<?php echo $sobi2Id;?>&catid=0&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&tmpl=component&print=1&layo ut=default&page=&option=com_sobi2&sobi2Task=sobi2D etails&sobi2Id=<?php echo $sobi2Id;?>&catid=0&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.