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

49volro

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Как сделать чтобы кнопка "подробнее" появлялась и в архивных материалах? В обычных статьях всё работает.
« Последнее редактирование: 31.03.2014, 11:50:43 от b2z »
*

adamsage

  • Новичок
  • 3
  • 0 / 0
Re: Архивные материалы без "подробнее"
« Ответ #1 : 06.09.2013, 10:54:17 »
Точно такая же проблема, ещё   и картинки материала у меня не отображаются,  ни кто не ответил я решения не нашел!
*

49volro

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: Архивные материалы без "подробнее"
« Ответ #2 : 29.09.2013, 21:25:41 »
Всё ещё актуально.
*

DimonSX

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Архивные материалы без "подробнее"
« Ответ #3 : 31.03.2014, 03:32:54 »
Доброго времени...!
- вопрос даже не сдвинулся с точки... (
перерыл много статей, так и не нашел ответа на вопрос...
кто-то смог решить сей вопрос...?!
- вопрос еще актуален...
нам кто-нибудь может помочь с таким вопросом...?!
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Re: Архивные материалы без "подробнее"
« Ответ #4 : 31.03.2014, 11:12:48 »
1) Копируем файл components/com_content/views/archive/tmpl/default_items.php в Ваш шаблон по пути templates/ВАШ_ШАБЛОН/html/com_content/archive/ (или редактируем если он уже там есть)
2) Открываем default_items.php
3) В нужном месте внутри цикла foreach вставляем код:
Код
	<p class="readmore">
        <a class="btn" href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug)); ?>">
            <?php echo JText::_('COM_CONTENT_READ_MORE'); ?>
            <span class="icon-chevron-right"></span>
        </a>
    </p>
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Архивные материалы с "подробнее"
« Ответ #5 : 31.03.2014, 11:48:59 »
Почти так. Если брать совсем правильно (с учетом настроек), то код должен быть таким:

Код: php
<?php if ($params->get('show_readmore') && $item->readmore) :
if ($item->params->get('access-view')) :
$link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug));
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($item->slug, $item->catslug));
$link = new JUri($link1);
$link->setVar('return', base64_encode($returnURL));
endif; ?>

<p class="readmore"><a class="btn" href="<?php echo $link; ?>"> <span class="icon-chevron-right"></span>

<?php if (!$item->params->get('access-view')) :
echo JText::_('COM_CONTENT_REGISTER_TO_READ_MORE');
elseif ($readmore = $item->alternative_readmore) :
echo $readmore;
if ($params->get('show_readmore_title', 0)!= 0) :
echo JHtml::_('string.truncate', ($item->title), $params->get('readmore_limit'));
endif;
elseif ($params->get('show_readmore_title', 0) == 0) :
echo JText::sprintf('COM_CONTENT_READ_MORE_TITLE');
else :
echo JText::_('COM_CONTENT_READ_MORE');
echo JHtml::_('string.truncate', ($item->title), $params->get('readmore_limit'));
endif; ?>

</a></p>

<?php endif; ?>

По логике вставить его нужно после:
Код: php
<?php if ($params->get('show_intro')) :?>
<div class="intro"> <?php echo JHtml::_('string.truncateComplex', $item->introtext, $params->get('introtext_limit')); ?> </div>
<?php endif; ?>
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Re: Архивные материалы с "подробнее"
« Ответ #6 : 31.03.2014, 11:57:23 »
Ну я так сказать упростил, не учитывая настроек :)
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

DimonSX

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Архивные материалы с "подробнее"
« Ответ #7 : 31.03.2014, 17:35:57 »
- так и думал что нужно править...

Огромное Вам - СПАСИБО...!  *DRINK*
*

DimonSX

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Архивные материалы с "подробнее"
« Ответ #8 : 01.04.2014, 00:40:40 »
ох уж этот код...)))
описываю метод бездействия и не понятия что с ним делать...

1 - вставляю код в components/com_content/views/archive/tmpl/default_items.php - по методу "после кода по логике"
в стандартных шаблонах все хорошо, все замечательно... за что Огромное спасибо, что показали...

2 - но как только вставляю код или оба кода в файл templates/ВАШ_ШАБЛОН/html/com_content/archive/default_items.php
- выдает ошибки, в зависимости от того куда вставить код:
в одном случае: Parse error: syntax error, unexpected '<' in
в другом случае: Fatal error: Call to a member function get() on a non-object in

2.1. файл в шаблоне такой уже имелся - кода "по логике", куда нужно вставить в шаблонном не обнаружено...
      если копировать и заменить файл из первого варианта, то вся графика или стили - все, все становится наперекосяк...

3. Шаблон использовал от Артиста-4, который сам же и слепил...
-----------------------------------------------------------------------

Помогите пожалуйста, что нужно сделать для быстрого решения данной проблемы, что посоветуете...?!
- не совсем понимаю эти ошибки, не силен в языках кода...

*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Архивные материалы с "подробнее"
« Ответ #9 : 01.04.2014, 10:15:15 »
Ну наш вариант работает только для стандартного макета Joomla. Все эти артистер штучки, это что-то с чем-то...
*

DimonSX

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Архивные материалы с "подробнее"
« Ответ #10 : 01.04.2014, 21:09:04 »
Да не вызывало как-то проблем, конечно поправка там нужна, но она не вызывала столь чудного напряга... Мне не известны другие программки, а самостоятельно не в силах по знаниям сделать, а в ней разметку+графику как тебе нужно выстроил, помочь и подсказать по CMS тоже некому...

