Новости Joomla

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

👩‍💻 Вместе мы развиваем Joomla: станьте Joomfluencer!

👩‍💻 Вместе мы развиваем Joomla: станьте Joomfluencer!

Вы уверенно чувствуете себя перед камерой, динамичны, обаятельны и всегда улыбаетесь? Чувствуете себя искателем приключений, готовым поделиться своими исследованиями CMS Joomla!, взять интервью у видных деятелей сообщества, пообщаться лично или по видеосвязи с волонтерами Joomla или отправиться на поиски новых идей?

Joomla ищет одного или нескольких волонтеров, готовых вдохнуть новую жизнь в обсуждение Joomla, ее CMS, пользователей, сообщества и многого другого.

Возможны самые разные форматы и темы: шортсы, интервью, аналитика и разборы в режиме реального времени, быстрые советы и рекомендации, знакомство с миром Joomla, изучение открытого исходного кода... Нет никаких ограничений!

Joomla! уже активно представлена ​​во многих социальных сетях:
- 155K подписчиков на Facebook,
- 55K подписчиков на X (ранее Twitter),
- 16K подписчиков на YouTube,
- 14K подписчиков на LinkedIn,
- 5,7K подписчиков в Instagram
а так же другие площадки ждут вас. Аккаунты Threads и Bluesky относительно новые, но их популярность только растёт!

А если хватит энергии, можно рассмотреть и TikTok!

❓ Итак, вы готовы?
👉 Свяжитесь с отделом маркетинга по адресу: marketing@community.joomla.org

Подробности в статье в Joomla Community Magazine.

@joomlafeed

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

4ort

  • Захожу иногда
  • 82
  • 0 / 0
« Последнее редактирование: 23.11.2011, 09:14:51 от 4ort »
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
Самое простое - добавить условие в шаблон.

Например для шаблона item.php :

найдите строчку

Код
<?php if($this->item->params->get('itemRating')): ?>

приведите к следующему виду

Код
	
<?php if($this->item->params->get('itemRating')  && !$this->user->guest): ?>
*

4ort

  • Захожу иногда
  • 82
  • 0 / 0
SDKiller, спасибо, что откликнулся, но если сделать так - звезды просто скрываются от незарегистрированных пользователей, а нужно что-бы они не могли менять рейтинг, но видели его.
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
Тогда есть варианты:

1. В том же шаблоне в блоке рейтинга для каждой звезды заменить

Код
rel="<?php echo $this->item->id; ?>"

на

Код
rel="<?php echo (!$this->user->guest)? $this->item->id : ''; ?>"

Тогда на клики незарегистрированных пользователей по звёздочке не будет никакой реакции

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



2. Вносить изменения в модель item - функция vote()
Тогда можно будет не трогать шаблон а проверку пользователя и формирования соответствующего сообщения для аякса сделать в модели.
« Последнее редактирование: 22.11.2011, 17:16:18 от SDKiller »
*

4ort

  • Захожу иногда
  • 82
  • 0 / 0
SDKiller, огромное спасибо! :)
Первый вариант - действительно не хватало комментария.
Но зато получилось модифицировать функцию vote() как мне нужно (в php ничего не понимаю, поэтому сделал, возможно, кривовато)

Было:
Код: php
function vote(){

$mainframe = &JFactory::getApplication();
JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables' );

//Get item
$item = & JTable::getInstance('K2Item', 'Table');
$item->load(JRequest::getInt('itemID'));

//Get category
$category = & JTable::getInstance('K2Category', 'Table');
$category->load($item->catid);

//Access check
$user = JFactory::getUser();
if ($item->access > $user->get('aid', 0) || $category->access > $user->get('aid', 0)) {
JError::raiseError( 403, JText::_("ALERTNOTAUTH") );
}

//Published check
if (!$item->published || $item->trash ) {
JError::raiseError( 404, JText::_("Item not found") );
}
if (!$category->published || $category->trash) {
JError::raiseError( 404, JText::_("Item not found") );
}


$rate = JRequest::getVar('user_rating', 0, '', 'int');

if ( $rate >= 1 && $rate <= 5) {
$db = & JFactory::getDBO();
$userIP =  $_SERVER['REMOTE_ADDR'];
$query = "SELECT * FROM #__k2_rating WHERE itemID =".(int)$item->id;
$db->setQuery($query);
$rating = $db->loadObject();

if (!$rating) {
$query = "INSERT INTO #__k2_rating ( itemID, lastip, rating_sum, rating_count ) VALUES ( ".(int)$item->id.", ".$db->Quote($userIP).", {$rate}, 1 )";
$db->setQuery($query);
$db->query();
echo JText::_('Thanks for rating!');

}

else {
if ($userIP != ($rating->lastip)) {
$query = "UPDATE #__k2_rating".
" SET rating_count = rating_count + 1, rating_sum = rating_sum + {$rate}, lastip = ".$db->Quote($userIP).
" WHERE itemID = {$item->id}";
$db->setQuery($query);
$db->query();
echo JText::_('Thanks for rating!');

}
else {
echo JText::_('You have already rated this item.');
}
}

}
$mainframe->close();
}

