Новости Joomla

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

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
introtext
« : 20.01.2012, 19:47:31 »
Люди, за вывод статьи, отвечает это:
<?php echo $this->item->introtext; ?> в файлах мой шаблон/html/article, /category, /featured/ default.php, blog_item.php и т. д.

А как добраться к introtext, чтобы поковыряться с CSS? :) Вариант: "При создании (написании) статьи" не подходит. Какие-то же файлы отвечают за вывод той же картинки со статьи, текста... Какие? Где?

Заранее благодарю за ответы
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: introtext
« Ответ #1 : 20.01.2012, 19:57:00 »
Цитировать
А как добраться к introtext, чтобы поковыряться с CSS?
Непонятный вопрос. Вы FireBug пользоваться умеете?
Создание сайтов, шаблонов, помощь в решении проблем.
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
Re: introtext
« Ответ #2 : 20.01.2012, 20:02:37 »
Непонятный вопрос. Вы FireBug пользоваться умеете?
:) умею в той части, чтобы понять, в каком файле, и на какой строке, находится тот или иной class и/или id. Но, этого не достаточно, т. к., в самом introtext из <?php echo $this->item->introtext; ?>, мне нужно (как пример) поменять местами картинку с текстом, добавить разделительную линию <hr /> между ними и т. д. Т. ч., FireBug тут не помощник...
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: introtext
« Ответ #3 : 20.01.2012, 20:24:00 »
А в чём проблема? Через редактор. Никакие файлы за вывод интро не отвечают. Это Одна таблица в базе. Может вы ищите шаблон вывода блога категории? Это в шаблоне html/com_content/category/blog_item.php
Создание сайтов, шаблонов, помощь в решении проблем.
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: introtext
« Ответ #4 : 20.01.2012, 20:40:41 »
Попользовать разные элементы внутри поля introtext средствами шаблонизации нельзя ^-^. Для этого пишутся контент-плагины.
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
Re: introtext
« Ответ #5 : 20.01.2012, 20:42:42 »
А в чём проблема? Через редактор. Никакие файлы за вывод интро не отвечают. Это Одна таблица в базе. Может вы ищите шаблон вывода блога категории? Это в шаблоне html/com_content/category/blog_item.php
Тогда не понятно, как же тогда те же Ja или GK изменяют именно introtext? Понятно, что можно через редактор, но, это действует, когда один человек (знающий о том, как нужно оформить статью) занимается вводом статей, а если несколько, а если из разных стран...

Идея в том, что чтобы не ввел создающий человек в редакторе, статья, выглядела одинаково, т. е., я, где-то, в каких-то файлах, создам шаблон для вывода introtext, и он будет выводится на фронт...

А что касается шаблона html/com_content/category/blog_item.php, то, именно в этом файле и есть конструкция <?php echo $this->item->introtext; ?>...

Мне кажется, что все же, есть какие-то файлы, отвечающие за формирование <?php echo $this->item->introtext; ?>. Ведь, если я правильно понимаю, то в конструкции <?php echo $this->item->introtext; ?> слово introtext - это ничто иное, как переменная?! а раз так, то, в нее откуда-то идет запись, где-то же эта запись формируется?

Или я чего-то не допонимаю?
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: introtext
« Ответ #6 : 20.01.2012, 20:45:11 »
Ваше стремление к унификации конечно похвально. Но, повторюсь, introtext средствами вёрстки никак нельзя контролировать! Как верно подметил ещё Ефаныч, это единое поле таблицы content. Уточните задачу, приведите примеры того, что хотите получить. Есть несколько мыслей, как помочь.
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
Re: introtext
« Ответ #7 : 21.01.2012, 02:09:15 »
... приведите примеры того, что хотите получить. Есть несколько мыслей, как помочь.
Ну как пример (правда, это К2, но, хотелось бы сделать такое для материала Joomla): http://demo.gavick.com/joomla15/jul2011/index.php?option=com_k2&view=itemlist&layout=category&task=category&id=7&Itemid=187 - название статьи, вставлено между картинкой и вводным текстом.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: introtext
« Ответ #8 : 21.01.2012, 02:17:01 »
Ну как пример (правда, это К2, но, хотелось бы сделать такое для материала Joomla): http://demo.gavick.com/joomla15/jul2011/index.php?option=com_k2&view=itemlist&layout=category&task=category&id=7&Itemid=187 - название статьи, вставлено между картинкой и вводным текстом.
В вашем случае переопределен шаблоном категории вывод материала К2. В К2 категории можно задать(сделать, написать) свой шаблон.
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
Re: introtext
« Ответ #9 : 21.01.2012, 02:49:04 »
В вашем случае переопределен шаблоном категории вывод материала К2. В К2 категории можно задать(сделать, написать) свой шаблон.
Это я понимаю, но, учитывая то, что К2 я не использую, то вопрос переопределения шаблона отпадает.

