0 Пользователей и 1 Гость просматривают эту тему.
  • 14 Ответов
  • 306 Просмотров
*

timssky

  • Захожу иногда
  • 301
  • 0 / 0
Есть такой модуль. Принцип работы: в настройках указывается ID статьи из которой он показывает кусок материала, расположенный между тегами. <div id="start" style="display: none;">1</div> и <div style="display: none;">1</div>

Код
<?php
defined('_JEXEC') or die;
$start = '<div id="start" style="display: none;">1</div>';
$separator = '<div style="display: none;">1</div>';

$db =& JFactory::getDBO();
$id = $params->get("article_id");
$q="SELECT introtext FROM #__content WHERE `id` = $id";
$db->setQuery($q);
$article_text = $db->loadResult();
$article_text = substr_replace($article_text, '', 0, strpos ( $article_text , $start ) + 47 );
$article_text = substr ($article_text, 0 , strpos ( $article_text , $separator ) );
echo $article_text;
?>

Я бы хотел немного переделать данный модуль, чтобы он показывал 3 верхние таблицы  с классом "stroka"  (<table class="stroka"></table>) из указанного материала

Я не силен в PHP, прошу помощи
« Последнее редактирование: 07.11.2016, 15:47:14 от timssky »
*

timssky

  • Захожу иногда
  • 301
  • 0 / 0
Re: Вывод части материала в модуле
« Ответ #1 : 09.11.2016, 19:38:06 »
Up
*

effrit

  • Гуру
  • 7875
  • 878 / 7
  • effrit.com
Re: Вывод части материала в модуле
« Ответ #3 : 09.11.2016, 23:02:39 »
Код
$article_text = $db->loadResult();
$re = '/(<table[^>]*stroka[\"\']>[\s\S]*?<\/table>)/';
preg_match_all($re, $article_text, $matches);
$c=0;
foreach ($matches as $val) {
    echo($val[$c])."<br/>";
$c++;
if($c==3) break;
}
*

timssky

  • Захожу иногда
  • 301
  • 0 / 0
Re: Вывод части материала в модуле
« Ответ #4 : 10.11.2016, 15:18:04 »
Спасибо, а как вставить ваш код в мой код, чтобы все работало ?


*

effrit

  • Гуру
  • 7875
  • 878 / 7
  • effrit.com
Re: Вывод части материала в модуле
« Ответ #5 : 10.11.2016, 15:25:50 »
земенить вот этот фрагмент
Код
$article_text = $db->loadResult();
$article_text = substr_replace($article_text, '', 0, strpos ( $article_text , $start ) + 47 );
$article_text = substr ($article_text, 0 , strpos ( $article_text , $separator ) );
echo $article_text;
*

timssky

  • Захожу иногда
  • 301
  • 0 / 0
Re: Вывод части материала в модуле
« Ответ #6 : 10.11.2016, 19:17:18 »
Работает только отображает 2 таблицы, а не 3 и большой отступ между ними.  Отступ вероятно из за "<br/>" убрал, пропал.  Как сделать чтобы отображалось  3 таблицы ?
« Последнее редактирование: 10.11.2016, 19:23:18 от timssky »
*

timssky

  • Захожу иногда
  • 301
  • 0 / 0
Re: Вывод части материала в модуле
« Ответ #8 : 10.11.2016, 20:59:51 »
Не помогает хоть 4 хоть 5 все равно почему то 2 таблицы отображается
*

effrit

  • Гуру
  • 7875
  • 878 / 7
  • effrit.com
Re: Вывод части материала в модуле
« Ответ #9 : 10.11.2016, 21:13:08 »
скорее всего синтаксис (html-код) разный.
сюда скопируй код проблемной таблицы (первая строка, где <table>, шаблон подредактирую)
*

timssky

  • Захожу иногда
  • 301
  • 0 / 0
Re: Вывод части материала в модуле
« Ответ #10 : 10.11.2016, 21:35:05 »
Код
<div class="uk-panel uk-panel-box uk-panel-box-secondary"><h3 class="uk-panel-title">Заголовок модуля</h3><table class="stroka">
<tbody>
<tr>
<td class="date">Текст</td>
<td class="sport">Текст</td>
<td class="match">Текст</td>
<td class="stavka">Текст</td>
<td class="calc">Текст</td>
<td class="znak plus">+</td>
</tr>
</tbody>
</table><table class="stroka">
<tbody>
<tr>
<td class="date">Текст</td>
<td class="sport">Текст</td>
<td class="match">Текст</td>
<td class="stavka">Текст</td>
<td class="calc">Текст</td>
<td class="znak plus">+</td>
</tr>
</tbody>
</table></div>
« Последнее редактирование: 10.11.2016, 21:38:14 от timssky »
*

robert

  • Живу я здесь
  • 4254
  • 407 / 15
Re: Вывод части материала в модуле
« Ответ #12 : 10.11.2016, 21:51:22 »
Так, наверное:
Код: php-brief
$article_text=$db->loadResult();
$re='/<table[^>]*stroka[\"\']\s*>[\s\S]*?<\/table>/';
preg_match_all($re,$article_text,$matches);
for($c=0;$c<3;$c++){
    echo($matches[0][$c])."<br/>";
}
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

timssky

  • Захожу иногда
  • 301
  • 0 / 0
Re: Вывод части материала в модуле
« Ответ #13 : 10.11.2016, 22:00:32 »
ЗАРАБОТАЛО! ОГРОМНОЕ ВАМ СПАСИБО!
*

robert

  • Живу я здесь
  • 4254
  • 407 / 15
Re: Вывод части материала в модуле
« Ответ #14 : 10.11.2016, 22:04:04 »
Мне не надо плюсовать: все сделал effrit, я только указал на перый элемент массива.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Кнопка быстрого просмотра материала на сайте

Автор Mick_20

Ответов: 6
Просмотров: 135
Последний ответ 07.12.2017, 10:46:51
от Mick_20
Не отображаютя языки в модуле

Автор vipex

Ответов: 1
Просмотров: 27
Последний ответ 06.12.2017, 14:43:20
от NewUsers
Вывод дополнительных полей Joomla 3.7 в шаблоне статьи

Автор mrN

Ответов: 9
Просмотров: 899
Последний ответ 06.12.2017, 10:28:56
от Mitriy
Адрес изображения в модуле при открытии материала в блоге категории меняется

Автор leonid.m

Ответов: 4
Просмотров: 86
Последний ответ 05.12.2017, 01:36:35
от leonid.m
Разметка материала

Автор Lepricon

Ответов: 10
Просмотров: 110
Последний ответ 21.11.2017, 21:35:55
от Lepricon