1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

Помощь Вывод языковой константы в плагине Extra Vote

Тема в разделе "Joomla", создана пользователем Gudym, 2 дек 2015.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Модераторы: arman29, DMS, Genk0
  1. Gudym

    Gudym Постоялец

    Регистр.:
    19 мар 2013
    Сообщения:
    55
    Симпатии:
    23
    В плагине Extra Vote (перед звездами) нужно вывести текстовый призыв к действию, т.е. голосованию. Что-то типа "Пожалуйста, оцените статью!"

    Кое-как удалось определить, что рейтинг выводится этим куском кода из extravote.php:

    Код:
    $html = "
    <".$container." class=\"".$class."\">
      <span class=\"extravote-stars\"".($add_snippets?" itemprop=\"aggregateRating\" itemscope itemtype=\"http://schema.org/AggregateRating\"":"").">".($add_snippets?"
         <meta itemprop=\"ratingCount\" content=\"".$rating_count."\" />
       ":"
       ")."<span id=\"rating_".$id."_".$xid."\" class=\"current-rating\"".((!$initial_hide||$currip==$ip)?" style=\"width:".round($rating*20)."%;\"":"")."".($add_snippets?" itemprop=\"ratingValue\"":"").">".($add_snippets?$rating:"")."</span>"
       .$spans."
      </span>
      <span class=\"extravote-info".(($initial_hide&&$currip!=$ip)?" ihide\"":"")."\" id=\"extravote_".$id."_".$xid."\">";
     
           if ( $show_rating > 0 ) {
           if ( $rating_mode == 0 ) {
             $rating = round($rating*20) . '%';   
           } else {
             $rating = number_format($rating,2);   
           }
           $html .= JTEXT::sprintf('PLG_CONTENT_EXTRAVOTE_LABEL_RATING', $rating);
         }
         
           if ( $show_counter > 0 ) {
           if($rating_count!=1) {
             $html .= JTEXT::sprintf('PLG_CONTENT_EXTRAVOTE_LABEL_VOTES', $rating_count);
           } else {
             $html .= JTEXT::sprintf('PLG_CONTENT_EXTRAVOTE_LABEL_VOTE', $rating_count);
           }
         }
         
           $html .="</span>";
           $html .="
    </".$container.">";
    
    Если просто вписать текст сразу после <".$container." class=\"".$class."\">, все выводится и отображается в одной строке как надо. Но вот загвоздочка в том, что этот текст мне нужно выводить языковой константой, т.к. сайт будет мультиязычный.

    В языковом файле ru-RU.plg_content_extravote.ini создал новую константу PLG_CONTENT_EXTRAVOTE_OTSENI_PJL="Пожалуйста, оцените статью!", но вот как ее грамотно внедрить в этот PHP код непонятной конструкции ума не приложу.

    Пробовал делать по примеру, т.е. так как в самом плагине константы выводятся, что-то типа $html .= JTEXT::sprintf('PLG_CONTENT_EXTRAVOTE_OTSENI_PJL'); и через echo...как только не пробовал, но не получилось. То ошибки синтаксические, то просто ничего не выводится. Целый день вчера тыкался.

    Уважаемые форумчане, знающие PHP, искренне прошу Вашей помощи! Заранее благодарю!
     
  2. Genk0

    Genk0 Инквизитор из раздела J!

    Moderator
    Регистр.:
    2 июн 2010
    Сообщения:
    1.627
    Симпатии:
    1.330
    Код:
    JText::_('Welcome')
     
  3. Gudym

    Gudym Постоялец

    Регистр.:
    19 мар 2013
    Сообщения:
    55
    Симпатии:
    23
    Благодарю, Genk0!

    А куда собственно вставить этот код? Если где-то после $html = ", то код просто текстом выводится, если до, то лезут ошибки типа Parse error: syntax error, unexpected '$stars'. И как я понимаю вместо 'Welcome' я вывожу свою языковую константу PLG_CONTENT_EXTRAVOTE_OTSENI_PJL?

    Для меня такая подача PHP совершенно непонятна...
     
  4. Genk0

    Genk0 Инквизитор из раздела J!

    Moderator
    Регистр.:
    2 июн 2010
    Сообщения:
    1.627
    Симпатии:
    1.330
    Код:
    первая строка  $html = "
    заменить на 
    $html .= "
    
    перед ней поставить 
    $html = JText::_('Welcome');
    
    Welcome заменить на константу
    
    По идее это выведет текст перед звездочками. а там уже крутите сами. Суть запредельно ясна
     
    Gudym нравится это.