Новости Joomla

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

👩‍💻 Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1. Это релиз, в который включены уже проверенные изменения, но ещё очень многие исправления и улучшения ждут своей очереди. Joomla следит за качеством и безопасностью своего кода и каждое изменение должно быть успешно протестировано как минимум ещё двумя участниками сообщества. Разработка Joomla ведётся на платформе GitHub.Филипп Уолтон (Philip Walton) - один из разработчиков, кто активно вносит свой вклад в ядро Joomla. Он уже несколько месяцев посвящает свои послеполуденные часы пятницы работе с Joomla и предлагает присоединиться к нему. 📆 Пятница, 30 мая 2025, с 15:00 до 17:00 по UTC (Лондон) - с 18:00 до 20:00 по Москве.В чате Google Meet Филипп готов помочь с тестированием тем, кто будет делать это в первый раз. А так же он подготовил список лёгких Pull Request, которые можно протестировать довольно быстро. Чем больше тестов будет проведено сейчас, тем меньше ошибок вылезет потом. На данный момент 148 (уже 147 на момент написания заметки) PR на GitHub Joomla ждут тестирования.👩‍💻 Open to all. All together.Также вам поможет сделать первые шаги это видео.GitHub JoomlaДа, это вечер пятницы. Но тестирование занимает порой минут 15, а доброе дело сделано. Просто убедитесь, что разработчик чего-то не пропустил и всё работает как ожидается.#joomla #joomla6 #community

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

Sl@vk@

  • Захожу иногда
  • 147
  • 2 / 0
Добрый день! У меня возникла следующая проблема.

Я пишу компонент туров. Его дефолтная страница (в админке) выглядит так:


Все данные хранятся в одной таблице, а наименования категорий - в другой. Связываются они по средствам ключа id_cat. На этой странице я смог по айдишнику обратиться ко второй таблице и вместо цифры поставить связанную с этим номеров наименование категории. В модели я прописал всего лишь 2 строчки к выборке данных
Код
$query->select('b.id_cat AS id_cat, b.name_cat AS name_cat');
$query->join('LEFT', '`#__tourism_category` AS b ON b.id_cat = a.id_cat');
При клике на тур открывается редактирование тура. Как подставить данные и как их отобразить хранится в xml-файле
Код
<?xml version="1.0" encoding="utf-8"?>
<form addrulepath="/administrator/components/com_tourism/models/rules">
 
<fieldset>
 <field
 name="id_tours"
 type="hidden"
 />
 
 <field
 name="name_tours"
 type="text"
 label="COM_TOURISM_RAZDEL"
 size="40"
 default=""
 />
 
  <field
 name="alias_tours"
 type="text"
 label="COM_TOURISM_ALIAS"
 size="40"
 default=""
 />
 
 <field
 name="published"
 type="list"
 label="JSTATUS"
 class="inputbox"
 size="1"
 default="1">
 <option value="1">JPUBLISHED</option>
 <option value="0">JUNPUBLISHED</option>
 </field>
 
 <field
 name="description_tours"
 type="editor"
 label="COM_TOURISM_DESCRIPTION_TOURS"
 buttons="true" />
 
 <field
 name="id_cat"
 type="category"
 extension="com_tourism_category"
label="COM_TOURISM_CATEGORY_TOURS"
description="COM_TOURISM_CATEGORY_TOURS1"
class="inputbox"
required="true">
</field>

 
 </fieldset>
</form>

Как мне сделать так, что при редактировании список категорий появлялся в виде выпадающей ленты? Я ж в XML обратиться к другой таблице не могу... Где надо что добавить, что список этот сформировался автоматически?
*

Sl@vk@

  • Захожу иногда
  • 147
  • 2 / 0
Да мне все гораздо проще надо... Вот смотрите до чего я додумался. В .xml файле вы уже работаем с обработанными данными. А кто мне скажет где эти данные выбираются из БД. Я полагал в models/fields/mycomponent.php...  Но полностью убрав функцию  protected function getOptions() я с ужасом обнаружил, что ничего не поломалось... Зато если убрать в tables/mycomponent.php код
Код
function __construct(&$db)
 {
 parent::__construct('#__tourism_tours', 'id_tours', $db);

 }

то все перестает работать.... Это как раз логично... Но где жемне добавить join к выборке из БД, чтоб прикрепить к выборке данные из второй таблички. Напоминю, что я работаю же с редактированием конкретного объекта....
*

Postf

  • Новичок
  • 2
  • 2 / 0
Добрый день!

В модели я прописал всего лишь 2 строчки к выборке данных
Код
$query->select('b.id_cat AS id_cat, b.name_cat AS name_cat');
$query->join('LEFT', '`#__tourism_category` AS b ON b.id_cat = a.id_cat');

Хотел посмотреть полний листинг файла.

п.с. посоветуйте что почитать про разработку компонентов для работы с базами данных
*

Sl@vk@

  • Захожу иногда
  • 147
  • 2 / 0
Добрый день!

Хотел посмотреть полний листинг файла.

п.с. посоветуйте что почитать про разработку компонентов для работы с базами данных
Вот полный листинг файла, который вы хотите посмотреть. Про работу БД с Joomla 1.7 лучше мануала я ничего не видел. Набери в Яндексе "Joomla API" - и первая или вторая ссылка пойдет на мануал - там выберите работу с БД и читайте, как что работает. Будут вопросы - пишите в личку - чем смогу помогу.
Код
<?php
// Модель отображение всех туров. Модель отвечает за работу с БД

// Запрет к прямому доступу.
defined('_JEXEC') or die('Restricted access');

// Импорт Joomla библиотеки modellist
jimport('joomla.application.component.modellist');

// Класс модели
class TourismModelTourisms extends JModelList
{

// Конструктор. Данная функция формирует данные для сортировки
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array
(
'id_tours', 'a.id_tours',
'name_tours', 'a.name_tours',
'ordering', 'a.ordering',
'published', 'a.published',
'id_cat', 'a.id_cat'
);
}
parent::__construct($config);
}

//Метод для автоматического заполнения model state
protected function populateState($ordering = null, $direction = null)
{
// Initialise variables.
$app = JFactory::getApplication('administrator');

// List state information.
parent::populateState('a.name_tours', 'asc');
}

//Метод загрузки и возвращения данных из БД
protected function getListQuery()
{
// Создаём новый объект запроса к БД
$db = $this->getDbo();
$query = $db->getQuery(true);

// Выбираем нужные поля из таблицы (выбираем все поля)
$query->select
(
$this->getState
(
'list.select',
'*'
)
);

// Выбираем таблицу, содержащую поля и префикс данных для работы с полученными данными в будущем
$query->from('`#__tourism_tours` AS a');

$query->select('b.id_cat AS id_cat, b.name_cat AS name_cat');
$query->join('LEFT', '`#__tourism_category` AS b ON b.id_cat = a.id_cat');

$orderCol = $this->state->get('list.ordering');
$orderDirn = $this->state->get('list.direction');
if ($orderCol == 'ordering' || $orderCol == 'category_title')
{
$orderCol = 'category_title '.$orderDirn.', ordering';
}
$query->order($db->getEscaped($orderCol.' '.$orderDirn));
return $query;
}
}
*

Sl@vk@

  • Захожу иногда
  • 147
  • 2 / 0
frisian, сейчас попробую сделать как вы сказали... Хотя мне кажется, что вариант с join был бы лучше. Но если в данном случае у Joomla так не принято - то буду довольствоваться тем, что есть.
*

Sl@vk@

  • Захожу иногда
  • 147
  • 2 / 0
Простите, но в чем извращение? Извращение в том, что я хочу сократить код? В том, что я хочу сделать выборку из таблицы  и рядом с ней "приклеить" еще одну выборку и работать с получившимся результатом как с единым целым, а не писать кучу лишних условий?

Мне надо сделать, что категории работали по принципу "Менеджера материалов". Я зашел в менеджер категорий, создал 5-6 категорий, а потом при добавлении нового объекта мне предлагался выпадающий список с этими самыми категориями.... Я попылся посмотреть, как это реализовано в com_content, но честно так и не смог разобраться... Но там между прочим эти самые join используются только так.
*

Sl@vk@

  • Захожу иногда
  • 147
  • 2 / 0
« Последнее редактирование: 08.03.2012, 23:57:52 от Sl@vk@ »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

MVC, работа с видами

Автор borodatych

Ответов: 23
Просмотров: 1984
Последний ответ 06.04.2015, 14:53:12
от b2z
Создание категорий для записей в компоненте

Автор popoff17

Ответов: 3
Просмотров: 1414
Последний ответ 03.04.2014, 21:13:18
от popoff17
Работа с датой, дата в родительском падеже

Автор Xiss

Ответов: 4
Просмотров: 2431
Последний ответ 27.02.2014, 19:13:43
от Xiss
[Решено] Работа со сторонним модулем из своего компонента

Автор st.al

Ответов: 5
Просмотров: 1442
Последний ответ 20.06.2013, 17:35:04
от st.al
Работа с несколькими таблицами базы данных на одной странице редактирования материала Joomla

Автор Extalionez

Ответов: 6
Просмотров: 5559
Последний ответ 02.12.2012, 16:14:53
от rsa_m