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

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
В нормальном функционале при нажатии на одну из кнопок голосования обе кнопки пропадают. Это логично: голосование сделано и надобности в кнопках больше нет. Однако я делаю шаблон в котором кнопки должны обесточиваться, но на виду оставаться. JavaScript конечно срабатывает и прячет мои кнопки. Это происходит довольно быстро и я не успеваю засечь, что именно скрипт делает для изменения верстки. Прочитать скрип я не смог, т.к. я в этом не разбираюсь.

Вопрос: что именно делается с вёрсткой для прятания голосовательных кнопок после голосования?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
После того, как за комментарий оценили, дергается шаблон tpl_comment, в нем вызывается функция getCommentVoteValue и то, что он возвращает заменяет текущее содержимое элемента. Поэтому если нужно, чтобы кнопки всегда были видны, надо в этой функции поменять проверку:
Код: php
<?php
if ($this->getVar('button-vote', 0) == 1) {
?>
<a href="#" class="vote-good" title="<?php echo JText::_('BUTTON_VOTE_GOOD'); ?>" onclick="jcomments.voteComment(<?php echo $comment->id;?>, 1);return false;"></a><a href="#" class="vote-poor" title="<?php echo JText::_('BUTTON_VOTE_BAD'); ?>" onclick="jcomments.voteComment(<?php echo $comment->id;?>, -1);return false;"></a>
<?php
}
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Цитировать
...вызывается функция getCommentVoteValue...
Да, но я её не использую.
Числа голосов я вывожу напрямик, как они есть, без подсчёта разницы через
echo intval($comment->isgood); или $comment->ispoor
А изменения CSS-класса на vote-none сделано прямо в шаблоне.

То есть весь этот блок выглядит так:
Код
<span class="comments-vote">
<span id="comment-vote-holder-<?php echo $comment->id; ?>">
<span class="vote-good">
<?php if(intval($comment->isgood)!= 0) {
echo intval($comment->isgood);
}
else {
echo "&nbsp;";
} ?>
</span>

<?php
if ($this->getVar('button-vote', 0) == 1) {
?>
<a href="#" class="vote-good" title="<?php echo JText::_('BUTTON_VOTE_GOOD'); ?>" onclick="jcomments.voteComment(<?php echo $comment->id;?>, 1);return false;"></a>
<a href="#" class="vote-poor" title="<?php echo JText::_('BUTTON_VOTE_BAD'); ?>" onclick="jcomments.voteComment(<?php echo $comment->id;?>, -1);return false;"></a>
<?php
}
else
{
?>
<a href="#"  class="vote-none" title="<?php echo JText::_('ERROR_ALREADY_VOTED'); ?>" onclick="return false"></a>
<a href="#"  class="vote-none" title="<?php echo JText::_('ERROR_ALREADY_VOTED'); ?>" onclick="return false"></a>
<?php
}
?>
<span class="vote-poor">
<?php if(intval($comment->ispoor)!= 0) {
echo intval($comment->ispoor);
}
else {
echo "&nbsp;";
} ?></span>
</span>
</span>

Проблема в том, что кнопки (и цифры тоже) исчезают сразу после нажатия на них.
Иными словами, исчезает всё вутри
<span id="comment-vote-holder-x"></span>
При перезагрузке страницы они, конечно, появляются снова и в правильном виде, но хотелось бы чтобы JavaScript цифры продвигал, но ничего не прятал.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Еще раз, когда нажимают на кнопку голосования уходит запрос, который обрабатывается в jcomments.ajax.php, он после оценки вызывает указанный шаблон с параметром get_comment_vote, а тот в свою очередь дергает указанную функцию:
Код
			if ($this->getVar('get_comment_vote', 0) == 1) {
// return comment vote
$this->getCommentVoteValue( $comment );
Если у тебя обработки этого нет, то в ответ получишь пустоту - все скроется.
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
О! Так понятнее!  ;D
Щас подумаем, как переписать getCommentVoteValue в нужную сторону.
Спасибо.
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Сергеи, такой вопрос попутно:
в файле /components/com_jcomments/jcomments.php строка 314
Код
	updateVote: function(i,t){this.busy.stop();var c=this.$('comment-vote-holder-'+i);if(c){c.innerHTML=t;}},
Что есть этa "t" и где она задаётся?

Я почему спрашиваю.
Строкой выше
Код
	voteComment: function(i){var v=this.$('comment-vote-holder-'+i);if(v){v.innerHTML='';this.busy.start(v,null);}return this.ajax('JCommentsVoteComment',arguments);},
вы стираете всё внутри comment-vote-holder-х . Затем через updateVote:туда же что-то вставляете из этой "t".
Так вот я думаю, что вы вставляете только выход функции getCommentVoteValue
то есть
<span class="vote-<?php echo $class; ?>"><?php echo $value; ?></span>
и ничего больше.

К условию if ($this->getVar('button-vote', 0) == 1) вы не возвращаетесь и поэтому оно никакой роли для AJAX-а не играет.
Я так думаю ещё и потому, что у меня выводятся числа intval($comment->isgood) за пределами этого условия и они должны были бы по идее отображаться всегда.

Опять же правильное отображение кнопок и цифр восстанавливается только после полной перезагрузки страницы, что вызывает прохождение через это самое условие.
« Последнее редактирование: 22.03.2012, 03:51:46 от ABTOP »
*

МихаилМ

  • Захожу иногда
  • 55
  • 2 / 0
если решили проблему - выложите решение
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Решение стало частью шаблона.
http://www.joomlatune.com/forum/index.php?topic=5258.0
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться