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

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Часто на нашем форуме пробегает вопрос - как сделать каталог с теми или иными полями. Рассмотрим в данном примере галерею от Datso. Все необходимое получается путем добавления некоторых нужных нам дополнительных полей для каждого изображения. Что мы хотим - добавить для каждого изображения параметр "место съемки"
Итак что нам требуется:
1 - новое поле в базе данных
2 - добавить поле в административной панели для редактирования параметра
3 - вывести его на экран для пользователя при просмотре среднего эскиза

добавление поля в базу данных
1 - добавляем поле в БД, назовем его к примеру - place, добавим сразу после поля "название картинки" (imgtitle)
Код
ALTER TABLE `meb_datsogallery` ADD `place` VARCHAR( 250 ) NOT NULL AFTER `imgtitle` ;

Добавить нужные переменные в административной части

2 - открываем файл globals.datsogallery.php, находим блок получения переменных из запроса (примерно с 71 строки) и добавляем строку
Код
$place = mosGetParam($_REQUEST, 'place', '');

3 - открываем class.datsogallery.php, находим блок class mosdatsogallery extends mosDBTable { }
и добавляем строку
Код
var $place=null;

4 - открываем файл admin.datsogallery.php и находим строку примерно 151
Код
$database->setQuery( "insert into #__datsogallery(....)
и добавляем в него по аналогии поле place и переменную $place, должно получиться что то вроде:
Код
$database->setQuery( "insert into #__datsogallery(id,catid,imgtitle,place,imgauthor,imgtext,imgdate,imgcounter,ordering,imgvotes,imgvotesum,published,imgfilename,imgthumbname,imgoriginalname,checked_out,owner,approved) VALUES (NULL,'$catid','$imgtitle','$place','$imgauthor','$imgtext','$imgdate','0','$ordering','0','0','1','med_$org_screenshot_name','tn_$org_screenshot_name','$org_screenshot_name','0','$my->username',1)" );

добавить дополнительное поле для редактирования в административную панель

5 - открываем файл admin.datsogallery.html.php, находим блок вывода формы редактирования изображения, примерно с 278 строки и по аналогии добавляем новую строку:
Код

<tr>
 <td width="20%"><b>Производитель (бренд):</b></td>
 <td width="80%">
 <input class="inputbox" type="text" name="place" size="39" maxlength="100" value="<?php echo htmlspecialchars( $row->place, ENT_QUOTES );?>" /></td>
</tr>

Добавить новое поле в фронтенд (то есть окно для пользователя при просмотре среднего эскиза)

6 - файл sub_viewdetails.php, находим блок $database->setQuery в строке 70 и добавляем строку
Код
. " a.place, "
чуть ниже есть собственно массив list, в него добавляем через запятую новую переменную из запроса $place
Дальше находим вывод всего добра на экран, примерно в строке 263 (начинается таблица), условий у нас никаких нет, просто добавляем результат выборки таким же образом:
Код
echo "<tr class='sectiontableentry2'><td width='30%' valign='top'><strong>Место где был сделан снимок:</strong></td>\n
<td width='70%' valign='top'>".$place."</td>\n</tr>\n"

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

По теме поднятой Juliett сделаю добавление:
Если необходимо сделать поле с датой (про формат поля в БД я сейчас не говорю) и кнопочку для показа календарика, то необходимо добавить вызов скриптов и стиля в файл admin.datsogallery.html.php перед новым полем, и добавить кнопку для календарика, то есть наш хак данного файла выглядит так:
Код

<tr>
 <td width="20%"><b>Производитель (бренд):</b></td>
 <td width="80%">
<link rel="stylesheet" type="text/css" media="all" href="../includes/js/calendar/calendar-mos.css" title="green" />
<script type="text/javascript" src="../includes/js/calendar/calendar.js"></script>
<script type="text/javascript" src="../includes/js/calendar/lang/calendar-en.js"></script>
<input class="inputbox" type="text" name="place" size="39" maxlength="100" value="<?php echo $row->place; ?>" />
<input type="reset" class="button" value="..." onClick="return showCalendar('place', 'y-mm-dd');"></td>
</tr>

Комментарии для версии 1.7.1 для Joomla 1.5 в режиме Legacy ниже
« Последнее редактирование: 30.03.2009, 06:05:19 от beliyadm »
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm

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

сразу помогу чайникам
Цитировать
ALTER TABLE `meb_datsogallery` ADD `place` VARCHAR( 250 ) NOT NULL AFTER `imgtitle` ;
meb - это префикс...обычно у всех  jos. не забудь поменять.
Некоторые файлы находятся тут administrator\components\com_datsogallery
« Последнее редактирование: 17.10.2007, 23:17:27 от Артур Викторович »
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
из фронтенда?
вносить аналогичные изменения в нужные файлы, сам этого не делал, но по аналогии думаю не сложно
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm

спасибо...я не знаю правльно ты меня понял или нет...
например:
посетитель добавляет изображение своей картины через фронтэнд и что-бы вписать реальный размер этой картины и описать технику исполнения нужны специальные поля.Вот что имел ввиду.ещё раз спасибо :)

