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

dron

  • Завсегдатай
  • 1511
  • 15 / 10
Переопределение шаблона
« : 24.07.2020, 17:59:31 »
Добрый день. Я запутался в конец. Помогите, кто чем сможет...

Нужно чтобы материалы в категории Новости выводились с датой публикации.
Материалы из категории Статьи выводились с датой, автором и количеством просмотров.
Материалы из категории Без категории выводились вообще без всех этих данных.

Как я понял - это надо переопределить шаблон. Подскажите, как это сделать? Как я понял, в папке моего шаблона в папке HTML это все должно быть. А расскажите, пожалуйста, подробнее.

Заранее спасибо!
*

AlexB

  • Завсегдатай
  • 1973
  • 53 / 2
Re: Переопределение шаблона
« Ответ #1 : 24.07.2020, 18:56:27 »
Делайте клоны в компонентах и назначайтн их категориям
*

fireman

  • Захожу иногда
  • 328
  • 10 / 0
  • в цель...
Re: Переопределение шаблона
« Ответ #2 : 24.07.2020, 19:22:48 »
А расскажите, пожалуйста, подробнее.
Вот пример переопределения макета материала:

1. В админке:
Расширения/шаблоны/шаблоны/параметры нужного шаблона/создать переопределение/столбец «Компоненты» - com_content/article. Жмем, система создаст нужные папки и файлы.
2. В файлах.
templates/ИМЯ_ШАБЛОНА/html/com_content/article будет лежать файлик default.php. Переименовываем его default-mystyle.php и размещаем в этой папке.
3. В админке
В самом материале вкладка «Параметры отображения» - самая первая настройка «Альтернативный макет» выбрать из выпадающего списка default-mystyle.

Соответственно в данном файле вносить изменения под задачи.

Пы.Сы. Можно начать с п.2 и посмотреть, может папки с файлом уже создана в .../html/...
Пы.Сы - 2 А разве в настройках материала нельзя это изменить?
« Последнее редактирование: 24.07.2020, 19:29:24 от fireman »
*

dron

  • Завсегдатай
  • 1511
  • 15 / 10
Re: Переопределение шаблона
« Ответ #3 : 24.07.2020, 20:39:09 »
Пы.Сы - 2 А разве в настройках материала нельзя это изменить?
Можно. Но у меня сайты не новые: на одном их более 10 тыс, и более 1 тыс на другом.
*

fireman

  • Захожу иногда
  • 328
  • 10 / 0
  • в цель...
Re: Переопределение шаблона
« Ответ #4 : 24.07.2020, 20:50:05 »
Можно. Но у меня сайты не новые: на одном их более 10 тыс, и более 1 тыс на другом.
Тогда вперед, по моей инструкции)))
*

dron

  • Завсегдатай
  • 1511
  • 15 / 10
Re: Переопределение шаблона
« Ответ #5 : 26.07.2020, 21:21:53 »
Тогда вперед, по моей инструкции)))
Прошу прощения, вопрос еще один. Как я понимаю, это шаблон для материала. Т.е. мне придется при создании каждого материала присваивать ему тот или иной шаблон? А можно ли сделать шаблон именно для всех материалов, относящихся к конкретной категории?? Т.е. я создаю материал, и если указываю ему категорию Новости, то у него одна настройки, а если категорию статьи - то другие. Чтобы не приходилось каждый раз создавая материал указывать шаблон...
*

fbr

  • Завсегдатай
  • 1516
  • 174 / 7
Re: Переопределение шаблона
« Ответ #6 : 26.07.2020, 21:28:23 »
пункт меню - параметры отображения - выбор макета

если тип пункта меню блог или список категории



« Последнее редактирование: 26.07.2020, 21:31:48 от fbr »
*

dron

  • Завсегдатай
  • 1511
  • 15 / 10
Re: Переопределение шаблона
« Ответ #7 : 26.07.2020, 22:34:41 »
пункт меню - параметры отображения - выбор макета

