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

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Охота сделать так чтобы за просмотр профиля CB его хозяину начислялись очки.
Прочитал инструкцию на оффсайте разработчиков.

Сделал вот это:
Включил добавление очков за ежедневные входы.(Регистрация и авторизация у меня стоит CB-ровская, Joomla-вская отключена по всем правилам.)

установил плагин, текст ниже:

Код
<?xml version="1.0" encoding="utf-8"?>
<alphauserpoints type="plugin">
    <rule>Count hits for user</rule>
    <description>Adds points when cb profile view</description>
    <component>com_comprofiler</component>
    <plugin_function>plgaup_newhitscbprofile</plugin_function>
    <fixed_points>true</fixed_points>
</alphauserpoints>

Alpha UserPoints позволил установить и включить сей плагин.
Странно но в таблицу базы данных название компонента не занеслось, занес вручную.

Далее в файле /public_html/administrator/components/com_comprofiler/comprofiler.class.php
поискал где идет обновление посещений профиля в базе данных, решил что могу привязаться к выполнению данной функции, код приведен ниже

строка 2843

Код
function _incHits($profileId) {
global $_CB_database;
$_CB_database->setQuery("UPDATE #__comprofiler SET hits=(hits+1) WHERE id=" . (int) $profileId);
if (!$_CB_database->query()) {
echo "<script type=\"text/javascript\"> alert('UpdateHits: ".$_CB_database->getErrorMsg()."');</script>\n";
// exit();
}

}

заменил данный код на

Код
function _incHits($profileId) {
global $_CB_database;
$_CB_database->setQuery("UPDATE #__comprofiler SET hits=(hits+1) WHERE id=" . (int) $profileId);
// Начало. Система получения очков за просмотры профиля.
//*******************************************************
$api_AUP = JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
if ( file_exists($api_AUP))
{
require_once ($api_AUP);
$aupid = AlphaUserPointsHelper::getAnyUserReferreID( $profileId );
if ( $aupid )  AlphaUserPointsHelper::newpoints( 'plgaup_hitscbprofile', $aupid);
}
//*******************************************************
// Конец. Система получения очков за просмотры профиля
if (!$_CB_database->query()) {
echo "<script type=\"text/javascript\"> alert('UpdateHits: ".$_CB_database->getErrorMsg()."');</script>\n";
// exit();
}

}

Авторизируюсь на сайте, и одновременно просматриваю статистику в админке.
Так вот за ежедневные входы начисление идет, а вот по моему плагину система не отрабатывает, начисления очков не идет.

Подскажите пожалуйста где ошибка(только не надо говорить что в ДНК  ^-^ )

Заранее благодарен.
« Последнее редактирование: 06.11.2010, 23:23:54 от migus »
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
попробуйте вручную удалить этот плагин и поставить его через интерфейс AUP...
кстати, а вы SEF используете?
"The Lord Of A SandBox"
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
SEF пока что не использую

Что значит поставить через интерфейс AUP, я его вроде ставил через стандартный интефейс
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
меня смущает, что вы вручную компонент в базу прописывали :dry:
"The Lord Of A SandBox"
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
кажется понял... у вас после хита еще скрипт выполняется для валидации, а апдейт базы позже происходит...
я бы попробовал после этой строки:
Код: php
if ( $needsUpdate ) {
_incHits( $profileId );
тогда очки будут начисляться с учетом тайм - аутов и глюка с первым хитом не должно быть...
« Последнее редактирование: 24.08.2010, 01:14:02 от migus »
"The Lord Of A SandBox"
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
спасибо, попробую отпишусь
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
Как дела? Кажется понял почему правило не установилось, как-то сразу не заметил...
1. попробуйте в XML файле заменить строку:
Код
<component>com_comprofiler</component>
на эту:
Код
<component>comprofiler</component>
2. Удалите сначало правило в AUP админке, а затем посмотрите ваш XML в папке: ...home.../docs/administrator/components/com_alphauserpoints/assets/plugins/
если остался удалите вручную
3. Установите через админку AUP свой XML плагин...
удачи ;)
"The Lord Of A SandBox"
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Как дела? Кажется понял почему правило не установилось, как-то сразу не заметил...
1. попробуйте в XML файле заменить строку:
Код
<component>com_comprofiler</component>
на эту:
Код
<component>comprofiler</component>
2. Удалите сначало правило в AUP админке, а затем посмотрите ваш XML в папке: ...home.../docs/administrator/components/com_alphauserpoints/assets/plugins/
если остался удалите вручную
3. Установите через админку AUP свой XML плагин...
удачи ;)

