Новости Joomla

Вышел плагин CFI v.2.0.0 - экспорт/импорт материалов Joomla в таблицы.

Вышел плагин CFI v.2.0.0 - экспорт/импорт материалов Joomla в таблицы.

Плагин позволяет делать экспорт материалов Joomla в CSV файл, после чего вы можете отредактировать данные в табличном редакторе (например, Excel или OpenOffice Calc) и затем загрузить файл обратно. В некоторых случаях это удобнее и быстрее.

Плагин позволяет выгружать ID тегов, а также работать с пользовательскими полями материалов Joomla и обычно нередактируемыми свойствами материалов: просмотры, дата изменения и т.д.

Первые версии плагина CFI создал разработчик AlekVolsk для Joomline. Он разработал версии 1.0.0–1.0.16 для Joomla 3. Затем, в 2026 году, плагин был передан компании WebTolk для дальнейшего развития.

CFI v.2.0.0 — Что нового?

  1. Рефакторинг. Плагин полностью переписан заново.
  2. Новый интерфейс импорта/экспорта. Экспорт и импорт открываются в модальном окне. Появилась возможность выбора свойств материала, тегов и пользовательских полей для экспорта непосредственно перед началом экспорта.
  3. Фильтрация материалов при экспорте. Вы можете отфильтровать нужные материалы с помощью стандартных параметров поиска в панели администратора и экспортировать только их: избранные, опубликованные, материалы из определённых категорий, с заданным тегом и т.д.
  4. Импорт и экспорт всех данных материала. Ранее плагин позволял экспортировать только часть данных. Теперь можно изменять все данные материала, доступные в форме редактирования, включая нередактируемые (просмотры, дата изменения и др.). Это позволяет быстро обновлять meta-description или только данные пользовательских полей.
  5. Импорт только пользовательских полей. Обязательным полем для импорта остаётся только articleid. Это позволяет импортировать исключительно данные пользовательских полей без изменения основного содержимого материала.
  6. Joomla 6. Плагин переписан в соответствии с актуальной архитектурой Joomla 4+ и успешно протестирован на Joomla 6.
  7. Для разработчиков: предобработка плагинами. Возможна обработка данных собственными плагинами группы cfi непосредственно перед импортом или экспортом. Доступные события:
    • onExportPrepareData($event)
    • onImportPrepareArticleData($event)

Системные требования

  • Joomla 4.3+
  • PHP 8.1+

Для обновления со старых версий выпущен релиз 1.0.16, в котором добавлен новый сервер обновлений.

Ссылки

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

SmilingBull

  • Новичок
  • 4
  • 0 / 0
  • и смех, и грех ...
Добрый день!
Ситуация такая: по умолчанию в aiContactSafe существует автозаполнение поля на имя пользователя Joomla и Емайл пользователя Joomla

Хочу туда добавить еще Адрес1, который располагается в дополнительных сведениях о профиле.
Нашел в файлике  administrator\components\com_aicontactsafe\views\fields\view.html.php  код
Код: php-brief
// Joomla User name
$txtSelect = new stdClass;
$txtSelect->name = JText::_('COM_AICONTACTSAFE_JOOMLA_USER_NAME');
$txtSelect->type = 'UN';
$select_combo[] = $txtSelect;
// Joomla User email
$txtSelect = new stdClass;
$txtSelect->name = JText::_('COM_AICONTACTSAFE_JOOMLA_USER_EMAIL');
$txtSelect->type = 'UE';
$select_combo[] = $txtSelect;
добавил по образу и подобию
Код: php-brief
               // Joomla User address1 - ЭТОТ РАЗДЕЛ ДОБАВИЛ САМ
$txtSelect = new stdClass;
$txtSelect->name = JText::_('COM_AICONTACTSAFE_JOOMLA_USER_ADDRESS');
$txtSelect->type = 'UA';
$select_combo[] = $txtSelect;
         
Нашел в файлике components\com_aicontactsafe\views\message\view.html.php  код
Код: php-brief
if ($this->_user_id > 0 && strlen(trim($field->auto_fill)) > 0) {
switch($field->auto_fill) {
case 'UN' :
$postData_field_value = $joomla_user_name;
break;
case 'UE' :
$postData_field_value = $joomla_user_email;
break;
case 'UA' :
$postData_field_value = $joomla_user_address1;
break;
}
}
 

