public static function canAutoApprovalListingWhenEdit($listingId, $newMainCategoryId) { $listingObject = JUDirectoryHelper::getListingById($listingId); if ($listingObject->approved == 1) { $originalListingId = $listingObject->id; $originalListingObject = $listingObject; $mainCategoryId = JUDirectoryFrontHelperCategory::getMainCategoryId($originalListingObject->id); $params = JUDirectoryHelper::getParams($newMainCategoryId); } elseif ($listingObject->approved < 0) { $tempListingObject = $listingObject; $originalListingId = abs($listingObject->approved); $originalListingObject = JUDirectoryHelper::getListingById($originalListingId); $mainCategoryId = JUDirectoryFrontHelperCategory::getMainCategoryId($originalListingObject->id); $params = JUDirectoryHelper::getParams($newMainCategoryId); } else { return false; } $isListingOwner = JUDirectoryFrontHelperPermission::isListingOwner($originalListingObject->id); $autoApprovalForListingOwner = $params->get('listing_owner_can_edit_listing_auto_approval', 1); if ($isListingOwner && $autoApprovalForListingOwner) { return true; } $user = JFactory::getUser(); if ($mainCategoryId == $newMainCategoryId) { if ($user->authorise('judir.listing.edit.auto_approval', 'com_judirectory.category.' . $mainCategoryId)) { return true; } } else { if ($user->authorise('judir.listing.create.auto_approval', 'com_judirectory.category.' . $newMainCategoryId)) { return true; } } if (!$user->get('guest')) { $autoApprovalListingThreshold = (int) $params->get('auto_approval_listing_threshold', 0); if ($autoApprovalListingThreshold > 0) { $totalApprovedListingsOfUser = JUDirectoryFrontHelperListing::getTotalListingsOfUserApprovedByMod($user->id); if ($totalApprovedListingsOfUser >= $autoApprovalListingThreshold) { return true; } } } return false; }