так долго ковырялся но всё-таки разобрался...
    $place               = mosGetParam($_REQUEST, 'place, ''); ты после плэйс чёрточку вверху пропустил :)
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
так долго ковырялся но всё-таки разобрался...
действительно :) спасибо
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm

С последней строчкой что-то не то.У меня заработало только вот с такой (и в конце;) вставляю перед echo "</table>\n";

<td width='70%' valign='top'>".$row->place."</td>\n</tr>\n";
Благодаря таким вот форумам ,начинаешь втягиваться в интересный мир черточек и галочек :)
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
в массив новую переменную добавили как я писал? тогда все будет работать как описано
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm

да добавил..но не фурычит без .$row->place и всё....а как там начёт добавления данных в мои поля из фронтэнда?подскажи хотя-бы что где писать (по аналогии ,знаю...но все-же чуть по подробней)
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
странно, почему же у меня тогда работает :)
насчет добавления приношу извинения, в связи с большим проектом забросил галерею
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm

ну хотя бы двумя словами опиши примерно...просто для меня это очень важно
*

pantech

  • Новичок
  • 6
  • 0 / 0
Вижу автор темы очень занят. Попробую закончить данный вопрос, а  именно как сделать чтобы дополнительные поля использовались при добавлении и изменении изображения пользователем.

Итак:

Открываем файл: datsogallery.php

Находим строку - где-то №36. с кодом:
Код
$imgauthor           = trim( mosGetParam( $_POST, 'imgauthor', '' ) );

После нее вставляем:

Код
$place          = trim( mosGetParam( $_POST, 'place', '' ) );

Далее находим строки, где-то № 582 с кодом:

   
Код
echo "<tr class='sectiontableentry2'>\n";
    echo "<td valign='top' align='right'>"._DG_CATEGORY.":</td>\n";
    echo "<td>\n";
echo $clist;
    echo "<td valign='top'>" .mosToolTip( _DG_SHOWUPLOAD_2 )."</td>";
    echo "</td>\n";
    echo "</tr>\n";

После нее вставляем:


Код
echo "<td width='20%' align='right'> Производитель:</td>\n";
    echo "<td width='80%'>\n";
    echo "<input class='inputbox' type='text' name='place' size='50' maxlength='100' value='".htmlspecialchars(@$row->place, ENT_QUOTES)."' />";
   echo "<td valign='top'>" .mosToolTip( "Укажите производителя")."</td>";

     echo "</td>\n";
    echo "</tr>\n";

Далее находим строки, где-то № 673 с кодом:

   
Код
echo "<tr class='sectiontableentry2'>\n";
    echo "<td valign='top' align='right'>"._DG_CATEGORY.":</td>\n";
    echo "<td>\n";
echo $clist;
    echo "</td>\n";
    echo "</tr>\n";

