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

timssky

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

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

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • 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

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


*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • 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

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

timssky

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

effrit

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

timssky

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

  • Живу я здесь
  • 4974
  • 457 / 20
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

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

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вывод части материала в модуле
« Ответ #14 : 10.11.2016, 22:04:04 »
Мне не надо плюсовать: все сделал effrit, я только указал на перый элемент массива.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

vseok

  • Новичок
  • 6
  • 0 / 0
Re: Вывод части материала в модуле
« Ответ #15 : 15.04.2022, 16:46:33 »
Здравствуйте! Нашел данную тему, возник вопрос. С помощью какого модуля вывести часть одного материала в другом материале ?

Допустим есть материал с таблицей - прайс лист. Хочу часть прайса выводить на других материалах. Буду благодарен за помощь

*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
Re: Вывод части материала в модуле
« Ответ #16 : 15.04.2022, 16:59:27 »
почему именно часть?
одну и ту же часть везде?
индивидуальная помощь: @SetAlexx
*

arma

  • Завсегдатай
  • 1753
  • 81 / 3
Re: Вывод части материала в модуле
« Ответ #17 : 15.04.2022, 17:30:36 »
Я бы смотрел в сторону сниппетов, в одном месте меняете - меняется на всём сайте, где сниппет вставлен.
*

vseok

  • Новичок
  • 6
  • 0 / 0
Re: Вывод части материала в модуле
« Ответ #18 : 15.04.2022, 17:34:51 »
Есть 1 материал "Прайс" в нем цены на различные товары в виде таблицы

И есть другие материалы "Товары"

На каждый товар у меня отдельно создан материал, соответственно в каждом из этих материалов нужно вывести ту часть из "прайса" к которому он относится.

З.Ы только не советуйте  делать полноценный интернет магазин. Сайт работает как каталог. Я просто не хочу в каждом материале-товаре менять постоянно цену.

*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
Re: Вывод части материала в модуле
« Ответ #19 : 15.04.2022, 17:38:52 »
ну тут вам несколько модулей с частями таблицы и вставлять их уже в статьи
либо сделать макеты под каждую скажем так категорию где будет выводится часть
индивидуальная помощь: @SetAlexx
*

vseok

  • Новичок
  • 6
  • 0 / 0
Re: Вывод части материала в модуле
« Ответ #20 : 15.04.2022, 17:40:31 »
Я бы смотрел в сторону сниппетов, в одном месте меняете - меняется на всём сайте, где сниппет вставлен.
Посмотрю что за сниппеты, спасибо за информацию
*

vseok

  • Новичок
  • 6
  • 0 / 0
Re: Вывод части материала в модуле
« Ответ #21 : 15.04.2022, 17:42:00 »
ну тут вам несколько модулей с частями таблицы и вставлять их уже в статьи
либо сделать макеты под каждую скажем так категорию где будет выводится часть
Про несколько модулей сразу подумал, но поскольку я очень ленивый думал может быть есть решение проще)
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
Re: Вывод части материала в модуле
« Ответ #22 : 15.04.2022, 17:46:09 »
ну из вашего материала автоматом кусок цеплять нужный не будет.
тут только писать логику как и модуль
индивидуальная помощь: @SetAlexx
*

vseok

  • Новичок
  • 6
  • 0 / 0
Re: Вывод части материала в модуле
« Ответ #23 : 15.04.2022, 17:48:41 »
Значит буду делать кучу модулей, на каждый товар.  ^-^ Спасибо Всем неравнодушным за ответы!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Пропадают иконки на части страниц, пока не удалишь кеш браузера

Автор minibelka

Ответов: 4
Просмотров: 1136
Последний ответ 25.02.2024, 22:56:50
от cherianov
Вывод даты материала в списке тегов

Автор androv77

Ответов: 2
Просмотров: 899
Последний ответ 09.11.2023, 16:33:08
от denxio
Вывод дополнительного поля материала в модуле

Автор timofe

Ответов: 10
Просмотров: 1517
Последний ответ 06.10.2023, 14:02:24
от Mitriy
Как сделать отображение времени создания материала?

Автор Pzhigalov

Ответов: 0
Просмотров: 328
Последний ответ 27.09.2023, 22:45:29
от Pzhigalov
[Решено] Получить список тегов каждого материала в блоге категории

Автор goga_pgasovav

Ответов: 1
Просмотров: 403
Последний ответ 02.03.2023, 14:20:21
от goga_pgasovav