PDA

Zobacz pełną wersję : Jak wstawić 3 dodatkowe pozycje dla modułów w jednym rzędzie



pawlikp100
28-03-2016, 13:25
Cześć. Korzystam z szablonu podstawowego Protostar.
Obejrzałem poniższy film obrazujący dodawanie pozycji na moduły w szablonie Protostar:

https://www.youtube.com/watch?v=F9YtaewZpfE

Moje pytanie:
Jak powinien wyglądać kod aby mieć w tym samym miejscu 3 niezależne moduły w jednym rzędziejak pokazano na poniższym obrazku?

8688

Bazyl
28-03-2016, 13:52
Cześć,

Sposób wyświetlania ustawiasz w css.
To może być jedna pozycja dla modułów, a w niej trzy moduły odpowiednio ostylowane.

pawlikp100
28-03-2016, 14:08
Dziękuję za odpowiedź, a jak powinien wyglądać taki kod w css?

Bazyl
28-03-2016, 14:34
Np.
.modul {
float: left;
width: 33%
}

Ale tylko naprowadzam, musisz to sam ogarnąć ;-)

pawlikp100
28-03-2016, 15:06
Np.
.modul {
float: left;
width: 33%
}

Ale tylko naprowadzam, musisz to sam ogarnąć ;-)

Załużmy że moduły nazwę:
position-1_new1
position-1_new3
position-1_new3


Wtedy kot powinien wyglądać jak poniżej?:

.position-1_new1 {
float: left;
width: 33%
}
.position-1_new2 {
float: center;
width: 33%
}
.position-1_new3 {
float: right;
width: 33%
}

Bazyl
28-03-2016, 15:14
Nie chodzi o nazwę modułu, a o jego klasę lub id, ale generalnie tak to powinno wyglądać.


p.s. Sugeruję pisać w jakimś edytorze, który wyłapie błędy. Nie da się tego czytać...

pawlikp100
28-03-2016, 15:19
Reasumując do pliku szablonu index.php -- wkleiłem:

<div class="position-1_new1"><?php if ($this->countModules('position-new1')) : ?><?php endif; ?></div>
<div class="position-1_new2"><?php if ($this->countModules('position-new2')) : ?><?php endif; ?></div>
<div class="position-1_new2"><?php if ($this->countModules('position-new3')) : ?><?php endif; ?></div>

natomiast do pliku ze stylami template.css wkleiłem:

position-1_new1 {
float: left;
width: 33%
}
position-1_new2 {
float: center;
width: 33%
}
position-1_new3 {
float: right;
width: 33%
}

Plik: detailtemplate.xml wzbogaciłem o:

<position>position-new1</position>
<position>position-new2</position>
<position>position-new3</position>

I gdzieś popełniam błąd, ponieważ w zdefiniowanych powyżej pozycjach modułów nie wyświetlają mi się te moduły :/

Bazyl
28-03-2016, 15:24
Powinno działać, ale wszystkie float mają mieć wartość left

pawlikp100
28-03-2016, 15:46
Reasumując:

Reasumując do pliku szablonu index.php -- wkleiłem:


<?php if($this->countModules('position-new1')) : ?>
<div id="position-1-new1">
<jdoc:include type="modules" name="position-new1" style="xhtml" />
</div>
<?php endif; ?>

<?php if($this->countModules('position-new2')) : ?>
<div id="position-1-new2">
<jdoc:include type="modules" name="position-new2" style="xhtml" />
</div>
<?php endif; ?>

<?php if($this->countModules('position-new3')) : ?>
<div id="position-1-new3">
<jdoc:include type="modules" name="position-new3" style="xhtml" />
</div>
<?php endif; ?>


natomiast do pliku ze stylami template.css wkleiłem:


position-1_new1 {
float: left;
width: 33%
}
position-1_new2 {
float: left;
width: 33%
}
position-1_new3 {
float: left;
width: 33%
}

Plik: detailtemplate.xml wzbogaciłem o:


<position>position-new1</position>
<position>position-new2</position>
<position>position-new3</position>

I nie jest tak jak chciałem, ponieważ moduły wyświetlają się jeden pod drugim - jak na poniższym obrazku (a powinny się wyświetlać w jednej linii :/ - sukcesem jest jednak to, że same moduły są już w szablonie:)
Poproszę o wskazówki, jak mogę sprawić, aby te moduły były wyświetlane jeden obok drugiego.
8690

pawlikp100
28-03-2016, 16:27
Udało się, miałem błędy w kodzie.
Dziękuję