Прописать позицию для модуля в php файл - Joomla

D
На сайте с 28.06.2008
Offline
1101
1404

Господа, есть файл компоннента, куда нужно вывести модуль Joomla

Вот сам код

<?php
class ElementJcVote extends Element {

public function hasValue($params = array()) {
return true;
}

public function edit() {
return null;
}

public function render($params = array()) {
if (!empty($this->_item)) {

$reitingminus = 0;
$reitingplus = 0;

if(!empty($this->_item->reitingplus)) {
$reitingplus = '<font color="red">+'.$this->_item->reitingplus.'</font>';
}
if(!empty($this->_item->reitingminus)) {
$reitingminus = '<font color="blue">-'.$this->_item->reitingminus.'</font>';
}

return '<div style="overflow:hidden"><span class="content_rating">Рейтинг: '.$reitingminus.'&nbsp;/&nbsp;'.$reitingplus.'<!--noindex--><span style="float: right; padding: 3px; font-weight: normal;"><a href="/component/post/?view=all&amp;format=raw&amp;name='.rawurlencode($this->_item->name).'" class="modal" rel="{handler: \'iframe\', size: {x: 440, y: 420}}">Ошибка в описании?</a></span><!--/noindex--></div>';
}
}
}

Пробую добавить модуль так

<?php
class ElementJcVote extends Element {

public function hasValue($params = array()) {
return true;
}

public function edit() {
return null;
}

public function render($params = array()) {
if (!empty($this->_item)) {

$reitingminus = 0;
$reitingplus = 0;

if(!empty($this->_item->reitingplus)) {
$reitingplus = '<font color="red">+'.$this->_item->reitingplus.'</font>';
}
if(!empty($this->_item->reitingminus)) {
$reitingminus = '<font color="blue">-'.$this->_item->reitingminus.'</font>';
}

return '<div style="overflow:hidden"><span class="content_rating">Рейтинг: '.$reitingminus.'&nbsp;/&nbsp;'.$reitingplus.'<!--noindex--><span style="float: right; padding: 3px; font-weight: normal;"><a href="/component/post/?view=all&amp;format=raw&amp;name='.rawurlencode($this->_item->name).'" class="modal" rel="{handler: \'iframe\', size: {x: 440, y: 420}}">Ошибка в описании?</a></span><!--/noindex--></div>';
}
}
}
?>
<?php
$pos = "user1";
$modules =& JModuleHelper :: getModules( $pos );
foreach ( $modules as $module) {
echo JModuleHelper :: renderModule( $module );
}
?>

Но содержимое модуля почему то оказывается над <div style="overflow:hidden"><span class="content_rating">Рейтинг ....

А нужно вывести ниже этого дива

M
На сайте с 29.03.2011
Offline
27
#1

А если завернуть этот модуль в див.

и еще можно также попробовать див с модулем вставить <!--/noindex-->сюда</div>';

D
На сайте с 28.06.2008
Offline
1101
#2

пробовал и так - все равно вылазит выше...

M
На сайте с 29.03.2011
Offline
27
#3

может тогда в див его и класс ему задать, после чего в css выровнять в нужное место.

JK
На сайте с 06.04.2013
Offline
2
#4

Потому что вы выводите ваш текст в описании класса, а метод render вызывается позже описания. Внесите ваш код в метод рендер и возвращайте всё, что нужно вместе с основным блоком текста. Именно возвращайте и именно вместо, а не делайте echo в произвольном месте.

D
На сайте с 28.06.2008
Offline
1101
#5

JorikKot ничего не понял :) - можно пример кода?

JK
На сайте с 06.04.2013
Offline
2
#6

<?php

class ElementJcVote extends Element {

public function hasValue($params = array()) {
return true;
}

public function edit() {
return null;
}

public function render($params = array()) {
if (!empty($this->_item)) {

$reitingminus = 0;
$reitingplus = 0;

if(!empty($this->_item->reitingplus)) {
$reitingplus = '<font color="red">+'.$this->_item->reitingplus.'</font>';
}
if(!empty($this->_item->reitingminus)) {
$reitingminus = '<font color="blue">-'.$this->_item->reitingminus.'</font>';
}

$pos = "user1";
$reslt="";
$modules =& JModuleHelper :: getModules( $pos );
foreach ( $modules as $module) {
$reslt.=JModuleHelper :: renderModule( $module );
}

return '<div style="overflow:hidden"><span class="content_rating">Рейтинг: '.$reitingminus.'&nbsp;/&nbsp;'.$reitingplus.'<!--noindex--><span style="float: right; padding: 3px; font-weight: normal;"><a href="/component/post/?view=all&amp;format=raw&amp;name='.rawurlencode($this->_item->name).'" class="modal" rel="{handler: \'iframe\', size: {x: 440, y: 420}}">Ошибка в описании?</a></span><!--/noindex--></div>'.$reslt;
}
}
}

Как-то так.

D
На сайте с 28.06.2008
Offline
1101
#7

Спасибо! То что нужно!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий