Temat: Joomla i moduł bezpośrednio pod artykułem.

Witam!
Mam pytanie... jak wrzucić moduł np. reklamowy bezpośrednio pod otwarty artykuł?

Na pewno nie ma nie chciałbym rozwiązań za pomocą szablonu bo w momencie kiedy mam system komentarzy to moduł pojawiałby się pod komentarzami. Ja chcę pod tekstem artykułu.

Grzebie sobie w com_content/article/views/tmpl/default.php ale nie wiem jak wywołać konkretny moduł ;/

Jakby co loadposition i loadmodule nie będzie działać! heheh

Pomożecie ?

PozdrawiamTen post został edytowany przez Autora dnia 17.07.13 o godzinie 10:42
Rafał D.

Rafał D. freelancer

Temat: Joomla i moduł bezpośrednio pod artykułem.

Cześć

Po pierwsze nie powinieneś grzebać w com_content/article/views/tmpl/default.php bo każdy update Joomla może zamazać to, co tam zmienisz!

Zawartość folderu /components/com_content/article/views/tmpl/
skopiuj do /templates/nazwa_twojej_templatki/html/com_content/article/

i grzeb w pliku /templates/nazwa_twojej_templatki/html/com_content/article/default.php

W ostateczności zmieniaj core pliki Joomla i radzę każdą taką zmianę dokumentować, oznaczać etc.

Może rozwiązaniem dobrym dla Ciebie będzie opublikowanie modułu reklamowego w tej samej pozycji co moduł komentarzy, tylko ustawienie go jako pierwszy?

Pozdrawiam
Rafał

Temat: Joomla i moduł bezpośrednio pod artykułem.

pomińmy problem overide... nie napisałem tego, ale przynajmniej dla mnie to oczywiste. Zbyt łątwe by to było heheh komentarze po zainstalowaniu komponentu jcomments dodają się same pod każdym artykułem i nie ma możliwości przerzucenia komentarzy do innego modułu.

Tak czy siak już sobie poradziłem, także temat zamykam.

Dzięki i pozdrawiam.Ten post został edytowany przez Autora dnia 17.07.13 o godzinie 14:46
Rafał D.

Rafał D. freelancer

Temat: Joomla i moduł bezpośrednio pod artykułem.

Wiem jak zrobiłeś ;) Udało Ci się wkleić kod z reklamą w pliku com_content/article/views/tmpl/default.php
przed linijką
$this->article->event->afterDisplayContent;
czy
$this->item->event->afterDisplayContent;

Bo one chyba ładują pluginy, a jcomments daje komenty właśnie w pluginie...

Pozdrawiam
Wojciech J.

Wojciech J. mistrz wwwujitsu

Temat: Joomla i moduł bezpośrednio pod artykułem.

Waldemar S.:
Tak czy siak już sobie poradziłem, także temat zamykam.

Czyżbyś wciągnął moduł w treść artykułu poprzez loadposition ?
Gabriel Nowak

Gabriel Nowak grafik, projektant,
web designer, trener
biznesu o rozwoj...

Temat: Joomla i moduł bezpośrednio pod artykułem.

http://wiki.joomla.pl/Modu%C5%82_w_artykule

Temat: Joomla i moduł bezpośrednio pod artykułem.

Gabriel... {loadpositions} musisz umieścić pod każdym artykułem z osobna. Chciałem, żeby to się robiło automatycznie.

Chyba najlepszym rozwiązaniem było zrobienie overide na pliku html/com_content/article/default.php

Dodałem na górze jako definicje zmiennych:

$document = &JFactory::getDocument();
$renderer = $document->loadRenderer('modules');
$options = array('style' => 'xhtml');
$position = 'NAZWA POZYCJI MODUŁU';


i w odpowiednim miejscu wkleiłem:

$renderer->render($position, $options, null);


To wszystko :) Działa tak jak chciałem.

#Rafał plusem rozwiązania powyżej jest to, że mogę z panelu admina wybierać moduł który ma się wyświetlić. Kod reklamy nie jest wklejony na sztywno i nie muszę zmieniać kodu w pliku php wraz ze zmianą reklamy.Ten post został edytowany przez Autora dnia 18.07.13 o godzinie 22:08
Przem Past

Przem Past Od wszystkiego.
Wiele pomysłów,
wiele dziedzin
zaintereso...

Temat: Joomla i moduł bezpośrednio pod artykułem.

Ja mam podobny problem - ale moduł reklamy chciałbym umieścić na stronie forntowej zaraz po pierwszym artykule, a przed drugim. Pozostaje tylko Overide, jednak nie mogę sobie z tym poradzić, tzn, miejsce wklejenia kodu znam, ale jaki kod, by ładował odpowiedni np. moduł?

Szablon wyświetlający kategorię - szablon JSN Epic dla J1.5:


