Новости Joomla

Совет по Joomla: $db->getQuery(true) стал устаревшим

Совет по Joomla: $db->getQuery(true) стал устаревшим

👩‍💻 Совет по Joomla: $db->getQuery(true) стал устаревшим.Раньше при создании запросов в базу данных мы всегда получали объект запроса с помощью метода getQuery(). Если передавался параметр $new = true, то получали новый запрос. Если без - последний.

use Joomla\CMS\Factory;$db = Factory::getContainer()->get('DatabaseDriver');$query = $db->getQuery(new: true);// и строим запрос
Под капот Joomla 4 вошёл Joomla Framework (PHP фреймворк а-ля Laravel, Yii и т.д.), а для Joomla 5 он обновился - версия 3.4.1 вышла 6 октября 2023г. В методе фреймворка есть примечание о том, что параметр $new, который передавался в метод getQuery() помечен как устаревший и будет удалён в версии фреймворка 4.0.
The parameter $new is deprecated and will be removed in 4.0, use %s::createQuery() instead.В Joomla 4 версия Joomla Framework была 2.x., в Joomla 5 - 3.x. Поэтому есть предположение, что с выходом Joomla 6 обновится и версия фреймворка - станет 4.0. Поэтому для получения объекта для новых запросов следует использовать метод createQuery(). Он уже представлен в ядре и широко используется. При этом метод getQuery() останется, но, скорее всего, будет выполнять функцию только геттера - получения текущего запроса.@joomlafeed#joomla #php #разработка

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

ivaniura

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Делаю шаблон на Joomla 1.7, и столкнулся с проблемкой.

Переопределил вид отдельной статьи в файле html\com_content\article\myarticle.php, все нормально отображается на сайте, но...

Какой файл и в какой папке отвечает за стиль избранных статей на главной? Надо сделать такой же вид. Перекопал весь инет, но что-то не доходит  :o
*

v-idea

  • Захожу иногда
  • 210
  • 35 / 0
Re: Внешний вид избранных материалов
« Ответ #1 : 13.11.2011, 22:27:37 »
Добрый!
Немного подправлю Вас не за стиль, а за вид отображения избранных статей на главной отвечает всё, что лежит в этой папке:
ваш_сайт\components\com_content\views\featured\tmpl\ 
Русифицированный компонент Widgetkit v1.0.2_27.02 Joomla! | Классический шаблон Rhuk Milkyway Ext 25 для Joomla 1.6/1.7/2.5/3.0
*

ivaniura

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Внешний вид избранных материалов
« Ответ #2 : 13.11.2011, 23:19:17 »
Есть, работает. Большое спасибо!
*

ivaniura

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Внешний вид избранных материалов
« Ответ #3 : 14.11.2011, 13:22:45 »
Ой, еще одна загвоздка...

В самой статье положение елементов сейчас такое:

Цитировать
Заголовок

Дата публикации
Количество просмотров
и. т. д.

Текст статьи

Навигация (предыдущая/следующая статья)

Мне нужно поместить блок

Цитировать
Дата публикации
Количество просмотров
и. т. д.

между текстом статьи и навигацией, но когда я редактирую свой файл, то этот блок помещается только под навигацией, и никак не хочет уместиться там, где надо. Помогите решить, пожалуйста  >:(
*

v-idea

  • Захожу иногда
  • 210
  • 35 / 0
Re: Внешний вид избранных материалов
« Ответ #4 : 14.11.2011, 17:07:48 »
Ну тогда показывайте свой отредактированный файл. Покажите код, который у вас получился.
Русифицированный компонент Widgetkit v1.0.2_27.02 Joomla! | Классический шаблон Rhuk Milkyway Ext 25 для Joomla 1.6/1.7/2.5/3.0
*

ivaniura

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Внешний вид избранных материалов
« Ответ #5 : 14.11.2011, 21:50:26 »
Вот переделанный код из файла components\com_content\views\article\tmpl\default.php:
Код
<?php
/**
 * @version $Id: default.php 21518 2011-06-10 21:38:12Z chdemko $
 * @package Joomla.Site
 * @subpackage com_content
 * @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
 * @license GNU General Public License version 2 or later; see LICENSE.txt
 */

// no direct access
defined('_JEXEC') or die;

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

// Create shortcuts to some parameters.
$params = $this->item->params;
$canEdit = $this->item->params->get('access-edit');
$user = JFactory::getUser();
?>

<!--Общий фон для статьи-->
<div class="article-all">
<div class="article-top">
<div class="article-bottom">
<!--Конец изменений-->

<div class="item-page<?php echo $this->pageclass_sfx?>">
<?php if ($this->params->get('show_page_heading', 1)) : ?>
<h1>
<?php echo $this->escape($this->params->get('page_heading')); ?>
</h1>
<?php endif; ?>
<?php if ($params->get('show_title')) : ?>
<h2>
<?php if ($params->get('link_titles') && !empty($this->item->readmore_link)) : ?>
<a href="<?php echo $this->item->readmore_link; ?>">
<?php echo $this->escape($this->item->title); ?></a>
<?php else : ?>
<?php echo $this->escape($this->item->title); ?>
<?php endif; ?>
</h2>
<?php endif; ?>

<?php if ($canEdit ||  $params->get('show_print_icon') || $params->get('show_email_icon')) : ?>
<ul class="actions">
<?php if (!$this->print) : ?>
<?php if ($params->get('show_print_icon')) : ?>
<li class="print-icon">
<?php echo JHtml::_('icon.print_popup',  $this->item, $params); ?>
</li>
<?php endif; ?>

<?php if ($params->get('show_email_icon')) : ?>
<li class="email-icon">
<?php echo JHtml::_('icon.email',  $this->item, $params); ?>
</li>
<?php endif; ?>

<?php if ($canEdit) : ?>
<li class="edit-icon">
<?php echo JHtml::_('icon.edit', $this->item, $params); ?>
</li>
<?php endif; ?>

<?php else : ?>
<li>
<?php echo JHtml::_('icon.print_screen',  $this->item, $params); ?>
</li>
<?php endif; ?>

</ul>
<?php endif; ?>

<?php  if (!$params->get('show_intro')) :
echo $this->item->event->afterDisplayTitle;
endif; ?>

<?php echo $this->item->event->beforeDisplayContent; ?>

<?php $useDefList = (($params->get('show_author')) OR ($params->get('show_category')) OR ($params->get('show_parent_category'))
OR ($params->get('show_create_date')) OR ($params->get('show_modify_date')) OR ($params->get('show_publish_date'))
OR ($params->get('show_hits'))); ?>




<!--Вот этот кусочек кода мне надо поместить между текстом статьи и нижней навигацией "предыдущая/следующая страница"-->
<?php if ($useDefList) : ?>
<!--Здесь изменения - dl`ы переделаны в div`ы, а также убраны ненужные елементы-->
<div class="article-elements"><div><!--добавление фоновой рамки-->
<div class="article-info">
<?php endif; ?>
<?php if ($params->get('show_publish_date')) : ?>
<div class="published">
<?php echo JText::sprintf('COM_CONTENT_PUBLISHED_DATE', JHtml::_('date',$this->item->publish_up, JText::_('DATE_FORMAT_LC2'))); ?>
</div><!--published-->
<?php endif; ?>
<?php if ($params->get('show_hits')) : ?>
<div class="hits">
<?php echo JText::sprintf('COM_CONTENT_ARTICLE_HITS', $this->item->hits); ?>
</div><!--hits-->
<?php endif; ?>
<?php if ($useDefList) : ?>
</div><!--article-info-->
</div></div><!--закрываю рамку-->
<!--Конец изменений-->
<?php endif; ?>

<!--Вот этот кусочек кода мне надо поместить между текстом статьи и нижней навигацией "предыдущая/следующая страница"

мешает код

<ul class="pagenav">
<li class="pagenav-next">
<a rel="prev" href="/joomla/index.php/77-main/78-stattia-9">Наступна &gt;</a>
</li>
</ul>

который со всей упорностью стоит выше этого куска кода...
-->




<?php if (isset ($this->item->toc)) : ?>
<?php echo $this->item->toc; ?>
<?php endif; ?>
<?php if ($params->get('access-view')):?>
<?php echo $this->item->text; ?>

<?php //optional teaser intro text for guests ?>
<?php elseif ($params->get('show_noauth') == true AND  $user->get('guest') ) : ?>
<?php echo $this->item->introtext; ?>
<?php //Optional link to let them register to see the whole article. ?>
<?php if ($params->get('show_readmore') && $this->item->fulltext != null) :
$link1 = JRoute::_('index.php?option=com_users&view=login');
$link = new JURI($link1);?>
<p class="readmore">
<a href="<?php echo $link; ?>">
<?php $attribs = json_decode($this->item->attribs);  ?>
<?php
if ($attribs->alternative_readmore == null) :
echo JText::_('COM_CONTENT_REGISTER_TO_READ_MORE');
elseif ($readmore = $this->item->alternative_readmore) :
echo $readmore;
if ($params->get('show_readmore_title', 0)!= 0) :
    echo JHtml::_('string.truncate', ($this->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', ($this->item->title), $params->get('readmore_limit'));
endif; ?></a>
</p>
<?php endif; ?>
<?php endif; ?>
<?php echo $this->item->event->afterDisplayContent; ?>
</div>

<!--Закрытие общего фона для статьи-->
</div></div></div>
<!--Конец изменений-->
*

v-idea

  • Захожу иногда
  • 210
  • 35 / 0
Re: Внешний вид избранных материалов
« Ответ #6 : 15.11.2011, 22:24:43 »
Тааакс... Вообщем немного покопавшись пришёл к выводу, что куда бы Вы не вставляли код:

Цитировать
Дата публикации
Количество просмотров
и. т. д.

ни к чему это не приведёт. Здесь всё просто. Данный код "Вперёд/Назад" генерируется как всегда в жумла-классах, а именно в файле:
ваш_сайт\plugins\content\pagenavigation\pagenavigation.php (строка 193-198):

Код: php
if ($position) {
// Display after content.
$row->text .= $html;
} else {
// Display before content.
$row->text = $html . $row->text;
}

Здесь идёт пристыковка к переменной text (текстовая часть страницы) переменной $html (<ul class="pagenav">...</ul>, т.е. кнопки - "Вперёд/Назад")
А сам текст на странице выводит строка 146, файла default.php:

Код: php
<?php echo $this->item->text; ?>

Так, что я показал где и что! Вам осталось только как, т.е. дальше решить эту задачу.

Русифицированный компонент Widgetkit v1.0.2_27.02 Joomla! | Классический шаблон Rhuk Milkyway Ext 25 для Joomla 1.6/1.7/2.5/3.0
*

ivaniura

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Внешний вид избранных материалов
« Ответ #7 : 16.11.2011, 00:30:45 »
Так, что я показал где и что! Вам осталось только как, т.е. дальше решить эту задачу.
Ура! Получилось!
Заменил
Код
if ($position) {
// Display after content.
$row->text .= $html;
} else {
// Display before content.
$row->text = $html . $row->text;
}
на
Код
$row->html = $html;
и теперь чтобы вывести навигацию в любом месте статьи, достаточно прописать в файле default.php, где понравится, код
Код
<?php echo $this->item->html; ?>
Большое Вам спасибо за подсказку!
*

v-idea

  • Захожу иногда
  • 210
  • 35 / 0
Re: Внешний вид избранных материалов
« Ответ #8 : 16.11.2011, 12:23:34 »
Цитировать
Большое Вам спасибо за подсказку!

Пожалуйста! Молодец, сообразил!
Русифицированный компонент Widgetkit v1.0.2_27.02 Joomla! | Классический шаблон Rhuk Milkyway Ext 25 для Joomla 1.6/1.7/2.5/3.0
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Добавляем rel="canonical" в шаблоны материалов Joomla 1.7 - 2.5

Автор AmdAveO

Ответов: 126
Просмотров: 83129
Последний ответ 28.05.2019, 18:41:25
от Клим
Ja_teline_iv Добавление материалов напрямую с Сайта а не с Админки

Автор Mezik

Ответов: 1
Просмотров: 1649
Последний ответ 21.06.2017, 23:26:17
от Septdir
Шаблон TZ Portfolio. Выводит только 5 материалов с заданным размером

Автор AnnaSmirnova

Ответов: 2
Просмотров: 1399
Последний ответ 16.09.2015, 15:38:19
от AnnaSmirnova
Как изменить фон окна отображения материалов

Автор Alex Ray

Ответов: 6
Просмотров: 6134
Последний ответ 11.12.2014, 10:37:59
от Taatshi
Не отображается содержимое материалов в шаблоне YOO Nano (Joomla 1.7)

Автор vinni5898

Ответов: 28
Просмотров: 17715
Последний ответ 01.12.2014, 00:52:42
от webch