extension_name = 'com_flexicontent'; //$this->view_name = 'item'; } public function onAfterInitialise() { $mainframe = JFactory::getApplication(); if ($mainframe->isAdmin()) { return; // Dont run in admin } $jinput = $mainframe->input; $option_name = $jinput->get('option', '', 'cmd'); $view_name = $jinput->get('view', '', 'cmd'); $layout = $jinput->get('layout', '', 'cmd'); $item_id = $jinput->get('id', '', 'number'); $cid_id = $jinput->get('cid', '', 'number'); /* if(($option_name=="com_content" || $option_name=="com_flexicontent") && $view_name=="category" && $layout=="mcats") { $_GET["filter_cache"] = "yes"; } */ if(($option_name=="com_content" || $option_name=="com_flexicontent") && $view_name=="item"){ if(!empty($item_id)) { $userlisting = $this->getUsersListing($item_id); $username = JFactory::GetUser()->name; $user_id = JFactory::GetUser()->id; JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_flexicontent'.DS.'tables'); require_once (JPATH_SITE.DS.'components'.DS.'com_flexicontent'.DS.'classes'.DS.'flexicontent.helper.php'); require_once (JPATH_SITE.DS.'components'.DS.'com_flexicontent'.DS.'classes'.DS.'flexicontent.fields.php'); require_once (JPATH_SITE.DS.'components'.DS.'com_flexicontent'.DS.'helpers'.DS.'permission.php'); require_once (JPATH_SITE.DS.'components'.DS.'com_flexicontent'.DS.'helpers'.DS.'route.php'); require_once (JPATH_SITE.DS.'components'.DS.'com_flexicontent'.DS.'models'.DS.FLEXI_ITEMVIEW.'.php'); $item_model = new FlexicontentModelItem(); $item = $item_model->getItem($item_id, $check_view_access=false, $no_cache=true, $force_version=0); // new added code by zaheer abbas $user = JFactory::getUser(); $aid = JAccess::getAuthorisedViewLevels($user->id); $params = & $item->parameters; $_items = array(&$item); FlexicontentFields::getFields($_items, FLEXI_ITEMVIEW, $params, $aid); //goes into infinte loop if (isset($item->fields)) $fields = & $item->fields; else $fields = array(); $show_content = false; $check_group_users = false; $update_field_array = $this->fieldsAssignToItems($fields); if(!empty($update_field_array) && ( in_array("questionnaire",$update_field_array) || in_array("mar",$update_field_array) || in_array("approval",$update_field_array) || in_array("mar",$update_field_array) || in_array("questionnairedisplay",$update_field_array))) { $_GET["filter_cache"] = "yes"; } if(!empty($update_field_array) && in_array("customgroups",$update_field_array)) { $group_id = isset($fields['dynamic_audience']->value[0])?$fields['dynamic_audience']->value[0]:''; $user_id = JFactory::GetUser()->id; if(($user_id && $group_id)) { $check_group_users = true; $db = JFactory::getDBO(); $db->setQuery("SELECT user_id FROM #__customgroups WHERE `id` = " . $group_id); if(isset($db->loadObject()->user_id)) $group_creator = $db->loadObject()->user_id; else $group_creator = ''; if($group_creator != $user_id){ $db = JFactory::getDBO(); $db->setQuery("SELECT user_id FROM #__customgroups_user WHERE `group_id` = " . $group_id); $group_users = $db->loadObjectList(); foreach($group_users as $gu){ if($gu->user_id == $user_id){ $show_content = true; } } }else{ $show_content = true; } } } // end of new code if($user_id && !empty($userlisting) && isset($item->id) && !empty($item->id) && !$show_content) { $check_group_users = true; if(in_array($user_id, explode(",", $userlisting))) { $show_content = true; } } if(!$check_group_users) { $show_content = true; } if($item->created_by == $user_id) { $show_content = true; } if(!$show_content) { $mainframe->redirect("index.php","You are not authorized to view the content!","Error"); } } } } public function onAfterRoute() { $mainframe = JFactory::getApplication(); $document = JFactory::getDocument(); //don't load in administration if ($mainframe->isAdmin()) { return; } if (!$document->getType() == 'html'){ return; } $option = JRequest::getCmd('option'); $view = JRequest::getCmd('view'); $task = JRequest::getCmd('task'); $layout = JRequest::getCmd('layout'); $menuID = JRequest::getCmd('Itemid'); $js = ""; if(($option=="com_content" || $option=="com_flexicontent") && $view=="category" && $layout=="mcats") { $js .=" jQuery(function(){ jQuery.ajax({ method: \"GET\", dataType: \"html\", url: window.location.href+'&filter_cache=yes', complete: function H(L, M) { jQuery('#homefeed').html(jQuery(L.responseText).find('#homefeed').html()); } }); }); "; $document->addScriptDeclaration($js);} } function fieldsAssignToItems($ass_fields){ $assign_fields = array(); foreach($ass_fields as $key => $value) { if(isset($value->field_type)) array_push($assign_fields, $value->field_type); } return array_unique($assign_fields); } function getUsersListing($itemid){ $db = JFactory::getDBO(); $query = "SELECT `user_ids` FROM #__flexicontent_item_permission WHERE itemid=".$db->quote($itemid); $db->setQuery($query); return $db->loadResult(); } }