После нее вставляем:

 
Код
echo "<tr class='sectiontableentry2'>\n";
    echo "<td width = '20%' align = 'right'>Производитель:</td>\n";
    echo "<td width = '80%'>";
    echo "<input class='inputbox' type='text' name='place' size='51' maxlength='100' value='".htmlspecialchars($row->place, ENT_QUOTES)."'/>";
    echo "</td>\n";
    echo "</tr>\n";

Точно также и со всеми остальными полями. Удачи!

« Последнее редактирование: 29.10.2007, 23:21:07 от beliyadm »

большое спасибо! очень помог.отличный форум и люди :)
*

FxPunter

  • Давно я тут
  • 691
  • 112 / 7
  • Э-эх!
А покажите :) как это будет выглядеть? Кто сделал.
*

sagemy

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Огромное спасибо beliyadm и pantech.
Я по вашему "мануалу" сделал - все Ок. Скоро бду размещать, сейчас в локали.


В продолжении темы (я уже задавал вопрос, и в коммерческой теме тоже - не ответили ленивые программисты :-)) ) - работа с созданными полями для селекции нужных объектов.

Плиз подскажите (ммм. такое подробное руководство вплоть до кодов не надо - не стоит время тратить, на уровне что где лежит) как сделать выборку двух видов (поиск что ли) по созданным полям:

1. Типа фильтр - например у меня определенное дополнительное поле с пред выбранными параметрами ( у меня например так и есть - админ выбирает из выпадающего списка до 60 значений и таких полей 3 у картинки) и при просмотре галлереи я хочу оставить для просмотра (сохранив существующую структуру каталогов) только те объекты поля которых что отвечают выбранному значению в фильтре (те же 60 штук значений например). Т.е я не делаю поиск в полном смысле, но каждый объект перед выводом проверяется на соответствие поля и выводится структура каталогов обычная с нужными объектами

Здесь меня интересует - какой файл в компоненте обрабатывает вывод объекта? я бы туда добавил просто проверку условия. Вроде просто если не ошибаюсь.
И еще куда лучше разместить фильтр - в структуру галлерии или это все равно? Переменную с любого места могу передать обработчику же?

2. Динамический зал (набрался терминов из Gallery2) - это уже вывод объектов в одну кучу - по типу результатов поиска. Например я опять таки выбираю из выпадающего поля (или просто я садист для посетителей своей страницы и у меня сбоку меню в 60 пунктов :-)) ) нужное значение и обработчик выводит в галерее в одной категории все работы без учета категорий и подкатегорий. При этом что бы я еще по одному полю бы выбор сделал и вышли бы еще более урезанные результаты - соответствующие первому и второму выбранному параметру.
вот такая вот задача.

Здесь вопросов больше. Кроме проверки соответствия условию и размещения в обработчике самого объекта как все завязано со структурой вывода. Даже не знаю что спрашивать здесь кроме общего вопроса - как?

Кажется это интересно. Разве что заинтересовать может тех кто создает галереи с большим  глубоко структурированным контентом...
*

sagemy

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Цитировать
2 - пишешь модуль и добавляешь новую функцию вывода по заданным в модуле параметрам

Ну вы даете :-))) Спасибо, но я понимаю конечно что краткость = СТ  (сестра таланта), но что бы так талантливо :-)))

beliyadm я на форуме смотрел ваши посты, по многим (и еще там один smart по моему) сам можно сказать учился. Плиз если найдете время все таки подробнее. Я не знаю чесно говоря как написать модуль, не зная какие элементы задействовать

Цитировать
1 - не понял идеи
скажем так. Я каким то образом задал значение переменной (или даже нескольких - у меня это планируется выпадающие поля фильтра). И вот я хожу по галерее - например в какой то категории есть 3 картинки - у 2х из них дополнительные поля отвечают значениям соответствующих переменных , вот зайдя в категорию я и увижу только эти две фото и так по всей галерее. Джаст фильтр.

Это я могу сам сделать - просто скажи в каком файле в датсо проверяется при выводе (или не выводе) картинки при просмотре например параметр поля из базы "опубликовано или неопубликованное" - я думаю я вполне могу туда засунуть проверку на соответствие моим заданным условиям.