спасибо, правило поставилось нормально и отображается в списке правил.

кажется понял... у вас после хита еще скрипт выполняется для валидации, а апдейт базы позже происходит...
я бы попробовал после этой строки:
Код: php
if ( $needsUpdate ) {
_incHits( $profileId );
тогда очки будут начисляться с учетом тайм - аутов и глюка с первым хитом не должно быть...

начисление за просмотр все равно не идет  :(
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
будем искать решение...

У меня вопрос. У вас по-прежнему CB 1.2.2 или уже 1.2.3 стоит?
"The Lord Of A SandBox"
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
обновился ) юзаю 1.2.3, а есть принципиальные различия?
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
обновился ) юзаю 1.2.3, а есть принципиальные различия?

думаю, что для нашего случая - да... мы же AUP API  внедряем в файлы, а они - изменились
"The Lord Of A SandBox"
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
ну так что? не получается? >:(
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
ну так что? не получается? >:(

Я еще не пытался - мне пока некогда...
"The Lord Of A SandBox"
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
Ну, кажется в заголовке темы можете писать [РЕШЕНО].

Во всяком случае у меня работает... :)

Итак,
1. Заменяете файл из аттача: ...home.../administrator/components/com_comprofiler/comprofiler.class.php
(или анализируете код и правите свой)
2. Устанавливаете плагин правила из аттача, назначаете стоимость (рекомендую 1 балл) и включаете его.
3. Проверяете, как работает и пишете сюда отчет .

NB: Не забудьте сделать бэкап оригинального файла!

P.S. В админке CB Менеджер конфигурации -> Профили надо установить: Минимальный интервал между просмотрами (в минутах), по-умолчанию кажется 60 мин. Чтобы удобно было тестировать - можно, временно установить короткий (например: 1 мин.)

- удачи ;)

[вложение удалено Администратором]
"The Lord Of A SandBox"
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Ну, кажется в заголовке темы можете писать [РЕШЕНО].

Во всяком случае у меня работает... :)

Итак,
1. Заменяете файл из аттача: ...home.../administrator/components/com_comprofiler/comprofiler.class.php
(или анализируете код и правите свой)
2. Устанавливаете плагин правила из аттача, назначаете стоимость (рекомендую 1 балл) и включаете его.
3. Проверяете, как работает и пишете сюда отчет .

NB: Не забудьте сделать бэкап оригинального файла!

P.S. В админке CB Менеджер конфигурации -> Профили надо установить: Минимальный интервал между просмотрами (в минутах), по-умолчанию кажется 60 мин. Чтобы удобно было тестировать - можно, временно установить короткий (например: 1 мин.)

- удачи ;)

Искренне благодарю за помощь. Все работает. Плюсую дважды!
Надеюсь дальнейшая интеграция на базе выводов, сделанных из примера, рассмотренного в данном посте, пойдет уже проще и быстрее.
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
Искренне благодарю за помощь. Все работает. Плюсую дважды!
Надеюсь дальнейшая интеграция на базе выводов, сделанных из примера, рассмотренного в данном посте, пойдет уже проще и быстрее.

Желаю успехов ;)
"The Lord Of A SandBox"
*

tayson72

  • Новичок
  • 2
  • 0 / 0
orsy, А как ты склонения сделал? Балл, баллов?
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
orsy, А как ты склонения сделал? Балл, баллов?

ну вообще-то это не я делал а migus. ну а если подумать то через свитч решается выбором в зависимости от числа.
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
А как ты склонения сделал? Балл, баллов?
Вот формула плюральных форм числительного для русского языка:
Код: php-brief
$plural%10==1 && $plural%100!=11 ? 0 : ($plural%10>=2 && $plural%10<=4 && ($plural%100<10 || $plural%100>=20)? 1 : 2)
- удачи ;)
"The Lord Of A SandBox"
*

siao

  • Захожу иногда
  • 233
  • 4 / 0