После изменения стало:
Код: php
     function vote(){

$mainframe = &JFactory::getApplication();
$user = JFactory::getUser();
if (!$user->guest){
JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables' );

//Get item
$item = & JTable::getInstance('K2Item', 'Table');
$item->load(JRequest::getInt('itemID'));

//Get category
$category = & JTable::getInstance('K2Category', 'Table');
$category->load($item->catid);

//Access check
//$user = JFactory::getUser();
if ($item->access > $user->get('aid', 0) || $category->access > $user->get('aid', 0)) {
JError::raiseError( 403, JText::_("ALERTNOTAUTH") );
}

//Published check
if (!$item->published || $item->trash ) {
JError::raiseError( 404, JText::_("Item not found") );
}
if (!$category->published || $category->trash) {
JError::raiseError( 404, JText::_("Item not found") );
}


$rate = JRequest::getVar('user_rating', 0, '', 'int');

if ( $rate >= 1 && $rate <= 5) {
$db = & JFactory::getDBO();
$userIP =  $_SERVER['REMOTE_ADDR'];
$query = "SELECT * FROM #__k2_rating WHERE itemID =".(int)$item->id;
$db->setQuery($query);
$rating = $db->loadObject();

if (!$rating) {
$query = "INSERT INTO #__k2_rating ( itemID, lastip, rating_sum, rating_count ) VALUES ( ".(int)$item->id.", ".$db->Quote($userIP).", {$rate}, 1 )";
$db->setQuery($query);
$db->query();
echo JText::_('Thanks for rating!');

}

else {
if ($userIP != ($rating->lastip)) {
$query = "UPDATE #__k2_rating".
" SET rating_count = rating_count + 1, rating_sum = rating_sum + {$rate}, lastip = ".$db->Quote($userIP).
" WHERE itemID = {$item->id}";
$db->setQuery($query);
$db->query();
echo JText::_('Thanks for rating!');

}
else {
echo JText::_('You have already rated this item.');
}
}

}
}
else {
echo JText::_('Войдите, или зарегистрируйтесь, что-бы оценить.');
}
$mainframe->close();
    }
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
Да нормально.
Только было бы правильнее дополнить языковой файл, а не писать кириллицей в модели.
*

xxxLuffy

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Заменил функцию vote как написано выше и не чего не изменилось, гостем клацая на звёздочки просто не реагирует и не каких сообщений типа "Войдите, или зарегистрируйтесь, что-бы оценить." не выводит ...

_

Все дошло, что при варианте что оно не будет реагировать оно таки не реагирует и надо вернуть изначальный вариант чтобы оно реагировало на не зареганых)
теперь проблема с кракозябрами вместо нужного сообщения - "Войдите, или зарегистрируйтесь, что-бы оценить." но это я думаю уже исправить сам смогу)
« Последнее редактирование: 08.01.2012, 19:36:21 от xxxLuffy »
*

_ib_

  • Давно я тут
  • 673
  • 100 / 8
вывод сообщения о регистрации:
echo JText::_('JGLOBAL_YOU_MUST_LOGIN_FIRST');
Легальные шаблоны и дёшево!  + скидки до 50% для шаблонов клуба Joomlart, RocketTheme, Yootheme и Gavick.

при интересе пишите в личку или на мыло: "p" точка "d" собака gmx.de
*

name

  • Захожу иногда
  • 123
  • 1 / 0
По методу из 4 поста у меня просто выдается сообщение для не авторизованных пользователей, но для авторизованных стрелка просто по кругу вертится бесконечно
*

googlonator

  • Осваиваюсь на форуме
  • 24
  • 1 / 0
Не могу найти вообще таких строк у себя. Первую нашел, а вот где эту функцию vote взять не знаю. В item.php нету

Нашел. Я искал в папке шаблона /com_k2/template/default , а надо было в папке models/item.php =)

Нашел ошибку.( Теперь зарегистрированные пользователи не могут голосовать( Бесконечно крутиться загрузка.

Может кто знает как исправить?
« Последнее редактирование: 17.05.2015, 13:31:59 от googlonator »
*

googlonator

  • Осваиваюсь на форуме
  • 24
  • 1 / 0
Всё. Разобрался. В сообщении от 4ort где приведен готовый пример, что то приводит к ошибке. Не копируйте! Просто допишите самостоятельно строки в файл modules/item.php строки
Код
$user = JFactory::getUser();
if (!$user->guest){
как показано в примере выше от 4ort
И в конце добавьте одну закрывающуюся скобку и
Код
else {
echo JText::_('Войдите, или зарегистрируйтесь, чтобы оценить.');
}
И вуаля, всё работает на ура как с зарегестрированными пользователями так и с гостями =)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отдельные допполя видны только админу

Автор глюм

Ответов: 0
Просмотров: 1348
Последний ответ 22.08.2013, 14:15:14
от глюм