и добавил требуемый адрес

в этом же файле есть код
Код: php-brief
// get user informations
if ($this->_user_id > 0) {
$user = & JFactory::getUser();
$joomla_user_name = $user->get('name');
$joomla_user_email = $user->get('email');
$joomla_user_address1 = $user->get('profile.address1');   // добавил АДРЕС1
}

понимаю что так нельзя, т.к такого поля в таблице USERS нет, а нужно обратиться к таблице user_profiles и по ID пользователя выщемить Адрес1

Уважаемые, подскажите как это сделать!

Спасибо.
« Последнее редактирование: 12.12.2012, 08:24:02 от AL_ALEX »
*

SmilingBull

  • Новичок
  • 4
  • 0 / 0
  • и смех, и грех ...
Re: Автозаполнение полей
« Ответ #2 : 26.06.2012, 12:01:25 »
Гляньте эту тему
Отобразить данные из профиля пользователя.

благодарю за оперативность!

получился следующий код:
Код: php-brief
$db = JFactory::getDbo();
$db->setQuery(
'SELECT profile_key, profile_value FROM #__user_profiles' .
' WHERE user_id = '.(int) JFactory::getUser()->id." AND profile_key LIKE 'profile.%'" .
' ORDER BY ordering'
);
$results = $db->loadRowList();

$profile = array();
foreach ($results as $v)
{
$k = str_replace('profile.', '', $v[0]);
$profile[$k] = json_decode($v[1], true);
}

print_r($profile); // для проверки

$joomla_user_address1 = $profile['address1'];

Но есть магия! если в значении например адреса профиля пользователя содержаться только цифры то все работает! если же встречается пробел или любая другая буква, то поле остается пустым  :(
« Последнее редактирование: 26.06.2012, 12:47:20 от SmilingBull »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Автозаполнение полей
« Ответ #3 : 26.06.2012, 12:18:06 »
Код: php-brief
<?php
$db = JFactory::getDbo();
$db->setQuery(
'SELECT profile_key, profile_value FROM #__user_profiles' .
' WHERE user_id = '.(int) JFactory::getUser()->id." AND profile_key LIKE 'profile.%'" .
' ORDER BY ordering'
);
$results = $db->loadRowList();
$profile = array();
foreach ($results as $v)
{
$k = str_replace('profile.', '', $v[0]);
$profile[$k] = json_decode($v[1], true);
if ($profile[$k] === null)
{
$profile[$k] = $v[1];
}
}
$joomla_user_address1 = $profile['address1'];

?>
$profile['address1'], $profile['address2'], $profile['city'], $profile['region'], $profile['country'], $profile['postal_code'], $profile['phone'], $profile['website'], $profile['favoritebook'], $profile['aboutme'], $profile['dob']
/plugins/user/profile/profile.php
*

SmilingBull

  • Новичок
  • 4
  • 0 / 0
  • и смех, и грех ...
Re: Автозаполнение полей
« Ответ #4 : 26.06.2012, 12:57:05 »
а ларчик просто открывался!

Код: php-brief
	
jimport( 'joomla.user.helper' ); $userProfile = JUserHelper::getProfile();

$joomla_user_address1 = $userProfile->profile[address1];


Спасибо, дяде Федору за науку!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Форма обратной связи как всплывающий модуль?

Автор Лена)

Ответов: 11
Просмотров: 24781
Последний ответ 07.10.2015, 12:52:25
от dennjor
[Решено] aiContactSafe форму в тело страницы

Автор seveNN

Ответов: 30
Просмотров: 28037
Последний ответ 13.05.2014, 21:24:15
от jurassik
[Решено] не отображается CAPTCHA в aiContactSafe

Автор barbadui

Ответов: 48
Просмотров: 44264
Последний ответ 25.09.2013, 11:18:55
от pbrigadir
[Решено] Перестали прикрепляться файлы, показываться captcha, вслывающее окно

Автор siao

Ответов: 0
Просмотров: 5261
Последний ответ 10.09.2013, 10:57:45
от siao
[Решено] Как отправлять на несколько адресатов?

Автор Xolodno

Ответов: 4
Просмотров: 3672
Последний ответ 11.07.2013, 08:18:17
от prostoy