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

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

  • Легенда
  • 10129
  • 1114 / 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

  • Легенда
  • 10129
  • 1114 / 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

  • Легенда
  • 10129
  • 1114 / 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

  • Захожу иногда
  • 361
  • 7 / 0
Re: Вывод части материала в модуле
« Ответ #16 : 15.04.2022, 16:59:27 »
почему именно часть?
одну и ту же часть везде?
*

arma

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

vseok

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

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

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

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

*

marksetter

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

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

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

vseok

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

Плагин ContentMulticategories не работает на модуле

Автор mak200

Ответов: 1
Просмотров: 152
Последний ответ 04.06.2022, 22:02:38
от mak200
Вывод картинки, находящейся внутри нескольких блоков, на всю ширину экрана

Автор GuDeVic

Ответов: 10
Просмотров: 278
Последний ответ 26.05.2022, 17:42:59
от marksetter
Вывод дополнительного поля материала в модуле

Автор timofe

Ответов: 9
Просмотров: 625
Последний ответ 04.05.2022, 08:43:42
от effrit
Изменение доп. поля материала через фронтенд

Автор Damarkuzz

Ответов: 1
Просмотров: 118
Последний ответ 29.03.2022, 14:03:37
от NewUsers
Как передать значения полей категории в значения полей материала?

Автор Upps_J

Ответов: 4
Просмотров: 239
Последний ответ 27.01.2022, 08:59:25
от Upps_J