замечательный плагин!
но только вот CB у меня 1.7 -)
скажите, файл comprofiler.class.php изменяется только в одном месте?
и код
Код
//insert AUP API *************************************************************
$api_AUP = JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
if ( file_exists($api_AUP)) {
require_once ($api_AUP);
$refid = AlphaUserPointsHelper::getAnyUserReferreID( $viewerId );
$profil = AlphaUserPointsHelper:: getUserInfo ( $refid ) ;
// rule for profile hit
$info = 'За просмотр профиля пользователем: '.( $profil->username ) ;
$aupid = AlphaUserPointsHelper::getAnyUserReferreID( $profileId );
if ( $aupid )  AlphaUserPointsHelper::newpoints('plgaup_hitprofile', $aupid, '', $info);
}
// ****************************************************************************
// End AlphaUserPoints integration for CB Profile hit rule
// Integration by: migus to integrate AlphaUserPoints system CB Profile Hit
// This integration is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// ****************************************************************************
правильно?
он подойдет для СВ1.7?

потому что плагин установился нормально
но активность по этому правилу не считается( хотя он включен и 1 балл назначен)
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
Код правильный, просто его надо в соотв. месте вставлять. Сам для CB 1.7 не делал пока. Будет время - посмотрю.
"The Lord Of A SandBox"
*

siao

  • Захожу иногда
  • 233
  • 4 / 0
вставила вобщем-то в то же место, что и в Вашем файле было.

Код
		// but we will update any IP address changes in case of a logged-in user (for guests, the SELECT above is by IP address, so that entry and IP is already same:
if ( ( $currip != $views[0]->lastip ) || $needsUpdate ) {
$query = 'UPDATE ' . $_CB_database->NameQuote( '#__comprofiler_views' )
. "\n SET " . $_CB_database->NameQuote( 'lastview' ). " = NOW()"
. ', ' . $_CB_database->NameQuote( 'lastip' ). " = " . $_CB_database->Quote( $currip )
. ( $needsUpdate ? ', ' . $_CB_database->NameQuote( 'viewscount' ). " = (" . $_CB_database->NameQuote( 'viewscount' ). "+1)" : '' )
. "\n WHERE " . $_CB_database->NameQuote( 'viewer_id' ). " = " . (int) $viewerId
. "\n AND " . $_CB_database->NameQuote( 'profile_id' ). " = " . (int) $profileId
. ( $viewerId == 0 ? "\n AND " . $_CB_database->NameQuote( 'lastip' ). " = " . $_CB_database->Quote( $currip ) : null );
$_CB_database->setQuery( $query );
if ( ! $_CB_database->query() ) {
echo "<script type=\"text/javascript\">alert( 'UpdateViews: " . addslashes( $_CB_database->getErrorMsg() ). "' );</script>\n";
}

if ( $needsUpdate ) {


//insert AUP API *************************************************************
$api_AUP = JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
if ( file_exists($api_AUP)) {
require_once ($api_AUP);
$refid = AlphaUserPointsHelper::getAnyUserReferreID( $viewerId );
$profil = AlphaUserPointsHelper:: getUserInfo ( $refid ) ;
// rule for profile hit
$info = 'За просмотр профиля пользователем: '.( $profil->username ) ;
$aupid = AlphaUserPointsHelper::getAnyUserReferreID( $profileId );
if ( $aupid )  AlphaUserPointsHelper::newpoints('plgaup_hitprofile', $aupid, '', $info);
}
// ****************************************************************************
// End AlphaUserPoints integration for CB Profile hit rule
// Integration by: migus to integrate AlphaUserPoints system CB Profile Hit
// This integration is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// ****************************************************************************

_incHits( $profileId );
}
}
}

}