<?php // no direct access
defined('_JEXEC') or die('Restricted access');
$cparams =& JComponentHelper::getParams('com_media');
?>
<div class="com-content <?php echo $this->params->get('pageclass_sfx') ?>">
<div class="category-blog">
<?php if ($this->params->get('show_page_title')) : ?>
<h2 class="componentheading">
<?php echo $this->escape($this->params->get('page_title')); ?>
</h2>
<?php endif; ?>
<?php if ($this->params->get('show_description', 1) || $this->params->get('show_description_image', 1)) :?>
<div class="contentdescription clearafter">
<?php if ($this->params->get('show_description_image') && $this->category->image) : ?>
<img src="<?php echo $this->baseurl . '/' . $cparams->get('image_path') . '/'. $this->category->image;?>" align="<?php echo $this->category->image_position;?>" hspace="6" alt="" />
<?php endif; ?>
<?php if ($this->params->get('show_description') && $this->category->description) : ?>
<?php echo $this->category->description; ?>
<?php endif; ?>
</div>
<?php endif; ?>
<div class="jsn-leading">
<?php if ($this->params->get('num_leading_articles')) : ?>
<?php for ($i = $this->pagination->limitstart; $i < ($this->pagination->limitstart + $this->params->get('num_leading_articles')); $i++) : ?>
<?php if ($i >= $this->total) : break; endif; ?>
<?php
$this->item =& $this->getItem($i, $this->params);
echo $this->loadTemplate('item');
?>
<?php endfor; ?>
<?php else : $i = $this->pagination->limitstart; endif; ?>
</div>
<?php

----------------------------------------------------------------------------------------------
<b> TU KOD MODUŁU>, np: taki:

/*====== Show modules in position "stick-lefttop" ======*/
if ($this->countModules('blog-banner') > 0) {
?>
<div id="blog-banner"><jdoc:include type="modules" name="blog-banner" style="jsnmodule" /></div>
</div> </b>
----------------------------------------------------------------------------------------------

$startIntroArticles = $this->pagination->limitstart + $this->params->get('num_leading_articles');
$numIntroArticles = $startIntroArticles + $this->params->get('num_intro_articles');
if (($numIntroArticles != $startIntroArticles) && ($i < $this->total)) :
$divider = '';
if ($this->params->get('multi_column_order', 0)) : // order across, like front page
for ($z = 0; $z < $this->params->get('num_columns', 2); $z ++) :
if ($z > 0) : $divider = " column_separator"; endif;
$rows = (int) ($this->params->get('num_intro_articles', 4) / $this->params->get('num_columns'));
$cols = ($this->params->get('num_intro_articles', 4) % $this->params->get('num_columns'));
?>
<div class="jsn-articlecols" style="width:<?php echo intval(100 / $this->params->get('num_columns')); ?>%">
<?php
$loop = (($z < $cols)?1:0) + $rows;
for ($y = 0; $y < $loop; $y ++) :
$target = $i + ($y * $this->params->get('num_columns')) + $z;
if ($target < $this->total && $target < ($numIntroArticles)) :
$this->item =& $this->getItem($target, $this->params);
echo $this->loadTemplate('item');
endif;
endfor;
?>
</div>
<?php
endfor;
$i = $i + $this->params->get('num_intro_articles') ;
else : // otherwise, order down, same as before (default behaviour)
for ($z = 0; $z < $this->params->get('num_columns'); $z ++) :
if ($z > 0) : $divider = " column_separator"; endif; ?>
<div class="jsn-articlecols" style="width:<?php echo intval(100 / $this->params->get('num_columns')); ?>%">
<?php
for ($y = 0; $y < ($this->params->get('num_intro_articles') / $this->params->get('num_columns')); $y ++) :
if ($i < $this->total && $i < ($numIntroArticles)) :
$this->item =& $this->getItem($i, $this->params);
echo $this->loadTemplate('item');
$i ++;
endif;
endfor;
?>
</div>
<?php
endfor;
endif;
endif;
?>
<div class="clearbreak"></div>
<?php if ($this->params->get('num_links') && ($i < $this->total)) : ?>
<div class="blog_more clearafter">
<?php
$this->links = array_splice($this->items, $i - $this->pagination->limitstart);
echo $this->loadTemplate('links');
?>
</div>
<?php endif; ?>
<?php if ($this->params->def('show_pagination', 2) == 1 || ($this->params->get('show_pagination') == 2 && $this->pagination->get('pages.total') > 1)) : ?>
<div class="jsn-pagination-container">
<?php echo $this->pagination->getPagesLinks(); ?>
<?php if ($this->params->get('show_pagination_results', 1)) : ?>
<p class="jsn-pageinfo"><?php echo $this->pagination->getPagesCounter(); ?></p>
<?php endif; ?>
</div>
<?php endif; ?>
</div>
</div>


Problem w tym, że kod nie działa, wklejenie zwykłego teksy skutkuje wyświetleniem go pomiędzy artkułami, ale ten kod podany przez innego programiste już nie.

Jakieś rady?Ten post został edytowany przez Autora dnia 19.07.13 o godzinie 14:49

Następna dyskusja:

Hosting pod Joomla




Wyślij zaproszenie do