Zobacz pełną wersję : jak wyświetlić moduł na str_głównej, ale...
adlibitum
23-11-2009, 23:45
Witam,
siedze i szukam i nie moge nic wymodzic.
mam design składajacy sie z 3 kolumn,
w srodkowej kolumnie "content" wyswietlam sobie moduł_1 a pod nim standardowo ogłoszonka obsługiwane przez komponent Sobi2.
Chciałbym aby ten moduł_1 wyswietlił sie tylko na stronie głównej a po wejsciu w detale danego wpisu juz sie nie wyswietlał a tak sie dzieje ???
nie wiem gdzie to zmienic??
prosze o pomoc
W ustawieniach modułu, polecam www.wiki.joomla.pl ;)
adlibitum
23-11-2009, 23:53
dzieki,
a nie ma jakiegos knyfla który sie poprostu zaznacza i po sprawie :)
Nie, trzeba odprawić czaru, tydzień pościć, kombinacją klawiszy Crtl+Alt+F13 usunąć śledzika z pewnego serwisu, zgnieść puszkę po napoju czołem i kleknąć przed komputerem.
A co ja wyżej napisałem? Widać koledze nie chciało się nawet do ustawień modułu zajrzeć.
siema, no wlasnie w ustawieniach dowolnego modulu zaznacza sie na ktorych podstronach ma byc wyswietlany i po sprawie:)
dzieki,
a nie ma jakiegos knyfla który sie poprostu zaznacza i po sprawie :)
JEST :P dział zleceń
adlibitum
24-11-2009, 00:02
panowie spokojnie taki leniwy to ja nie jestem :)
zaznaczyłem w ustawieniach modułu zeby wyswietlał sie na stronie głównej, ale jak pisałem wyzej jak klikam na stronie głównej jakies ogłoszenie i wchodze w jego szczegóły to system wchodzi w szczegóły ogłoszenia i moduł widac nadal,
a może link do strony, będzie łatwiej tłumaczyć
zwiastun
24-11-2009, 00:09
Łatwiej nie będzie. Nie wiem, na czym polega trudność w zrozumieniu, że jeśli przypiszę moduł do jakiejś pozycji menu/strony, to będzie się wyswietlać na wszystkich stronach generowanych z tej pozycji menu. Na początku trzeba było tłumaczyć z angielskiego na nasze. Teraz widać nadeszła pora, że trzeba wrócić do korzeni - zacząć uczyć języka polskiego!
adlibitum
24-11-2009, 00:11
niestety lokalnie mam,
mam na stronie głównej wyswietlane ogłoszenia,
nad tymi ogłoszeniami w pozycji user2 jest wysietlany moduł, który ma w ustawieniach zaznaczony pozycje HOME tak aby wyswietlał sie tylko na stronie głownej.
ale jak klikam w szegóły ogłoszenia strona sie przeładowuje i pokazuje szczegóły ogłoszenia ale moduł powyzej cały czas widoczny jest..
Bo to ta sama pozycja menu. Jest gdzieś w menu link do do pełnej listy ogłoszeń?
adlibitum
24-11-2009, 00:16
nie ma
zwiastun
24-11-2009, 00:18
@adlibitum: jeśli nie znasz lub nie rozumiesz języka polskiego, to może trzeba skorzystać z jakiegoś innojęzycznego forum. Suahili?
adlibitum
24-11-2009, 00:27
zwiastun dlaczego jestes taki złosliwy ??
zwiastun dlaczego jestes taki złosliwy ??
@adlibitum wydaje Ci się
zwiastun
24-11-2009, 00:33
Złośliwy? Z podziwu nie mogę wyjść, że ktoś chce witrynę internetową prowadzić (albo tworzyć witryny) dla polskich użytkowników a nie rozumie prostych wyrażonych po polsku informacji!
adlibitum
24-11-2009, 00:40
stary jestes beznadziejny ... ktos cie musiał niezle lać w szkole, ze teraz taki złośliwiec z ciebie ... pozostaje tylko współczuć
koncze watek
dzieki za "pomoc" !!!
To, że czegoś nie rozumiesz, nie oznacza, że inny będą myśleli za Ciebie, a jak czegoś nie wiesz, to trzeba o tym się dokształcić, tego też nikt inny za Ciebie nie zrobi.
My napisaliśmy co trzeba zrobić, teraz Twoja część zadania, żeby to zrozumieć i poczytać o Joomla.
@adlibitum nieładnie, nieładnie, chyba byłeś/jesteś wychowywany tzw. bezstresowo
zwiastun
24-11-2009, 00:52
Tak rózgami mnie bili i pewno przez to nauczyłem się czytać co pisze, a nie doczytywać złośliwości.
- Nie raz podkreślałem w materiałach, że Joomla nie jest oparty na stronach, ale na pozycjach menu. Widać nie doczytałeś albo nie zrozumiałeś!
- Nie raz podkreślałem w materiałach, jak działają moduły, w tym objaśniałem, co to jest i po co przypisanie modułu do pozycji menu/stron. Widać nie doczytałeś albo nie zrozumiałeś!
- Napisałem to w skrócie kilka wiadomości powyżej! Bez echa. Widać nie doczytałeś albo nie zrozumiałeś!
- Powtórzył Ci innymi słowy @moje ("Bo to ta sama pozycja menu."). Widać nie doczytałeś albo nie zrozumiałeś!
- Zasugerowałem, żebyś przeczytał ze zrozumieniem. Ale ponieważ w szkole Cię nie "lali" to nie nauczyłeś się, że oprócz znaczenia dosłownego, jest także przenośne, a ironia niekoniecznie oznacza złośliwość.
Współczuj więc przede wszystkim sobie!
Na "przepraszam" nie liczę, bo pewno nie tylko nie bili, ale w ogóle nie uczyli dobrego zachowania! Np. że do ludzi w wieku podeszłym smarkaczom nie wypada mówic "stary!"
Widzę, że się offtopic zrobił. Mam ten sam problem. Mianowicie pod stronę główną jest podpięty SOBI2, a w górnym menu podlinkowany Sigsiu Online Business Index 2 jako strona główna. No i teraz sprawa wygląda tak, że po bokach strony podpięte są moduły, a na środku wyświetlają się wpisy jako v-card. Po wybraniu wpisu otwiera się karta produktu, a boczne moduły zostają dalej przyprawiając mnie nie powiem o co.
Kombinowałem już na różne sposoby. Podpięte moduły wyświetlać się mają wyłącznie na stronie głównej, no a tutaj jest podpięte SOBI i wyświetlają się na wszystkich podstronach obsługiwanych przez ten moduł.
Wie ktoś może jak to rozwiązać?
Link do strony: pensjonat-ok.pl
Witam,
w takich przypadkach pomocne jest dopisanie warunku do wyświetlania wybranej pozycji menu w pliku szablonu.
Załóżmy , że Twoje wymagające ingerencji moduły umieszczone są w pozycji nazwanej: right.
W kodzie pliku index.php szablonu zazwyczaj występuje kod typu:
<?php if($this->countModules('right')) : ?>
<div >
<jdoc:include type="modules" name="right" style="rounded" />
</div>
<?php endif; ?>Należy dodać warunek sprawdzający np. zmienną GET sobi2Task, pierwszą linijkę należy zamienić na:
<?php if($this->countModules('right') && !JRequest::getVar( 'sobi2Task', '' )) : ?>
Rozumiem, że wówczas, gdy mam np warunek:
<?php echo artxPositions($document, array('top1', 'top2', 'top3'), 'art-block'); ?>
to zastąpić go tym podanym przez Ciebie, w postaci:
<?php if($this->countModules('top1', 'top2', 'top3')) && !JRequest::getVar( 'sobi2Task', '' )) : ?>
<div >
<jdoc:include type="modules" name="top" style="rounded" />
</div>
<?php endif; ?>
czy też może zrobić to jakoś inaczej. Pytam z ciekawości, bo dla topów nie ma przypisanego żadnego diva
Napisałam zazwyczaj, u Ciebie o wyświetlaniu decyduje funkcja artxPositions(). To ją trzeba zmodyfikować. Nie jestem pewna czy mam szablon tego typu.
Czyli do
<?php echo artxPositions($document, array('top1', 'top2', 'top3'), 'art-block'); ?>
mam coś dodać?
Czy to będzie wyglądało tak?
<?php echo artxPositions($document, array('top1', 'top2', 'top3'), 'art-block' && !JRequest::getVar( 'sobi2Task', '' )); ?>
Pytam bo mam jutro zalkę i muszę to mieć gotowe :D
Nie - trzeba zmodyfikować funkcję artxPositions(). Prawdopodobnie znajduje się w pliku functions.php (przykładowo w szablonie horseblack).
Czy u Ciebie wszystkie (top1, top2, top3) mają się nie wyświetlać?
U mnie na stronie głównej ma się wyświetlać wszystko to co teraz jest. Po wybraniu np. Villa Orlik znika wszystko poza headerem, footerem, user3 (menu) i zostaje karta produktu na całą stronę.
W pliku functions mam takie cuś:
function artxModules($document, $position, $style = null)
{
if ($document == null) {
// for Joomla 1.0
ob_start();
mosLoadModules($position, -2);
$content = ob_get_clean();
if (null == $style || 'xhtml' == $style)
return $content;
$decorator = 'artblock' == $style ? 'artxBlock' : ('artpost' == $style ? 'artxPost' : null);
$result = '';
$modules = preg_split('~</div>\s*<div class="moduletable">~', $content);
$lastModule = count($modules) - 1;
if ($lastModule > -1) {
$modules[0] = preg_replace('~^\s*<div class="moduletable">~', '', $modules[0]);
$modules[$lastModule] = preg_replace('~</div>\s*$~', '', $modules[$lastModule]);
foreach ($modules as $module) {
if (preg_match('~^\s*<h3>([^<]*)</h3>~', $module, $matches, PREG_OFFSET_CAPTURE)) {
$result .= $decorator($matches[1][0], substr($module, 0, $matches[0][1])
. substr($module, $matches[0][1] + strlen($matches[0][0])));
} else {
$result .= $decorator(null, $module);
}
}
}
return $result;
}
// for Joomla 1.5
return '<jdoc:include type="modules" name="' . $position . '"' . (null != $style ? ' style="artstyle" artstyle="' . $style . '"' : '') . ' />';
}
$artxFragments = array();
function artxFragmentBegin($head = '')
{
global $artxFragments;
$artxFragments[] = array('head' => $head, 'content' => '', 'tail' => '');
}
function artxFragmentContent($content = '')
{
global $artxFragments;
$artxFragments[count($artxFragments) - 1]['content'] = $content;
}
function artxFragmentEnd($tail = '', $separator = '')
{
global $artxFragments;
$fragment = array_pop($artxFragments);
$fragment['tail'] = $tail;
$content = trim($fragment['content']);
if (count($artxFragments) == 0) {
echo (trim($content) == '') ? '' : ($fragment['head'] . $content . $fragment['tail']);
} else {
$result = (trim($content) == '') ? '' : ($fragment['head'] . $content . $fragment['tail']);
$fragment =& $artxFragments[count($artxFragments) - 1];
$fragment['content'] .= (trim($fragment['content']) == '' ? '' : $separator) . $result;
}
}
function artxFragment($head = '', $content = '', $tail = '', $separator = '')
{
global $artxFragments;
if ($head != '' && $content == '' && $tail == '' && $separator == '') {
$content = $head;
$head = '';
} elseif ($head != '' && $content != '' && $tail == '' && $separator == '') {
$separator = $content;
$content = $head;
$head = '';
}
artxFragmentBegin($head);
artxFragmentContent($content);
artxFragmentEnd($tail, $separator);
}
}
Może coś nie teges z moimi oczami, ale nie widzę tu funkcji, o której cały czas mowa. Nie odpowiedziałeś też na pytanie - które pozycje nie mają się wyświetlać. Wiedza, które mają - nie jest mi potrzebna.
Mają zniknąć top1, top2, top3, left, right i bottom1.
Fragment z index.php
<jdoc:include type="modules" name="user3" />
<jdoc:include type="modules" name="banner1" style="artstyle" artstyle="art-nostyle" />
<?php echo artxPositions($document, array('top1', 'top2', 'top3'), 'art-block'); ?>
<div class="art-contentLayout">
<?php if (artxCountModules($document, 'left')) : ?>
<div class="art-sidebar1"><?php echo artxModules($document, 'left', 'art-block'); ?>
</div>
<?php endif; ?>
<div class="art-<?php echo artxGetContentCellStyle($document); ?>">
<?php
echo artxModules($document, 'banner2', 'art-nostyle');
if (artxCountModules($document, 'breadcrumb'))
echo artxPost(null, artxModules($document, 'breadcrumb'));
echo artxPositions($document, array('user1', 'user2'), 'art-article');
echo artxModules($document, 'banner3', 'art-nostyle');
?>
<?php if (artxHasMessages()) : ?><div class="art-Post">
<div class="art-Post-body">
<div class="art-Post-inner">
<div class="art-PostContent">
<jdoc:include type="message" />
</div>
<div class="cleared"></div>
</div>
</div>
</div>
<?php endif; ?>
<jdoc:include type="component" />
<?php echo artxModules($document, 'banner4', 'art-nostyle'); ?>
<?php echo artxPositions($document, array('user4', 'user5'), 'art-article'); ?>
<?php echo artxModules($document, 'banner5', 'art-nostyle'); ?>
</div>
<?php if (artxCountModules($document, 'right')) : ?>
<div class="art-sidebar2"><?php echo artxModules($document, 'right', 'art-block'); ?>
</div>
<?php endif; ?>
</div>
<div class="cleared"></div>
<?php echo artxPositions($document, array('bottom1', 'bottom2', 'bottom3'), 'art-block'); ?>
<jdoc:include type="modules" name="banner6" style="artstyle" artstyle="art-nostyle" />
<div class="art-Footer">
<div class="art-Footer-inner">
<?php echo artxModules($document, 'syndicate'); ?>
<div class="art-Footer-text">
Zamiast
<?php if (artxCountModules($document, 'right')) : ?>wstaw
<?php if (artxCountModules($document, 'right') && !JRequest::getVar( 'sobi2Task', '' )) : ?>zamiast
<?php if (artxCountModules($document, 'left')) : ?>wstaw
<?php if (artxCountModules($document, 'left') && !JRequest::getVar( 'sobi2Task', '' )) : ?>zamiast
<?php echo artxPositions($document, array('top1', 'top2', 'top3'), 'art-block'); ?>wstaw
<?php if (!JRequest::getVar( 'sobi2Task', '' ))
echo artxPositions($document, array('top1', 'top2', 'top3'), 'art-block'); ?>zamiast
<?php echo artxPositions($document, array('bottom1', 'bottom2', 'bottom3'), 'art-block'); ?>wstaw
<?php
if (!JRequest::getVar( 'sobi2Task', '' ))
echo artxPositions($document, array('bottom1', 'bottom2', 'bottom3'), 'art-block');
else
echo artxPositions($document, array( 'bottom2', 'bottom3'), 'art-block');
?>Oczywiście zanim zaczniesz zmieniać zrób kopię pliku. Myślę, że zmiany są zrozumiałe. :)
Jak najbardziej zrozumiałe. Tylko teraz karta szczegółowa zaczeła mi się wyświetlać na niecałe pół strony. To po tych zmianach, czy może grzebać w css dołączonym do SOBI?
Jak byś używał Firebuga - zajęłoby Ci to chwilkę.
Pracuję na Operze i Netscape, uroki Maców
plik components/com_sobi2/includes/com_sobi2.css linia 200
table.sobi2Details{
...
}
No u mnie to jest w linii 237. Bawię się tym plikiem już z 15 minut, mam zmienioną szerokość na 90% ale nie chce cholerstwo działać. Chyba, że serwer tak długo odświeża?
Wpadła mi do głowy jeszcze jedna myśl - nie dziedziczy ta tabela przypadkiem z głównego arkusza css szerokości tego środka?
adlibitum
07-12-2009, 22:45
dzięki Jola - u mnie pomogło ...
No i niby wszystko jest ok. Lewa i prawa kolumna mają zadeklarowane stałe szerokości w pikselach. Srodek ustwiony na width:auto. Wszystkie przeglądarki poza IE interpretują to prawidłowo. Jeśli środek zdefiniuję piskelami "na sztywno" to karta produktu wyświetla się w tej zadeklarowanej szerokości ( 497px na 900 mozliwych) i zajmuje pół strony. Numer dotyczy tylko i wyłącznie IE.
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!