Заранее спасибо за проявленный интерес. И ответ в любой форме.
*

FxPunter

  • Давно я тут
  • 691
  • 112 / 7
  • Э-эх!
Ребята, кто делал для версии 1,6 приведете вставку, предложенного в первом посте, кодов
*

FxPunter

  • Давно я тут
  • 691
  • 112 / 7
  • Э-эх!
попробовала я, поле появилось :)
Но вот количество просмотров у меня стало таким: 12589652350 и не пойму, почему в админке оно для заполнения не появилось :(

Это всё хорошо. Однако, есть проблемы.
Решил я добавить дополнительное поле на к фотографии, а к категории. Чтобы во фронтенде в списке категорий отображался короткий текст, а при выборе категории - длинный. Собственно, добавляем поле "Короткий текст".
Задача: ввод производится в админке в стандартном поле типа TEXTAREA. Никакого визуального редактора не нужно. Самая главная проблема: перед вводом данных в базу значение этого поля должно обрабатываться функциями nl2br,strip_tags,substr. В итоге получаем сплошной текст без тегов и переносов строк длиной не более 300 символов.
Собственно, разобрался, где и что добавить. Поле есть, данные добавляются и изменяются, во фронтенде выводятся корректно. Но вот обработать значение данного поля я не могу!
Подскажите, как это сделать.

Пара фрагментов для пояснения своих слов.
1. Поле в admin.datsogallery.html.php
Код
<tr>
<td valign="top" ><b><?php echo _DG_CAT_TITLE; ?>:</b><br><i><?php echo _DG_CAT_TITLE_DESCRIPTION; ?></i></td>
<td nowrap ><textarea name="ttitle" cols="100" rows="5"><? echo $row->ttitle; ?></textarea></td>
</tr>
Всё работает.

2. Внимание! В admin.datsogallery.php функция записи данных выглядит так:
Код
function saveCatg( $option, $task )
{
global $database, $my;
$row = new mosCatgs( $database );
if (!$row->bind( $_POST )) {
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit(); }
mosMakeHtmlSafe($row->name);
if ($row->parent == $row->cid) {
mosRedirect( "index2.php?option=$option&task=showcatg", _DG_SUBCAT_SELECT_ERROR );
}
if (!$row->check()) {
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit(); }
if (!$row->store()) {
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit(); }
$row->checkin();
$row->updateOrder( "" );
mosRedirect( "index2.php?option=$option&task=showcatg" );
}
Если закомментировать последний редирект и добавить строку типа
Код
echo $row->ttitle;
то данные исправно выводятся на экран (т.е.переменная существует и с ней можно работать). Я хочу обработать данную переменную такой конструкцией:
Код
$row->ttitle=strip_tags(nl2br($row->ttitle));
Это ничего не даёт, в базу данных добавляется первоначальное значение (с тегами и переносами). В чём я неправ?
*

mijsvit

  • Захожу иногда
  • 137
  • 7 / 0
Как насчет безопасности использования даных полей? Я имею ввиду sql-запросы и другие методы взлома?
Спасибо.
*

C.VIP

  • Новичок
  • 3
  • 3 / 0
  • Не, ну может быть....
Думаю с ними безопасноть будет выше, чем со стандартными, ибо стандартные запросы известны, а вот что вы там понаписали на новые нет....
*

Konstantin

  • Новичок
  • 8
  • 0 / 0
добавление поля в базу данных
1 - добавляем поле в БД, назовем его к примеру - place, добавим сразу после поля "название картинки" (imgtitle)
Код
ALTER TABLE `meb_datsogallery` ADD `place` VARCHAR( 250 ) NOT NULL AFTER `imgtitle` ;

Подскажите пожалуйста, как добавить новое поле в БД, это делается в PHP my Admin или прописывается в файлах Datso Gallery?
Заранее благодарен:)
*

FxPunter

  • Давно я тут
  • 691
  • 112 / 7
  • Э-эх!
*

Konstantin

  • Новичок
  • 8
  • 0 / 0