/**
* Calendars for date fields handler
вот так в Вашем

вот так в моем:
Код
// but we will update any IP address changes in case of a logged-in user (for guests, the SELECT above is by IP address, so that entry and IP is already same:
if ( ( $currip != $views[0]->lastip ) || $needsUpdate ) {
$query = 'UPDATE ' . $_CB_database->NameQuote( '#__comprofiler_views' )
. "\n SET " . $_CB_database->NameQuote( 'lastview' ). " = NOW()"
. ', ' . $_CB_database->NameQuote( 'lastip' ). " = " . $_CB_database->Quote( $currip )
. ( $needsUpdate ? ', ' . $_CB_database->NameQuote( 'viewscount' ). " = (" . $_CB_database->NameQuote( 'viewscount' ). "+1)" : '' )
. "\n WHERE " . $_CB_database->NameQuote( 'viewer_id' ). " = " . (int) $viewerId
. "\n AND " . $_CB_database->NameQuote( 'profile_id' ). " = " . (int) $profileId
. ( $viewerId == 0 ? "\n AND " . $_CB_database->NameQuote( 'lastip' ). " = " . $_CB_database->Quote( $currip ) : null );
$_CB_database->setQuery( $query );
if ( ! $_CB_database->query() ) {
echo "<script type=\"text/javascript\">alert( 'UpdateViews: " . addslashes( $_CB_database->getErrorMsg() ). "' );</script>\n";
}

if ( $needsUpdate ) {


//insert AUP API *************************************************************
$api_AUP = JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
if ( file_exists($api_AUP)) {
require_once ($api_AUP);
$refid = AlphaUserPointsHelper::getAnyUserReferreID( $viewerId );
$profil = AlphaUserPointsHelper:: getUserInfo ( $refid ) ;
// rule for profile hit
$info = 'За просмотр профиля пользователем: '.( $profil->username ) ;
$aupid = AlphaUserPointsHelper::getAnyUserReferreID( $profileId );
if ( $aupid )  AlphaUserPointsHelper::newpoints('plgaup_hitprofile', $aupid, '', $info);
}
// ****************************************************************************
// End AlphaUserPoints integration for CB Profile hit rule
// Integration by: migus to integrate AlphaUserPoints system CB Profile Hit
// This integration is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// ****************************************************************************

_incHits( $profileId );
}
}
}
}

/**
* Calendars for date fields handler
* @package Commu
*

siao

  • Захожу иногда
  • 233
  • 4 / 0
посмотрела сегодня - считает хиты
но почему то не считал хиты за мои просмотры - т.е. я под своим логином просматривала профили пользователей и им в системе плюсы не добавились.
правда у меня логин "суперадминстратора", может поэтому?

(полезный плагин, спасибо!)
*

Phoenix88

  • Захожу иногда
  • 81
  • 3 / 0
  • Нет предела самосовершенствованию
Прошу прощения за вопрос чайника...
Код
$plural%10==1 && $plural%100!=11 ? 0 : ($plural%10>=2 && $plural%10<=4 && ($plural%100<10 || $plural%100>=20)? 1 : 2)

куда это надо вставить и что прописать в языковом файле?
*

Phoenix88

  • Захожу иногда
  • 81
  • 3 / 0
  • Нет предела самосовершенствованию
Никто не знает? :(
*

nthanter

  • Захожу иногда
  • 55
  • 1 / 1
Ну, кажется в заголовке темы можете писать [РЕШЕНО].

Во всяком случае у меня работает... :)

Итак,
1. Заменяете файл из аттача: ...home.../administrator/components/com_comprofiler/comprofiler.class.php
(или анализируете код и правите свой)
2. Устанавливаете плагин правила из аттача, назначаете стоимость (рекомендую 1 балл) и включаете его.
3. Проверяете, как работает и пишете сюда отчет .

NB: Не забудьте сделать бэкап оригинального файла!

P.S. В админке CB Менеджер конфигурации -> Профили надо установить: Минимальный интервал между просмотрами (в минутах), по-умолчанию кажется 60 мин. Чтобы удобно было тестировать - можно, временно установить короткий (например: 1 мин.)

- удачи ;)

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

Sni10

  • Захожу иногда
  • 110
  • 5 / 0
  • I am a law abiding citizen . . .
Ради всех святых покажите мне хоть в одном из представленных кодов функцию - newhitscbprofile - ? 17 раз перечитал топик ...  3 раза перешерстил мануал по php для чайников про function - но не нашел связи между установленым плагином точнее его частью <plugin_function>plgaup_newhitscbprofile</plugin_function> - с остальныи исполняемым кодом (((
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
Ради всех святых покажите мне хоть в одном из представленных кодов функцию - newhitscbprofile - ?
Посмотрите на рабочий вариант в приложенном архиве этого сообщения
"The Lord Of A SandBox"
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Редактирование профиля AUP

Автор blessedlive

Ответов: 6
Просмотров: 5296
Последний ответ 24.03.2018, 01:18:35
от ovclub
Начисление баллов за вступление вгруппу

Автор Dusk09

Ответов: 0
Просмотров: 1723
Последний ответ 11.08.2015, 23:58:23
от Dusk09
alpha userpoints ошибка при установке правил 1136

Автор terveg

Ответов: 1
Просмотров: 2186
Последний ответ 29.09.2014, 10:15:37
от migus
Как сделать правило "Загрузить аватар профиля"?

Автор Сergei

Ответов: 1
Просмотров: 2119
Последний ответ 12.05.2014, 15:40:43
от NlCK
plg jcomments alphauserpoints_j25_v3.0.1 - начисление процента баллов

Автор etos

Ответов: 0
Просмотров: 1525
Последний ответ 24.01.2014, 11:49:47
от etos