public function onContentPrepare($context, &$article, &$params, $page = 0)
 {
     if (strpos($context, 'com_content.') !== 0 || empty($this->zygocontent)) {
         return true;
     }
     foreach ($this->zygocontent as $field) {
         $field = array_values((array) $field);
         if (is_object($field[1])) {
             $field[1] = array_values((array) $field[1]);
         }
         if ($context == "com_content.article" && $field[3] != 1 || $context != "com_content.article" && $field[3] != 2) {
             $fid = $field[0];
             $field_html = ZygoHelper::getField($fid, $article->created_by);
             if (!trim($field_html)) {
                 continue;
             }
             $css = str_replace(',', ' ', $field[4]);
             $fd = str_replace("uniqueID", "", $fid);
             $fHTML = "<div class='zygo_content_field zygo_content_field_id_" . $fd . " " . $css . "'>";
             // add label
             if ($field[2]) {
                 $fHTML .= '<span class="zygo_content_label zygo_content_label_field_id_' . $fd . '">';
                 $fHTML .= ZygoHelper::getLabel($fid) . ": </span>";
             }
             $fHTML .= $field_html;
             $fHTML .= "</div>";
             if ($field[1][0] == "beforeContent") {
                 $article->text = $fHTML . $article->text;
             } else {
                 if ($field[1][0] == "afterContent") {
                     $article->text .= $fHTML;
                 } else {
                     if ($field[1][0] == "byTag" && isset($field[1][1]) && trim($field[1][1])) {
                         $article->text = str_replace(trim($field[1][1]), $fHTML, $article->text);
                     }
                 }
             }
         }
     }
 }
Example #2
0
 function getUsersData(&$params)
 {
     $limit = $params->get('count', '5');
     $app = JFactory::getApplication();
     // if you need use Joomla lifetime to check user, uncomment it
     // and remove the next line:
     //$from_time = time() - abs((int)$app->getCfg('lifetime', 15)) * 60 - 1;
     $from_time = time() - abs((int) $params->get('timeout', 15)) * 60 - 1;
     $robots_list = array();
     if ($params->get('show_robots', 1)) {
         $robots_types = $params->get('robots_types', '');
         $robots_arr = explode("\n", $robots_types);
         foreach ($robots_arr as $rs) {
             $rs = trim($rs);
             if (!$rs) {
                 continue;
             }
             $rsArr = explode('|', $rs);
             if (isset($rsArr[1])) {
                 $robots_list[$rsArr[1]] = $rsArr[0];
             }
         }
     }
     $db = JFactory::getDbo();
     $query = $db->getQuery(true);
     $query->clear()->select('u.id as uid, u.name, s.guest, s.data');
     $query->from($db->quoteName('#__session') . ' AS s');
     $query->join('LEFT', '#__users u ON u.id = s.userid');
     //$query->having('COUNT( DISTINCT s.userid ) > 0');
     $query->where('s.time > ' . $db->quote($from_time));
     $query->where($db->quoteName('client_id') . ' = ' . $db->Quote('0'));
     $db->setQuery($query);
     $allOnline = $db->loadObjectList();
     $uidsnames = array();
     $total = new stdClass();
     $total->users = 0;
     $total->guests = 0;
     $robots = array();
     foreach ($allOnline as $somebody) {
         if ($somebody->uid) {
             //$total->users++;
             $uidsnames[$somebody->uid] = $somebody->name;
         } else {
             if ($somebody->guest == 1) {
                 if (!empty($robots_list)) {
                     @(list($tmp, $_default) = explode('|', $somebody->data, 2));
                     $_default = str_replace('\\0\\0\\0', chr(0) . '*' . chr(0), $_default);
                     if (!($_default = unserialize($_default))) {
                         $total->guests++;
                         continue;
                     }
                     $browser = JArrayHelper::getValue($_default, 'session.client.browser', '', 'string');
                     $isRobot = false;
                     foreach ($robots_list as $rlFragment => $rlAlias) {
                         if (strpos($browser, $rlFragment) !== FALSE) {
                             $isRobot = true;
                             $robots[$rlAlias] = $browser;
                             break;
                         }
                     }
                     if (!$isRobot) {
                         $total->guests++;
                     }
                 } else {
                     $total->guests++;
                 }
             }
         }
     }
     $uids = array_keys($uidsnames);
     $total->users = sizeof($uids);
     $uids = array_slice($uids, 0, $limit);
     $_members = array();
     if (!empty($uids)) {
         $rows = ZygoHelper::getUsersInfo($uids);
         $av_field = $params->get('avatar');
         foreach ($uids as $uid) {
             $_obj = new stdClass();
             $_obj->id = $uid;
             $_obj->name = $uidsnames[$uid];
             $_obj->avatar = ZygoHelper::getAvatar($uid, $av_field);
             $_members[] = $_obj;
         }
     }
     return array($_members, $total, $robots);
 }
Example #3
0
 /**
  * Retrieve zygo profile params from plg_user_zygo_profile and save them as
  * array of arrays ($profile)
  * $profile[field id][field key] = field_value
  *
  * @return   void
  */
 public static function getProfileParams()
 {
     if (self::$profile) {
         return;
     }
     self::$zygo_plugin = JPluginHelper::getPlugin('user', 'zygo_profile');
     self::$zygo_params = new JRegistry();
     self::$zygo_params->loadString(self::$zygo_plugin->params);
     if (empty(self::$zygo_params)) {
         return;
     }
     $userinfo = self::$zygo_params->get('userinfo');
     if (empty($userinfo) || !is_object($userinfo) && !is_array($userinfo)) {
         return;
     }
     self::$profile = array();
     $ids = is_object($userinfo) ? $userinfo->fieldName : $userinfo['fieldName'];
     $idsNums = array();
     foreach ($ids as $num => $id) {
         $idsNums[$num] = $id;
     }
     foreach ($userinfo as $nkey => $obj) {
         if ($nkey == 'fieldName' || empty($obj) || is_string($obj)) {
             continue;
         }
         foreach ($obj as $fkey => $val) {
             $id = $idsNums[$fkey];
             if ($id == "uniqueID0") {
                 continue;
             }
             if (!isset(self::$profile[$id])) {
                 self::$profile[$id] = array();
             }
             self::$profile[$id][$nkey] = $val;
         }
     }
 }
Example #4
0
" />
		<?php 
    }
}
?>
	</div>
	<div class="mod_zygo_total">
		<?php 
if ($total->users) {
    $termUser = ZygoHelper::getPluralTerm($total->users, "1", "2", "3");
    echo '<span class="mod_zygo_total_users">';
    echo JText::sprintf('MOD_ZYGO_ONLINE_USER' . $termUser, $total->users);
    echo '</span>';
}
if ($params->get('show_guest', 1) && $total->guests) {
    $termGuest = ZygoHelper::getPluralTerm($total->guests, "1", "2", "3");
    if ($total->users) {
        echo ' ' . JText::_('MOD_ZYGO_ONLINE_AND') . ' ';
    }
    echo '<span class="mod_zygo_total_guests">';
    echo JText::sprintf('MOD_ZYGO_ONLINE_GUEST' . $termGuest, $total->guests);
    echo '</span>';
}
echo " " . JText::_("MOD_ZYGO_ONLINE_ONLINE");
?>
 

	</div>

	<?php 
if (!empty($robots) && $params->get('show_robots', 0)) {