Как в Joomla! 1.5.9 установить блок Адсенса после первого абзаца

12
H
На сайте с 01.04.2014
Offline
571
Had
#11
u3Bepr:
можно без плагина в коде чуток подправить:
1. идем сюда /components/com_content/views/article/tmpl/default.php (можно в папку шаблона перенести и там править, что бы не трогать родной файл. пример: /templates/rhuk_milkyway/html/com_content)
2. находим вот такой вывод текста статьи $this->item->text
3. навешиваем сюда функцию или код, которая после первого параграфа будет выводить ваш рекламный код

можно вот так:

У меня нет такого, есть только такое там $this->article->text; запихал и ничего не получилось.

Ещё я не уверен, что запихал именно туда куда надо. Между чем и чем вставлять надо код?

u3Bepr
На сайте с 03.03.2011
Offline
60
#12
Had:
У меня нет такого, есть только такое там $this->article->text; запихал и ничего не получилось.

Ещё я не уверен, что запихал именно туда куда надо. Между чем и чем вставлять надо код?

ну в начале убедись, что именно этот код выводит полный текст. по иедее у тебя там так

echo $this->article->text;

этот кусок комментируешь и ниже вставляешь этот со своей правкой кода под банер


function callback_func($matches){
static $count = 0;
$ret = $matches[1];
if (++$count == 2)
$ret .= "<!-- BANNER CODE HERE -->";
return $ret;
}
echo $content = preg_replace_callback('#(<p>.*?</p>)#', 'callback_func', $this->article->text);
H
На сайте с 01.04.2014
Offline
571
Had
#13
u3Bepr:
ну в начале убедись, что именно этот код выводит полный текст

Если бы я ещё понимал в этом. Ща копирну сюда кусок кода и код вокруг него. Воткните, пожалуйста, в этот код код выше, туда именно куда надо и как надо. Вот:

<?php endif; ?>

<tr>
<td valign="top">
<?php if (isset ($this->article->toc)) : ?>
<?php echo $this->article->toc; ?>
<?php endif; ?>
<?php echo $this->article->text; ?>
</td>
</tr>

<?php if ( intval($this->article->modified) !=0 && $this->params->get('show_modify_date')) : ?>
<tr>
<td class="modifydate">
<?php echo JText::sprintf('LAST_UPDATED2', JHTML::_('date', $this->article->modified, JText::_('DATE_FORMAT_LC2'))); ?>
</td>
</tr>
<?php endif; ?>
H
На сайте с 01.04.2014
Offline
571
Had
#14

u3Bepr, так надо сделать?:

<?php endif; ?>
// <?php echo $this->article->text; ?>
<?function callback_func($matches){
static $count = 0;
$ret = $matches[1];
if (++$count == 2)
$ret .= "<!-- BANNER CODE HERE -->";
return $ret;
}
echo $content = preg_replace_callback('#(<p>.*?</p>)#', 'callback_func', $this->article->text); ?>
</td>
</tr>

Или как?

u3Bepr
На сайте с 03.03.2011
Offline
60
#15

найти

<?php echo $this->article->text; ?>

заменить на


<?php
// echo $this->article->text;
function callback_func($matches){
static $count = 0;
$ret = $matches[1];
if (++$count == 2)
$ret .= "<!-- BANNER CODE HERE -->";
return $ret;
}
echo $content = preg_replace_callback('#(<p>.*?</p>)#', 'callback_func', $this->article->text);
?>
H
На сайте с 01.04.2014
Offline
571
Had
#16

u3Bepr, сделал, не сработало.

u3Bepr
На сайте с 03.03.2011
Offline
60
#17
Had:
u3Bepr, сделал, не сработало.

вероятно контент на странице разбит на парагрфы не с помощью тэгов <p>...</p>

H
На сайте с 01.04.2014
Offline
571
Had
#18

u3Bepr, вот:

<p class="Compact"><span style="font-size: 12.16px">бла бла текст</span></p>

Причём вот это <p class="Compact"> у разных статей разное (выделил жирным).

---------- Добавлено 11.05.2017 в 00:41 ----------

Или вот кусок текста ещё:

<p class="MsoNormal"><span>бла бла текст</span></p>

u3Bepr
На сайте с 03.03.2011
Offline
60
#19

замените код

echo $content = preg_replace_callback('#(<p>.*?</p>)#', 'callback_func', $this->article->text);

на этот (это с учетом классов)

echo $content = preg_replace_callback('#(<p[^>]*>.*?</p>)#', 'callback_func', $this->article->text);
H
На сайте с 01.04.2014
Offline
571
Had
#20

u3Bepr, сделал, не сработало. Но всё равно спасибо Вам.

12

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