Спасибо beliyadm за дельные рекомнедации.

Пробовал на DatsoGallery 1.62. Поле добавилось, в админке редактировалосб, с выводом не получилось, пока.

Я добавлял поле keywords (ключевые слова). Большинство поисковиков, тот же yandex индексирует картинки по тегу "alt". Иметь галлерею, которая не "светится" в поисковиках фотографу смысла нет. По умолчанию в DatsoGallery подставляется название фото. Никто не подскажет, как подставить название фото + ключевые слова?
« Последнее редактирование: 05.06.2008, 10:50:06 от wrs »
*

yunoshev

  • Завсегдатай
  • 1271
  • 179 / 1
А покажите :) как это будет выглядеть? Кто сделал.

Показываю: Мебельный сайт средствами DatsoGallery :)
*

kommunizm

  • Осваиваюсь на форуме
  • 32
  • 6 / 0
Добрый день, у меня такой вопрос - Возможен ли перевод дополнтельных полей внесеных данным способом JoomFish компонентом (с установленными файлами для datsogallery). И естественно если да то какие изменения внести в коде, или какие таблицы добавить в базу данных для возможности перевода дополнительно созданных полей.
*

yunoshev

  • Завсегдатай
  • 1271
  • 179 / 1
Добрый день.
Нужно создать файл типа \administrator\components\com_joomfish\contentelements\datsogallery_catg.xml (или добавить в него) примерно с таким содержимым:
Код
<?xml version="1.0" ?>
<joomfish type="contentelement">
<name>DatsoGallery - Квартиры</name>
<author>Yunoshev Victor</author>
<version>1.0</version>
<description>Definition for DatsoGallery Category</description>
<reference>
<table name="datsogallery_catg">
<field type="referenceid" name="cid" translate="0">ID</field>
<field type="titletext" name="name" translate="1">Имя</field>
<field type="text" name="street" translate="1">Улица</field>
<field type="text" name="floor" translate="1">Этаж</field>
<field type="text" name="area" translate="1">Площадь</field>
<field type="text" name="water" translate="1">Вода</field>
<field type="htmltext" name="comforts" translate="1">Удобства</field>
<field type="htmltext" name="description" translate="1">Описание</field>
</table>
</reference>
</joomfish>
где street, floor, area, water, comforts -- новые поля в Вашей базе данных в таблице #__datsogallery_catg.

Данный пример относится к JoomFish v.1.7
*

kommunizm

  • Осваиваюсь на форуме
  • 32
  • 6 / 0
yunoshev  :D Благодарю за скорый ответ.

И еще при оставление комментарий в datso - можно ли сделать доступным и не зарегестрированным пользователям и сначало отправлять комментраий на проверку администратору, и уже послу администратор публикует комментарии?
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
И еще при оставление комментарий в datso - можно ли сделать доступным и не зарегестрированным пользователям и сначало отправлять комментраий на проверку администратору, и уже послу администратор публикует комментарии?
я думаю что лучше поставить компонент jcomment, интеграция в datso описана здесь - функционала в нем намного больше (в том числе и премодерация)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Постраничная навигация для Datso 1.8.1 (page navigation)

Автор beliyadm

Ответов: 12
Просмотров: 9363
Последний ответ 16.02.2011, 21:44:01
от Aalia
[DownLoad] Datso Gallery + New Userpannel /Joomla 1.5.x

Автор ershovdz

Ответов: 115
Просмотров: 63291
Последний ответ 02.10.2010, 18:58:14
от icy-heart
Модификация datso

Автор Iven

Ответов: 4
Просмотров: 3103
Последний ответ 22.05.2009, 15:24:40
от Iven
Datso 1.5 ошибка в обработке имени файла. Найдено решение.

Автор Фей

Ответов: 6
Просмотров: 3177
Последний ответ 24.07.2008, 14:24:42
от PaLyCH
Убрать заголовок категории в Datso

Автор Melnikoff

Ответов: 1
Просмотров: 3301
Последний ответ 23.07.2007, 03:49:47
от put_nik