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

timssky

  • Захожу иногда
  • 320
  • 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

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

effrit

  • Легенда
  • 8840
  • 976 / 9
  • 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

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


*

effrit

  • Легенда
  • 8840
  • 976 / 9
  • 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

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

timssky

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

effrit

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

timssky

  • Захожу иногда
  • 320
  • 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

  • Живу я здесь
  • 4583
  • 428 / 16
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/>";
}
Не будь паразитом, сделай что-нибудь самостоятельно!
*

timssky

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

robert

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

Как вывести миниатюру материала Joomla через background-image?

Автор Merk

Ответов: 4
Просмотров: 77
Последний ответ 10.11.2018, 10:01:21
от Merk
Найти программу для импорта материала

Автор webrapinfo

Ответов: 1
Просмотров: 68
Последний ответ 29.10.2018, 17:44:00
от xpank
Поля field types - Вывод материала

Автор Шмайсер

Ответов: 11
Просмотров: 203
Последний ответ 25.10.2018, 12:51:54
от NewUsers
Вывод дополнительных колонок в менеджере пользователей

Автор Nikolaha

Ответов: 10
Просмотров: 316
Последний ответ 16.10.2018, 13:06:38
от Nikolaha
Опрос / голосование для каждого материала Joomla 3

Автор mrmagic

Ответов: 4
Просмотров: 206
Последний ответ 01.10.2018, 15:16:31
от lexxbry