Azeri
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
vhosts
/
chipionatv.com
/
httpdocs
/
plugins
/
content
/
gkrating
/
Filename :
gkrating.php
back
Copy
<?php defined ('_JEXEC') or die ('Restricted access'); class PlgContentGKRating extends JPlugin { /** * Load the language file on instantiation */ protected $autoloadLanguage = true; protected $config = ''; public function __construct(&$subject, $config){ $this->config = json_decode($config['params']); parent::__construct($subject, $config); } /** * Adds additional fields to article editing form * * @return boolean */ public function onContentPrepareForm($form, $data){ if (!($form instanceof JForm)){ $this->_subject->setError('JERROR_NOT_A_FORM'); return false; } if($form->getName() == 'com_content.article'){ JForm::addFormPath(__DIR__ . '/forms'); $form->loadFile('rating', false); $doc = JFactory::getDocument(); $doc->addScript(JURI::root() . 'media/jui/js/jquery.ui.core.min.js'); $doc->addScript(JURI::root() . 'media/jui/js/jquery.ui.sortable.min.js'); $doc->addScript(JURI::root() . 'plugins/content/gkrating/assets/gkrating.js'); $doc->addStyleSheet(JURI::root() . 'plugins/content/gkrating/assets/gkrating.css'); return true; } else { return true; } } public function onContentPrepare($context, &$article, &$params, $page = 0){ // border cases $canProceed = $context == 'com_content.article'; if (!$canProceed){ return; } if(strpos($article->text,'{rating}') === false){ return; } $attribs = json_decode($article->attribs); $showOverall = isset($attribs->show_overall) ? $attribs->show_overall : false; $ratings = isset($attribs->rates) ? json_decode($attribs->rates) : false; $doc = JFactory::getDocument(); if(isset($this->config->default_css) && $this->config->default_css === '1'){ $doc->addStyleSheet(JURI::root() . '/plugins/content/gkrating/assets/style.css'); } if(isset($this->config->progressbar_js) && $this->config->progressbar_js === '1'){ JHtml::_('jquery.framework'); // required by default jQuery is loading later $doc->addScript(JURI::root() . 'plugins/content/gkrating/assets/progressbar.min.js'); $doc->addScript(JURI::root() . 'plugins/content/gkrating/assets/script.js'); } // variables init $output = ''; $rating_sum = 0; // no content - nothing to render if(!$ratings){ return; } // prepare output HTML $output .= '<span data-pb="enter" class="gk-review clearfix">'; if($showOverall){ foreach ($ratings as $key => $rate) { $rating_sum += floatval($rate->val); } $rating_sum = round($rating_sum/count($ratings), 1); $output .= '<span class="gk-review-sum">'; $output .= '<span class="gk-review-sum-value" data-final="'.($rating_sum/10).'"><span>'.$rating_sum.'</span></span>'; $output .= '<span class="gk-review-sum-label">' . JText::_('PLG_CONTENT_GKRATING_OVERALL') . '</span>'; $output .= '</span>'; // .gk-review-sum } $output .= '<span class="gk-review-partials">'; // Partial results $width = 'style="width:'.floatval(100/count($ratings)).'%'.'"'; foreach ($ratings as $key => $rate) { $rate_value = floatval($rate->val); $output .= '<span class="gk-review-partial" '.$width.'>'; $output .= '<span class="gk-review-partial-value" data-final="'.($rate_value/10).'"><span>'.$rate_value.'</span></span>'; $output .= '<span class="gk-review-partial-label">' . $rate->label. '</span>'; $output .= '</span>'; // .gk-review-partial } $output .= '</span>'; // .gk-review-partials $output .= '</span>'; // .gk-review $article->text = str_replace('{rating}', $output, $article->text); } }