- теперь по теме, сижу вот уже сутки - сравнивая и ковыряя код...

вот то что предлагал kamaz6141, вполне даже работает, но только кнопка снизу или сверху получается,
- никак она не хочет в текст перемещаться... (
 
1) Копируем файл components/com_content/views/archive/tmpl/default_items.php в Ваш шаблон по пути templates/ВАШ_ШАБЛОН/html/com_content/archive/ (или редактируем если он уже там есть)
2) Открываем default_items.php
3) В нужном месте внутри цикла foreach вставляем код:
Код
	<p class="readmore">
        <a class="btn" href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug)); ?>">
            <?php echo JText::_('COM_CONTENT_READ_MORE'); ?>
            <span class="icon-chevron-right"></span>
        </a>
    </p>

- то что для стандартного шаблона код, он выдает ошибку... вынул код похожий из файла шаблона listitem.php
сделал по теме шаблонного кода, получилось вот что:
но - выдает ошибку Parse error: syntax error, unexpected T_STRING in в строке, которую пометил пунктиром...

Спойлер
[свернуть]

- Можно ли из этого как-то изменить ситуацию?!
-Есть ли какие либо другие альтернативы или совет подарите хотя бы...  :(
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Re: Архивные материалы с "подробнее"
« Ответ #11 : 01.04.2014, 21:17:42 »
Ну прям в текст вряд-ли получится, вставьте сразу после
Код: php
<?php if ($params->get('show_intro')) :?>
<div class="intro"> <?php echo JHtml::_('string.truncateComplex', $item->introtext, $params->get('introtext_limit')); ?> </div>
<?php endif; ?>
« Последнее редактирование: 01.04.2014, 21:23:57 от kamaz6141 »
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

DimonSX

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Архивные материалы с "подробнее"
« Ответ #12 : 01.04.2014, 21:27:25 »
пробовал, да и у меня как писал уже нет такого кода, а если его прописывать то ошибка...
с этим кодом в идеале со стандартным шаблоном, но увы у меня от артиста...
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Re: Архивные материалы с "подробнее"
« Ответ #13 : 01.04.2014, 21:32:42 »
А покажите-ка весь код...а хотя почему-бы не оставить кнопку внизу, раз работает? Не думаю что в тексте между предложениями ей место...
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

DimonSX

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Архивные материалы с "подробнее"
« Ответ #14 : 01.04.2014, 21:39:34 »
внизу оставить я тоже был бы не против но получается будет между блогами...

вот весь код с рабочей кнопкой снизу:

Код: php
<?php
defined('_JEXEC') or die;

JHtml::addIncludePath(JPATH_COMPONENT . '/helpers');

require_once dirname(dirname(dirname(dirname(__FILE__)))). DIRECTORY_SEPARATOR . 'functions.php';

Artx::load("Artx_Content");

$component = new ArtxContent($this, $this->params);
?>
<ul id="archive-items">
<?php foreach ($this->items as $i => $item) : ?>
    <li class="row<?php echo $i % 2; ?>">
<?php
$article = $component->article('archive', $item, $this->params);
$params = $article->getArticleViewParameters();
if (strlen($article->title)) {
    $params['header-text'] = $this->escape($article->title);
    if (strlen($article->titleLink))
        $params['header-link'] = $article->titleLink;
}
// Change the order of ""if"" statements to change the order of article metadata header items.
if (strlen($article->created))
    $params['metadata-header-icons'][] = "<span class=\"art-postdateicon\">" . $article->createdDateInfo($article->created). "</span>";
if (strlen($article->modified))
    $params['metadata-header-icons'][] = "<span class=\"art-postdateicon\">" . $article->modifiedDateInfo($article->modified). "</span>";
if (strlen($article->published))
    $params['metadata-header-icons'][] = "<span class=\"art-postdateicon\">" . $article->publishedDateInfo($article->published). "</span>";
if (strlen($article->author))
    $params['metadata-header-icons'][] = "<span class=\"art-postauthoricon\">" . $article->authorInfo($article->author, $article->authorLink). "</span>";
if (strlen($article->hits))
    $params['metadata-header-icons'][] = $article->hitsInfo($article->hits);
// Build article content
$content = '';
if (strlen($article->intro))
    $content .= $article->intro($article->intro);
$params['content'] = $content;
// Change the order of ""if"" statements to change the order of article metadata footer items.
if (strlen($article->category))
    $params['metadata-footer-icons'][] = "<span class=\"art-postcategoryicon\">"
        . $article->categories($article->parentCategory, $article->parentCategoryLink, $article->category, $article->categoryLink)
        . "</span>";

// Render article
echo $article->article($params);
?>
    </li>
<?php endforeach; ?>
</ul>

<p class="readmore">
        <a class="readon art-button" href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug)); ?>">
            <?php echo JText::_('COM_CONTENT_READ_MORE'); ?>
            <span class="icon-chevron-right"></span>
        </a>
    </p>

<div class="pagination">
    <p class="counter">
        <?php echo $this->pagination->getPagesCounter(); ?>
    </p>
    <?php echo $this->pagination->getPagesLinks(); ?>
</div>
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Re: Архивные материалы с "подробнее"
« Ответ #15 : 01.04.2014, 21:43:50 »
Так Вы в цикл вставьте, перед
Код: php
<?php endforeach; ?>
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

DimonSX

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Архивные материалы с "подробнее"
« Ответ #16 : 01.04.2014, 21:50:43 »
</li>
т.е. в этом промежутке...?!
<?php endforeach; ?>

так пробовал без изменений...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться