--=REKLAMA=--

Modyfikacja - Przegląd w układzie tabeli

Z Joomla!WikiPL

Wersja Bazyl (dyskusja | edycje) z dnia 08:23, 3 maj 2009

(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)

Standardowe układy pozycji menu, które używają układu Sekcja - Przegląd lub Kategoria - Przegląd są powodem pewnego zakłopotania. Problem polega na tym, że kiedy domyślny układ złożony jest z więcej niż jednej kolumny, pozycje rozmieszczane są w sposób co najmniej dziwny. Przykład, jak Joomla! może rozmieścić pozycje w takim układzie, przedstawia ilustracja poniżej.

Standard-joomla-blog-layout.jpg

Jak widzisz, zamiast pozycji uporządkowanych w rzędach od lewej do prawej równej wysokości, standardowa kolejność prowadzi z lewej od góry w dół, a następnie z prawej od góry w dół. W rezultacie kolumny są niekiedy w dużej mierze puste, ale co ważniejsze - takie rozmieszczenie nie oddaje faktycznego porządku artykułów.


Układ typu Przegląd

Joomla! 1.5 ma fantastyczną właściwość przesłaniania domyślnych szablonów szablonami witryny (template overrides). W naszym przypadku chcemy utworzyć nowy szablon dla przeglądu sekcji artykułów i przeglądu kategorii artykułów, uporządkowanych od lewej do prawej i w dół oraz zachowujący równą wysokość pozycji umieszczonych obok siebie. Końcowy efekt będzie podobny do przedstawionego poniżej.

Table-blog-layout.jpg

Jak widzisz, artykuły uporządkowane są z większym sensem, zgodnie z naszymi przyzwyczajeniami, a wysokość wierszy dostosowywana jest do dłuższej pozycji.

Tabelaryczny układ przeglądu

Stworzenie tabelarycznego układu przeglądu jest bardzo proste.

  1. Najpierw musimy zlokalizować szablony odpowiedzialne za standardowe układy. Znajdziesz je wewnątrz /components/com_content/views/section/tmpl/blog.php oraz /components/com_content/views/category/tmpl/blog.php.
  2. Następnie musimy dodać w katalogu naszego szablonu folder, w którym umieścimy szablony zamieniające rozwiązania standardowe.
    1. Utwórz folder html w katalogu swojego szablonu.
    2. Stwórz folder z nazwą utworzoną od nazwy komponentu, dla którego chcesz stworzyć szablon nadpisujący oryginał. W naszym przypadku będzie to com_content.
    3. Utwórz foldery z nazwami pochodzącymi od widoków, dla których chcesz stworzyć szablony nadpisujące oryginały. W naszym przypadku będą to section i category.
    4. Przekopiuj pliki oryginalnych szablonów do odpowiednich katalogów. W naszym przypadku pliki blog.php definiujące układ przeglądu sekcji i przeglądu kategorii.
    5. Nowe katalogi w katalogu Twojego szablonu powinny wyglądać podobnie jak ten: /html/com_content/section/blog.php.
  3. Teraz główna część zadania. Zastąpimy kilka linii oryginalnego kodu w skopiowanych plikach nowym kodem. Otwórz plik blog.php w jakimś zwykłym edytorze tekstowym lub edytorze HTML i zastąp linie w wierszach od 45 do 66 poniższym kodem:
<tr>
   <td valign="top">
	  <table width="100%"  cellpadding="0" cellspacing="0">
		 <?php for( $z = 0, $c = ceil( $this->params->get('num_intro_articles', 4) / $this->params->get('num_columns') ); $z < $c; $z++ ) : ?>
			<tr>
			   <?php $z == 0 ? $loop = 0 : $loop = $z * $this->params->get('num_columns'); ?>
			   <?php for( $y = $loop; $y < ( $loop + $this->params->get('num_columns') ); $y++ ) : ?>
				  <?php if ($y > $loop) : $divider = " column_separator"; endif; ?>
				  <td valign="top" width="<?php echo intval(100 / $this->params->get('num_columns')) ?>%" class="article_column<?php echo $divider ?>">
					 <?php
					 if ($y < $this->total && $y < ($numIntroArticles)) :
						$this->item =& $this->getItem($y, $this->params);
						echo $this->loadTemplate('item');
					 endif;
					 ?>
				  </td>
			   <?php endfor; ?>
			</tr>
		 <?php endfor; ?>
	  </table>
   </td>
</tr>
<?php $i = $i + $this->params->get('num_intro_articles') ; ?>

Zapisz pliki. Wszystko! Właśnie stworzyłeś szablony przesłaniające. W nowym wielokolumnowym układzie pozycje będą uporządkowane od lewej do prawej, a wysokość wierszy będzie dostosowana do najdłuższej pozycji w rzędzie.

Więcej informacji na temat tego układu znajdziesz w tym poście na oficjalnym forum Joomla!.

Nota

Autor oryginału: dextercowley.

Oryginał: Show Blog Layouts in Table Format.

Dziękujemy za wkład

» Piotr Kwiatkowski [ Bazyl ],