если тип пункта меню блог или список категории
Да, шаблон присвоить удалось. Но никак не пойму, как выводить Хиты, Автора, Дату публикации и изменения? В этом шаблоне их нет...  :(
*

fbr

  • Завсегдатай
  • 1516
  • 174 / 7
Re: Переопределение шаблона
« Ответ #8 : 26.07.2020, 23:19:29 »
Цитировать
В этом шаблоне их нет...

Они здесь \layouts\joomla\content\info_block\

Пример вызова в шаблон в строке 115 (j3.9.20)
Код
115 JLayoutHelper::render('joomla.content.info_block.block', ...

эти шаблоны тоже можно переопределять, при желании создав папку html/layouts/joomla/content
*

fireman

  • Захожу иногда
  • 328
  • 10 / 0
  • в цель...
Re: Переопределение шаблона
« Ответ #9 : 27.07.2020, 00:05:36 »
Они здесь \layouts\joomla\content\info_block\
Код
115 JLayoutHelper::render('joomla.content.info_block.block', ...
эти шаблоны тоже можно переопределять, при желании создав папку html/layouts/joomla/content
В файле block.php в папке html/layouts/joomla/content/info_block
идет отсылка на:
Код
echo LayoutHelper::render('joomla.content.info_block', $displayData);

и если вернутся в папку content там в файле info_block.php мне кажется и можно повлиять на вывод той или иной инфы.
Код
<dl class="uk-description-list">
    <?php
    if ($displayData['position'] === 'above' && ($blockPosition == 0 || $blockPosition == 2) || $displayData['position'] === 'below' && ($blockPosition == 1)) {
        if ($displayData['params']->get('info_block_show_title', 1)) echo '<dt class="article-info-term">' . Text::_('COM_CONTENT_ARTICLE_INFO'). '</dt>';
        if ($displayData['params']->get('show_author') && !empty($displayData['item']->author)) {
            echo $this->sublayout('author', $displayData);
        }
        if ($displayData['params']->get('show_parent_category') && !empty($displayData['item']->parent_slug)) {
            echo $this->sublayout('parent_category', $displayData);
        }
        if ($displayData['params']->get('show_category')) {
            echo $this->sublayout('category', $displayData);
        }
        if ($displayData['params']->get('show_publish_date')) {
            echo $this->sublayout('publish_date', $displayData);
        }
    }
    if ($displayData['position'] === 'above' && ($blockPosition == 0) || $displayData['position'] === 'below' && ($blockPosition == 1 || $blockPosition == 2)) {
        if ($displayData['params']->get('show_create_date')) {
            echo $this->sublayout('create_date', $displayData);
        }
        if ($displayData['params']->get('show_modify_date')) {
            echo $this->sublayout('modify_date', $displayData);
        }
        if ($displayData['params']->get('show_hits')) {
            echo $this->sublayout('hits', $displayData);
        }
    }
    if ($displayData['position'] === 'above' && ($blockPosition == 0 || $blockPosition == 2) || $displayData['position'] === 'below' && ($blockPosition == 1)) {
        if ($displayData['params']->get('show_associations')) {
            echo $this->sublayout('associations', $displayData);
        }
    }
    ?>
</dl>
*

fireman

  • Захожу иногда
  • 328
  • 10 / 0
  • в цель...
Re: Переопределение шаблона
« Ответ #10 : 27.07.2020, 01:27:31 »
Здесь вероятно нужно подумать как переопределить вывод для разных категорий. Возможно вот таким образом будет работать:
1. Альтернативный макет материала, файл default-alternative.php в нем изменить строку 115:
Код
echo LayoutHelper::render('joomla.content.info_block.blockalternative', ...;
2. Создать этот файл blockalternative.php и в нем уже отсылка на конечный альтернативный файл info_blockalternative.php, который также нужно создать папке /html/layouts/joomla/content
Код
echo LayoutHelper::render('joomla.content.info_blockalternative', $displayData);
И таким образом создать столько связок, сколько разных категорий у вас есть (alternative1, alternative2... alternativeN). Могу конечно ошибаться, но сам бы начал с этого...
*

dron

  • Завсегдатай
  • 1511
  • 15 / 10
Re: Переопределение шаблона
« Ответ #11 : 27.07.2020, 08:07:10 »
Блин, вот ведь геморрой какой...   *ОХ-Х-Х*
*

fireman

  • Захожу иногда
  • 328
  • 10 / 0
  • в цель...
Re: Переопределение шаблона
« Ответ #12 : 27.07.2020, 10:00:13 »
Блин, вот ведь геморрой какой...   *ОХ-Х-Х*
Ну а чего? Два файла скопировали, переименовали, в одном удалили пару строк кода, в админке привязали макет к пункту меню. Вот вам один макет готов.
Расскажите, получилось или нет...)
*

fbr

  • Завсегдатай
  • 1516
  • 174 / 7
Re: Переопределение шаблона
« Ответ #13 : 27.07.2020, 11:54:01 »
Блин, вот ведь геморрой какой...   *ОХ-Х-Х*
Можно упрстить
Убрать нафиг все эти layout-макеты
и выводить по-старинке:
Код
<?php echo $this->item->author; // автор ?>
<?php echo $this->item->publish_up; // дата публикации ?>
<?php ... // и т.д ?>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Подключить скрипт в body шаблона

Автор IToro82

Ответов: 6
Просмотров: 185
Последний ответ 24.03.2021, 23:28:24
от IToro82
Замена шаблона отправки системных Email писем

Автор SuschnosT

Ответов: 4
Просмотров: 121
Последний ответ 22.02.2021, 03:28:06
от SuschnosT
Не удаётся удалить копию шаблона protostar!

Автор kiev

Ответов: 0
Просмотров: 73
Последний ответ 09.02.2021, 01:27:04
от kiev
Ошибка в отображении позиции шаблона

Автор ALEXRAW

Ответов: 14
Просмотров: 218
Последний ответ 10.01.2021, 16:58:15
от ALEXRAW
Как изменить цвет фона шаблона protostar на мобильных устройствах?

Автор kiev

Ответов: 12
Просмотров: 170
Последний ответ 03.12.2020, 21:17:59
от kiev