В общем, я понял... Проще не парится а маємо те, що маємо (имеем то, что имеем)...

Подскажите тогда плз, что и где (в каком class) прописать, чтобы картинки в колонках, стали 150px на 99px, а картинка в первой статье (на голубом фоне), осталась такой как есть: http://www.b2all.biz/ru/world-today/word-news/europe/east-europe/ukraine.

P. S.
    Первая статья (на голубом фоне) - имеет тот вид, который я хотел от нее, а вот со статьями - картинками (чтобы текст обрамлял картинку с правой стороны пример:
http://www.joomlart.com/demo/#templates.joomlart.com/ja_teline_iv/) в колонках - не могу справиться...

Где-то потерял "ниточку", и куда бы не тыкался - все коту под хвост.

В идеале, хочу сделать такую же страницу, как на JA примере, только, чтобы первая статья, выглядела так. как сейчас на http://www.b2all.biz/ru/world-today/word-news/europe/east-europe/ukraine.
[/list]

Спасибо
« Последнее редактирование: 21.01.2012, 03:19:10 от Dgikar »
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: introtext
« Ответ #10 : 21.01.2012, 03:20:16 »
В общем сделал.
1. копируете из components\com_content\views\article\tmpl\ в templates\шаблон\html\com_content\article\ файл default.php
2. Заменяете всё на...
Код: php
<?php defined('_JEXEC') or die;
JHtml::addIncludePath(JPATH_COMPONENT . '/helpers');
/*выносим первый пикчер в отдельный класс объекта*/
preg_match_all('#<img[^<]+?>#', $this->item->text, $matches);
$this->item->img = $matches[0][0];
$this->item->text = str_replace($this->item->img, "", $this->item->text);
/*кончили выносить*/
?>
<div class="item-page<?php echo $this->pageclass_sfx?>">
<!--вставляем картинку до заголовка-->
<div class="article_img">
<?php echo $this->item->img; ?>
</div>
<!--кончили вставлять-->
<h1>
<?php echo $this->escape($this->item->title); ?>
</h1>
<?php echo $this->item->text; ?>
</div>
Это упрощённый вариант. Остальное выводите по желанию. См. components\com_content\views\article\tmpl\default.php
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
Re: introtext
« Ответ #11 : 21.01.2012, 11:47:38 »
В общем сделал ... Это упрощённый вариант ...
Спасибо огромное. Для отображения одной статьи - сработало отлично, но, для отображения блога статей - не сработало - выводить картинку и краткое описание - отказывается напрочь... не пойму в чем дело...

И, сорри за наглость, а как еще выделить Caption картинки?
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: introtext
« Ответ #12 : 21.01.2012, 12:01:07 »
Цитировать
Для отображения одной статьи - сработало отлично, но, для отображения блога статей - не сработало
Там другой файл.
html/com_content/category/blog_item.php
Только код Шустрого не полностью вставляйте, а по аналогии
Создание сайтов, шаблонов, помощь в решении проблем.
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
Re: introtext
« Ответ #13 : 21.01.2012, 12:34:26 »
... html/com_content/category/blog_item.php ...
Да, именно с ним и пробовал работать

... Только код Шустрого не полностью вставляйте, а по аналогии
... :( эээээххххх... Знал бы я PHP... :(
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: introtext
« Ответ #14 : 21.01.2012, 14:53:27 »
templates\шаблон\html\com_content\article\default.php:
Код: php
<?php defined('_JEXEC') or die;
JHtml::addIncludePath(JPATH_COMPONENT . '/helpers');
//Shustry
preg_match_all('#<img[^<]+?>#', $this->item->text, $matches); //ищем картинки
$this->item->img = $matches[0][0]; //выбираем только первую
preg_match_all('#alt\s*=\s*(["\'])(.*?)\1#', $this->item->img, $matches); //ищем в ней alt
$this->item->imgalt = ($matches[2][0]); //выбираем значение alt
$this->item->text = str_replace($this->item->img, "", $this->item->text); //удаляем первую картинку из текста
preg_match_all('#style\s*=\s*(["\'])(.*?)\1#', $this->item->img, $matches); //ищем атрибут style в нашей картинке. Эту и следущую строку можете не добавлять.
$this->item->img = str_replace($matches[0][0], "", $this->item->img); //удаляем его, чтобы кривые менеджеры не ломали разметку.
?>
<div class="item-page<?php echo $this->pageclass_sfx?>">
<!--вставляем картинку до заголовка-->
<?php if ($this->item->img) {; ?> <!--проверяем, есть ли вообще картинка? Если есть то выводим блок ниже -->
<div class="article_img">
<?php echo $this->item->img; ?> <!-- проверяем наличие alt. Если есть, то выводим... -->
<?php if ($this->item->imgalt) {; ?>
<span class="caption"><?php echo $this->item->imgalt; ?></span>
<?php }; ?>
</div>
<?php }; ?>
<!--кончили вставлять-->
<h1>
<?php echo $this->escape($this->item->title); ?>
</h1>
<?php echo $this->item->text; ?>
</div>

templates\шаблон\html\com_content\category\blog_item.php:
Код: php
<?php defined('_JEXEC') or die;
$params = &$this->item->params;
$canEdit = $this->item->params->get('access-edit');
JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
//JHtml::_('behavior.tooltip'); - комментим, если не используем в проекте Mootools
//JHtml::core(); - комментим, если не используем в проекте Mootools

//Начало
preg_match_all('#<img[^<]+?>#', $this->item->introtext, $matches);
$this->item->img = $matches[0][0];
preg_match_all('#alt\s*=\s*(["\'])(.*?)\1#', $this->item->img, $matches);
$this->item->imgalt = ($matches[2][0]);
$this->item->introtext = str_replace($this->item->img, "", $this->item->introtext);
preg_match_all('#style\s*=\s*(["\'])(.*?)\1#', $this->item->img, $matches);
$this->item->img = str_replace($matches[0][0], "", $this->item->img);

if ($this->item->img) {; ?>
<div class="article_img">
<?php echo $this->item->img; ?>
<?php if ($this->item->imgalt) {; ?>
<span class="caption"><?php echo $this->item->imgalt; ?></span>
<?php }; ?>
</div>
<?php }; ?>
<h2><a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>"><?php echo $this->escape($this->item->title); ?></a></h2>
<?php
//Конец
echo $this->item->introtext;
if ($params->get('access-view')) :
$link = JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid));
else :
$menu = JFactory::getApplication()->getMenu();
$active = $menu->getActive();
$itemId = $active->id;
$link1 = JRoute::_('index.php?option=com_users&view=login&Itemid=' . $itemId);
$returnURL = JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid));
$link = new JURI($link1);
$link->setVar('return', base64_encode($returnURL));
endif;
?>
<p class="readmore"><a href="<?php echo $link; ?>">Читать полностью</a></p>
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
Re: introtext
« Ответ #15 : 21.01.2012, 15:17:03 »
Shustry, ОГРОМНОЕ, ЧЕЛОВЕЧЕСКОЕ СПАСИБО!

По Вашему последнему коду, в категории, вот что получилось: http://www.b2all.biz/ru/world-today/word-news/europe/east-europe/ukraine
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: introtext
« Ответ #16 : 21.01.2012, 15:21:30 »
Dgikar, пожалуйста. У Вас ошибка где-то. Сейчас разметка выглядит так:
Код
<div class="img_caption none" style="float: none; width: 500px;">
<img class="caption" border="0" title="Турция и Украина собираются отменить визы" src="/images/stories/tur-ua.jpg">
<p class="img_caption">Турция и Украина собираются отменить визы</p>
</div>
<span class="caption">Турция и Украина собираются отменить визы</span>
Два раза выводится $this->item->imgalt
<p class="img_caption"> - вот это наверное лишнее.
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
Re: introtext
« Ответ #17 : 21.01.2012, 15:27:44 »
... вот это наверное лишнее.

Да, вот это нужно убрать:
Код: php
<?php if ($this->item->imgalt) {; ?>
<span class="caption"><?php echo $this->item->imgalt; ?></span>
<?php }; ?>

Получаем:
Код: php
if ($this->item->img) {; ?>
<div class="article_img">
<?php echo $this->item->img; ?>
</div>
<?php }; ?>

Еще раз СПАСИБО ЗА ПОМОЩЬ!
*

mrsatanclaus

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: introtext
« Ответ #18 : 20.05.2012, 13:26:06 »
Здраствуйте, подскажите, пожалуйста, как можна изменить вид блога материалов com_content подобно вот такому примеру http://football.ua/news/archive/? заранее спасибо...
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: introtext
« Ответ #19 : 22.05.2012, 10:16:59 »
mrsatanclaus, а в чём там сложность? Вроде всё элементарно делается. Ставите какой-нить тумбочкёр вроде SmartResizer-а, прописываете явно размеры, сносите влево и делаете отрицательный margin равный ширине картинки. Остальные элементы тоже сносите влево и делаете левый padding равный этому же размеру.
*

mrsatanclaus

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: introtext
« Ответ #20 : 22.05.2012, 13:18:22 »
можно поподробнее? какие файлы править, какие классы?
*

mrsatanclaus

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: introtext
« Ответ #21 : 22.05.2012, 13:34:12 »
по порядку можете пояснить?
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: introtext
« Ответ #22 : 22.05.2012, 13:39:54 »
1. Ставите СмартРесайзер: http://joomlaforum.ru/index.php/topic,77958.0.html Включаете в плагинах, настраиваете на глобальное использование.
2. Копируете из components/com_content/views/featured/tmpl/ в templates/шаблон/html/com_content/featured/ файлы default.php и default_item.php, где первый - шаблон блога главной страницы, второй - шаблон элемента блога. Всё, теперь можете над главной издеваться. ^-^
*

mrsatanclaus

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: introtext
« Ответ #23 : 22.05.2012, 13:43:38 »
мне нужно изменить шаблон блога категории, тогда какой файл брать blog_item.php?
поставил смарт ресайзер - он уменьшает изображение, но оно остаеться на своем месте, выравнивание где прописывать, при создании статьи или в файле каком-нибудь?
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: introtext
« Ответ #24 : 22.05.2012, 13:47:17 »
мне нужно изменить шаблон блога категории, тогда какой файл брать blog_item.php?
templates/шаблон/html/com_content/category/blog_item.php
поставил смарт ресайзер - он уменьшает изображение, но оно остаеться на своем месте, выравнивание где прописывать, при создании статьи или в файле каком-нибудь?
templates/шаблон/css/template.css
Как менять, написал в самом начале. Сносите картинку влево, даёте отрицательный отступ. Сносите всё остальное влево, теперь оно поверх картинки. Ставите внутренний отступ равный ширине картинки, всё, профит. Задача решена.
*

mrsatanclaus

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: introtext
« Ответ #25 : 22.05.2012, 14:05:04 »
http://s14.directupload.net/file/d/2898/ghaxjq9y_jpg.htm вот что получилось, но нужно чтоб весь текст бил справа от изображения, как?
*

mrsatanclaus

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: introtext
« Ответ #26 : 22.05.2012, 14:06:26 »
если можно то пример CSS, или чего там нужно, а то не совсем понятно
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: introtext
« Ответ #27 : 22.05.2012, 14:09:31 »
Цитировать
Сносите картинку влево, даёте отрицательный отступ. Сносите всё остальное влево, теперь оно поверх картинки. Ставите внутренний отступ равный ширине картинки, всё, профит. Задача решена.
Код: css
/*картинки*/
.huyegoznaetkakoy-toklass {float:left; width:200px; margin-right:-200px;}
/*все остальные элементы*/
.kakoy-todrugoyklass {float:left; padding-left:200px;}
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: introtext
« Ответ #28 : 22.05.2012, 14:16:13 »
Так, ща ещё более подробно попробую объяснить...
Допустим мы уже добились вот такой разметки:
Код: html4strict
<div class="blog-item">
<a class="blog_img" href="img.jpg">
<img src ="img_thumb.jpg" />
</a>
<div class="blog_right">
<div class="blog_text">
тут все наши элементы, типа даты, заголовка, текста...
</div>
</div>
</div>
тогда стили будут:
Код: css
.blog-item {float:left; width:100%;}
.blog_img,
.blog_img img {float:left; width:200px; display:block;}
.blog_img {margin-right:-200px;}
.blog_right {float:left; width:100%;}
.blog_text {padding-left:200px;}
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: introtext
« Ответ #29 : 22.05.2012, 14:16:56 »
Фактически не объяснил, а написал за вас. Пользуйтесь. ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться