Новости 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 Гость просматривают эту тему.
  • 10 Ответов
  • 2083 Просмотров
*

Chigolberi

  • Захожу иногда
  • 464
  • 12 / 0
Всем привет!

Чтобы получить два макета формы добавления материалов, переопределил два раза макет:
Спойлер
[свернуть]
В результате получаю два файла макета в папке \templates\protostar\html\com_content\form\edit.php и edit-custom.php (имя файла изменил, было edit-многоцифр.php)

Макет edit.php сразу работает по умолчанию, а как мне назначить макет edit-custom.php для определённой категории ?
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Макет edit.php сразу работает по умолчанию, а как мне назначить макет edit-custom.php для определённой категории ?
В макете edit.php где-нибудь сверху прописать условие на вашу категорию и в нем:
Код
if(ваше-условие-подключения-кастомного-макета){
   include('edit-custom.php');
   return false;
}
А "много цифр" - это была дата бэкапа макета.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Chigolberi

  • Захожу иногда
  • 464
  • 12 / 0
В макете edit.php где-нибудь сверху прописать условие на вашу категорию и в нем:
Если не трудно, можно код как это условие прописать в if
Алиас категории: instruktsii, ID 11 (в этой категории будет использован макет edit-custom.php)

куда лучше вверху прописать, чтобы не было конфликтов макетов, вот файл макета edit.php
Код
<?php
/**
 * @package     Joomla.Site
 * @subpackage  com_content
 *
 * [member=126442]copyright[/member]   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

JHtml::_('behavior.tabstate');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
JHtml::_('formbehavior.chosen', '#jform_catid', null, array('disable_search_threshold' => 0));
JHtml::_('formbehavior.chosen', '#jform_tags', null, array('placeholder_text_multiple' => JText::_('JGLOBAL_TYPE_OR_SELECT_SOME_TAGS')));
JHtml::_('formbehavior.chosen', 'select');
$this->tab_name = 'com-content-form';
$this->ignore_fieldsets = array('image-intro', 'image-full', 'jmetadata', 'item_associations');

// Create shortcut to parameters.
$params = $this->state->get('params');

// This checks if the editor config options have ever been saved. If they haven't they will fall back to the original settings.
$editoroptions = isset($params->show_publishing_options);

if (!$editoroptions)
{
$params->show_urls_images_frontend = '0';
}

JFactory::getDocument()->addScriptDeclaration("
Joomla.submitbutton = function(task)
{
if (task == 'article.cancel' || document.formvalidator.isValid(document.getElementById('adminForm')))
{
" . $this->form->getField('articletext')->save(). "
Joomla.submitform(task);
}
}
");
?>
<div class="edit item-page<?php echo $this->pageclass_sfx; ?>">
<?php if ($params->get('show_page_heading')) : ?>
<div class="page-header">
<h1>
<?php echo $this->escape($params->get('page_heading')); ?>
</h1>
</div>
<?php endif; ?>

<form action="<?php echo JRoute::_('index.php?option=com_content&a_id=' . (int) $this->item->id); ?>" method="post" name="adminForm" id="adminForm" class="form-validate form-vertical">
<fieldset>
<?php echo JHtml::_('bootstrap.startTabSet', $this->tab_name, array('active' => 'editor')); ?>

<?php echo JHtml::_('bootstrap.addTab', $this->tab_name, 'editor', JText::_('COM_CONTENT_ARTICLE_CONTENT')); ?>
<?php echo $this->form->renderField('title'); ?>

<?php if (is_null($this->item->id)) : ?>
<?php echo $this->form->renderField('alias'); ?>
<?php endif; ?>

<?php echo $this->form->getInput('articletext'); ?>

<?php if ($this->captchaEnabled) : ?>
<?php echo $this->form->renderField('captcha'); ?>
<?php endif; ?>
<?php echo JHtml::_('bootstrap.endTab'); ?>

<?php if ($params->get('show_urls_images_frontend')) : ?>
<?php echo JHtml::_('bootstrap.addTab', $this->tab_name, 'images', JText::_('COM_CONTENT_IMAGES_AND_URLS')); ?>
<?php echo $this->form->renderField('image_intro', 'images'); ?>
<?php echo $this->form->renderField('image_intro_alt', 'images'); ?>
<?php echo $this->form->renderField('image_intro_caption', 'images'); ?>
<?php echo $this->form->renderField('float_intro', 'images'); ?>
<?php echo $this->form->renderField('image_fulltext', 'images'); ?>
<?php echo $this->form->renderField('image_fulltext_alt', 'images'); ?>
<?php echo $this->form->renderField('image_fulltext_caption', 'images'); ?>
<?php echo $this->form->renderField('float_fulltext', 'images'); ?>
<?php echo $this->form->renderField('urla', 'urls'); ?>
<?php echo $this->form->renderField('urlatext', 'urls'); ?>
<div class="control-group">
<div class="controls">
<?php echo $this->form->getInput('targeta', 'urls'); ?>
</div>
</div>
<?php echo $this->form->renderField('urlb', 'urls'); ?>
<?php echo $this->form->renderField('urlbtext', 'urls'); ?>
<div class="control-group">
<div class="controls">
<?php echo $this->form->getInput('targetb', 'urls'); ?>
</div>
</div>
<?php echo $this->form->renderField('urlc', 'urls'); ?>
<?php echo $this->form->renderField('urlctext', 'urls'); ?>
<div class="control-group">
<div class="controls">
<?php echo $this->form->getInput('targetc', 'urls'); ?>
</div>
</div>
<?php echo JHtml::_('bootstrap.endTab'); ?>
<?php endif; ?>

<?php echo JLayoutHelper::render('joomla.edit.params', $this); ?>

<?php echo JHtml::_('bootstrap.addTab', $this->tab_name, 'publishing', JText::_('COM_CONTENT_PUBLISHING')); ?>
<?php echo $this->form->renderField('catid'); ?>
<?php echo $this->form->renderField('tags'); ?>
<?php echo $this->form->renderField('note'); ?>
<?php if ($params->get('save_history', 0)) : ?>
<?php echo $this->form->renderField('version_note'); ?>
<?php endif; ?>
<?php if ($params->get('show_publishing_options', 1) == 1) : ?>
<?php echo $this->form->renderField('created_by_alias'); ?>
<?php endif; ?>
<?php if ($this->item->params->get('access-change')) : ?>
<?php echo $this->form->renderField('state'); ?>
<?php echo $this->form->renderField('featured'); ?>
<?php if ($params->get('show_publishing_options', 1) == 1) : ?>
<?php echo $this->form->renderField('publish_up'); ?>
<?php echo $this->form->renderField('publish_down'); ?>
<?php endif; ?>
<?php endif; ?>
<?php echo $this->form->renderField('access'); ?>
<?php if (is_null($this->item->id)) : ?>
<div class="control-group">
<div class="control-label">
</div>
<div class="controls">
<?php echo JText::_('COM_CONTENT_ORDERING'); ?>
</div>
</div>
<?php endif; ?>
<?php echo JHtml::_('bootstrap.endTab'); ?>

<?php echo JHtml::_('bootstrap.addTab', $this->tab_name, 'language', JText::_('JFIELD_LANGUAGE_LABEL')); ?>
<?php echo $this->form->renderField('language'); ?>
<?php echo JHtml::_('bootstrap.endTab'); ?>

<?php if ($params->get('show_publishing_options', 1) == 1) : ?>
<?php echo JHtml::_('bootstrap.addTab', $this->tab_name, 'metadata', JText::_('COM_CONTENT_METADATA')); ?>
<?php echo $this->form->renderField('metadesc'); ?>
<?php echo $this->form->renderField('metakey'); ?>
<?php echo JHtml::_('bootstrap.endTab'); ?>
<?php endif; ?>

<?php echo JHtml::_('bootstrap.endTabSet'); ?>

<input type="hidden" name="task" value="" />
<input type="hidden" name="return" value="<?php echo $this->return_page; ?>" />
<?php echo JHtml::_('form.token'); ?>
</fieldset>
<div class="btn-toolbar">
<div class="btn-group">
<button type="button" class="btn btn-primary" onclick="Joomla.submitbutton('article.save')">
<span class="icon-ok"></span><?php echo JText::_('JSAVE')?>
</button>
</div>
<div class="btn-group">
<button type="button" class="btn" onclick="Joomla.submitbutton('article.cancel')">
<span class="icon-cancel"></span><?php echo JText::_('JCANCEL')?>
</button>
</div>
<?php if ($params->get('save_history', 0) && $this->item->id) : ?>
<div class="btn-group">
<?php echo $this->form->getInput('contenthistory'); ?>
</div>
<?php endif; ?>
</div>
</form>
</div>
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Если не трудно, можно код как это условие прописать в if
Алиас категории: instruktsii, ID 11 (в этой категории будет использован макет edit-custom.php)
Какой путь к странице редактирования? Что выводит на ней команда echo '<pre>'.print_r($_REQUEST,1).'</pre>'; ?

куда лучше вверху прописать, чтобы не было конфликтов макетов, вот файл макета edit.php
Можно вставлять перед сразу после этого:
Код
defined('_JEXEC') or die;

А можно и ниже, после всех подключений, но до верстки. в этом случае в edit-custom.php подключения можно не дублировать, а вставить только ту часть, которая ниже условия (все, что выше, будет доступно и из подключенного файла).
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Chigolberi

  • Захожу иногда
  • 464
  • 12 / 0
Какой путь к странице редактирования? Что выводит на ней команда echo '<pre>'.print_r($_REQUEST,1).'</pre>'; ?
Добавил в edit.php
Код
<?php echo '<pre>'.print_r($_REQUEST,1).'</pre>'; ?>
Результат:
Код
Array
(
    [view] => form
    [layout] => edit
    [return] => aHR0cDovL3hlb25saXZlLnJ1Lw==
    [Itemid] => 103
    [option] => com_content
    [a_id] => 0
)

Если в файл edit.php добавить:
Код
<pre><?php print_r($this); ?></pre>
Вижу нужное значение [catid] => 11 в начале кода:
Код
ContentViewForm Object
(
    [form:protected] => Joomla\CMS\Form\Form Object
        (
            [data:protected] => Joomla\Registry\Registry Object
                (
                    [data:protected] => stdClass Object
                        (
                            [title] =>
                            [alias] =>
                            [articletext] =>
                            [com_fields] => stdClass Object
                                (
                                    [logotip] =>
                                    [dopolnitel-naya-informatsiya] =>
                                )

                            [catid] => 11
                            [note] =>
                            [version_note] =>
                            [created_by_alias] =>
                            [state] => 1
                            [featured] => 0
                            [publish_up] =>
                            [publish_down] =>
                            [access] => 1
                            [language] => *
                            [metadesc] =>
                            [metakey] =>
                            [id] => 0
Может это как то использовать
« Последнее редактирование: 26.06.2020, 10:29:45 от Chigolberi »
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Результат:
Из этого не получится вычислить с какой страницы был переход. В return хранится только имя домена. Если есть возможность - добавьте в ссылку на форму параметр, по которому можно будет определять.

Еще можно попробовать сделать 2 разных пункта меню на эту форму, у второго в параметрах выбрать "Специальная категория" и выбрать вашу категорию. По идее, это должно срабатывать именно из той категории и можно будет определять форму по ИД пункта меню. А может даже получится сразу задать другой макет для этого пункта через "Стиль шаблона".
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Chigolberi

  • Захожу иногда
  • 464
  • 12 / 0
Еще можно попробовать сделать 2 разных пункта меню на эту форму, у второго в параметрах выбрать "Специальная категория" и выбрать вашу категорию. По идее, это должно срабатывать именно из той категории и можно будет определять форму по ИД пункта меню.
Такой вариант мне подходит, спасибо, работает  *DRINK*, код:
Код
if($_REQUEST['Itemid'] == 103){
   include('edit-custom.php');
   return false;
}
Я вам чуть выше написал как можно увидеть id категории, при смене категории в форме добавления, то и id меняется на соответствующий id категории, это нельзя как то использовать? Но если можно будет, тогда получается нужно будет условие выставлять и в других макетах, чтобы тоже работала смена макета?
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
можно увидеть id категории, при смене категории в форме добавления
Но ведь это уже на загруженной форме? При смене категории страница не перезагружается? Если надо менять в динамике в зависимости от выбора в селекте уже загруженной форме, то придется делать иначе. Либо перезагружать форму, либо делать show/hide для части полей, подключать аяксы и т.п.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Chigolberi

  • Захожу иногда
  • 464
  • 12 / 0
Но ведь это уже на загруженной форме?
Да, на загруженной форме.
При смене категории страница не перезагружается?
Перезагружается, и поля в соответствии с их настройками прав (в какой категории им разрешено отображаться).
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Перезагружается, и поля в соответствии с их настройками прав (в какой категории им разрешено отображаться).
Тогда можно, наверное. Но это надо смотреть что там. Гадать на пальцах не продуктивно ) А на своих сайтах такого нет.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Chigolberi

  • Захожу иногда
  • 464
  • 12 / 0
Тогда можно, наверное. Но это надо смотреть что там. Гадать на пальцах не продуктивно ) А на своих сайтах такого нет.
Понятно, пока ваш вариант устраивает  ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Валидация формы с загрузкой файлов на сервер

Автор kuliev

Ответов: 4
Просмотров: 754
Последний ответ 17.01.2025, 14:38:44
от kuliev
[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 949
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
Переход на страницу материала после его размещения пользователем

Автор stepan39

Ответов: 0
Просмотров: 607
Последний ответ 22.11.2024, 07:14:15
от stepan39
Вывод даты материала в списке тегов

Автор androv77

Ответов: 2
Просмотров: 1719
Последний ответ 09.11.2023, 16:33:08
от denxio
Вывод дополнительного поля материала в модуле

Автор timofe

Ответов: 10
Просмотров: 2313
Последний ответ 06.10.2023, 14:02:24
от Mitriy