Sindbad~EG File Manager
<?php
/**
* @package RSDirectory!
* @copyright (C) 2013-2019 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die;
use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Factory;
use Joomla\Utilities\ArrayHelper;
if (version_compare(JVERSION, '5.0', '>=') && !class_exists('ActionLogPlugin'))
{
JLoader::registerAlias('ActionLogPlugin', '\\Joomla\\Component\\Actionlogs\\Administrator\\Plugin\\ActionLogPlugin');
}
else if (version_compare(JVERSION, '4.0', '>='))
{
JLoader::registerNamespace('ActionLogPlugin', JPATH_ADMINISTRATOR . '/components/com_actionlogs/src/Plugin');
JLoader::registerNamespace('ActionlogsHelper', JPATH_ADMINISTRATOR . '/components/com_actionlogs/src/Helper');
}
else
{
JLoader::register('ActionLogPlugin', JPATH_ADMINISTRATOR . '/components/com_actionlogs/libraries/actionlogplugin.php');
JLoader::register('ActionlogsHelper', JPATH_ADMINISTRATOR . '/components/com_actionlogs/helpers/actionlogs.php');
}
/**
* RSDirectory! Users Actions Logging Plugin.
*
* @since 1.0.0
*/
class PlgActionlogRsdirectory extends ActionLogPlugin
{
/**
* Holds the extension name
* @var string
*/
protected $extension = 'com_rsdirectory';
/**
* Function to check if the component is loggable or not
*
* @return boolean
*
*/
protected function checkLoggable()
{
static $status;
if (is_null($status)) {
$params = ComponentHelper::getComponent('com_actionlogs')->getParams();
$loggableExtensions = $params->get('loggable_extensions', array());
$status = in_array($this->extension, $loggableExtensions);
}
return $status;
}
/**
* Function to get the user object
*
* @return mixed - false if no user detected, user object if the user is logged in
*
*/
protected function getLoggedInUser() {
$user = Factory::getUser();
if ($user->id) {
return $user;
}
return false;
}
public function onRsdirActionLog($params = array()) {
extract($params);
if (!$this->checkLoggable())
{
return;
}
if (!isset($type))
{
return;
}
if ($user = $this->getLoggedInUser())
{
$messages = false;
$messageLanguageKey = '';
switch ($type)
{
// log the anonymisation for the user
case 'user_anonymise':
$user_data = Factory::getUser($user_id);
$messages = array(
'itemlink' => 'index.php?option=com_rsdirectory&view=user&layout=edit&id=' . $user_id,
'itemanchor' => $user_data->name.' ('.$user_data->username.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_USER_ANONYMISE';
break;
// log the edit for the user
case 'user_edit':
$user_data = Factory::getUser($user_id);
$messages = array(
'itemlink' => '<a href="'.'index.php?option=com_rsdirectory&view=user&layout=edit&id=' . $user_id.'">'.$user_data->name.' ('.$user_data->username.')</a>',
'itemanchor' => $user_data->name.' ('.$user_data->username.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_USER_EDIT';
break;
// log the owner reply
case 'review_add_owner_reply':
$messages = array(
'review' => 'index.php?option=com_rsdirectory&view=rating&layout=edit&id=' . $review_id,
'reviewanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_REVIEW'),
'itemlink' => 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY').(!empty($entry_name) ? ' ('.$entry_name.')' : '')
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_REVIEW_ADD_OWNER_REPLY';
break;
// log the review add/update
case 'review_add':
case 'review_update':
$messages = array(
'review' => 'index.php?option=com_rsdirectory&view=rating&layout=edit&id=' . $review_id,
'reviewanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_REVIEW'),
'itemlink' => 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY').(!empty($entry_name) ? ' ('.$entry_name.')' : '')
);
$messageLanguageKey = ($type == 'review_add' ? 'PLG_ACTIONLOG_RSDIRECTORY_REVIEW_ADD' : 'PLG_ACTIONLOG_RSDIRECTORY_REVIEW_UPDATE');
break;
// log the claims add/approve
case 'claim_add':
case 'claim_approved':
case 'claim_denied':
$messages = array(
'claim' => 'index.php?option=com_rsdirectory&view=claim&layout=edit&id=' . $claim_id,
'claimanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_CLAIM'),
'itemlink' => 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY').(!empty($entry_name) ? ' ('.$entry_name.')' : '')
);
$messageLanguageKey = ($type == 'claim_add' ? 'PLG_ACTIONLOG_RSDIRECTORY_CLAIM_ADD' : 'PLG_ACTIONLOG_RSDIRECTORY_'.strtoupper($type));
break;
case 'claim_delete':
$messages = array(
'itemlink' => 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY').(!empty($entry_name) ? ' ('.$entry_name.')' : '')
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_CLAIM_DELETE';
break;
// log the review delete
case 'review_delete':
$messages = array(
'itemlink' => 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY').(!empty($entry_name) ? ' ('.$entry_name.')' : '')
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_REVIEW_DELETE';
break;
// log the review publish/unpublish state
case 'review_published':
case 'review_unpublished':
$messages = array(
'review' => 'index.php?option=com_rsdirectory&view=rating&layout=edit&id=' . $review_id,
'reviewanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_REVIEW'),
'itemlink' => 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY').(!empty($entry_name) ? ' ('.$entry_name.')' : '')
);
$messageLanguageKey = ($type == 'review_published' ? 'PLG_ACTIONLOG_RSDIRECTORY_REVIEW_PUBLISHED' : 'PLG_ACTIONLOG_RSDIRECTORY_REVIEW_UNPUBLISHED');
break;
// log the report read/unread
case 'report_delete':
$messages = array(
'itemlink' => 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY').(!empty($entry_name) ? ' ('.$entry_name.')' : '')
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_REPORT_DELETE';
break;
// log the report read/unread
case 'report_add':
$messages = array(
'itemlink' => 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY').(!empty($entry_name) ? ' ('.$entry_name.')' : ''),
'report_id' => 'index.php?option=com_rsdirectory&view=reportedentry&layout=edit&id=' . $report_id,
'report_idanchor' => JText::sprintf('PLG_ACTIONLOG_RSDIRECTORY_TYPE_REPORT_ID', $report_id)
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_REPORT_ADD';
break;
// log the report read/unread
case 'report_read':
case 'report_unread':
$messages = array(
'itemlink' => 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY').(!empty($entry_name) ? ' ('.$entry_name.')' : ''),
'report_id' => 'index.php?option=com_rsdirectory&view=reportedentry&layout=edit&id=' . $report_id,
'report_idanchor' => JText::sprintf('PLG_ACTIONLOG_RSDIRECTORY_TYPE_REPORT_ID', $report_id)
);
$messageLanguageKey = ($type == 'report_read' ? 'PLG_ACTIONLOG_RSDIRECTORY_REPORT_READ' : 'PLG_ACTIONLOG_RSDIRECTORY_REPORT_UNREAD');
break;
// log the paid status
case 'entry_paid':
case 'entry_unpaid':
$messages = array(
'itemlink' => 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY').(!empty($entry_name) ? ' ('.$entry_name.')' : ''),
);
$messageLanguageKey = ($type == 'entry_paid' ? 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_PAID' : 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_UNPAID');
break;
// log the delete
case 'delete_entry':
$messages = array(
'itemid' => $entry_id,
'name' => (!empty($entry_name) ? $entry_name : '')
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_DELETED';
break;
// log when an entry has been added
case 'entry_published':
case 'entry_unpublished':
$messages = array(
'itemlink' => 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY').(!empty($entry_name) ? ' ('.$entry_name.')' : ''),
);
$messageLanguageKey = ($type == 'entry_published' ? 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_PUBLISHED' : 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_UNPUBLISHED');
break;
// log when an entry has been added
case 'entry_add':
$messages = array(
'itemlink' => 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY').(!empty($entry_name) ? ' ('.$entry_name.')' : ''),
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_ADDED';
break;
// log when an entry has been updated
case 'entry_update':
$messages = array(
'itemlink' => 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY').(!empty($entry_name) ? ' ('.$entry_name.')' : ''),
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_UPDATED';
break;
// log when an entry has been updated and changed the user of the entry
case 'entry_update_user':
$new_user = JFactory::getUser($new_user);
$old_user = JFactory::getUser($old_user);
$messages = array(
'itemlink' => 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY').(!empty($entry_name) ? ' ('.$entry_name.')' : ''),
'new_user' => 'index.php?option=com_users&task=user.edit&id=' . $new_user->id,
'new_useranchor' => $new_user->name,
'old_user' => 'index.php?option=com_users&task=user.edit&id=' . $old_user->id,
'old_useranchor' => $old_user->name
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_UPDATED_USER';
break;
// log a credit purchase
case 'credits_purchased':
$messages = array(
'itemlink' => 'index.php?option=com_rsdirectory&view=transaction&layout=edit&id=' . $transaction_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_TRANSACTION'),
'credit_pack' => $credit_title,
'entrylink' => ''
);
// without an entry associated
if (!empty($entry_id))
{
$messages['entrylink'] = 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id;
$messages['entryanchor'] = JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY');
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_TRANSACTION_WITH_ENTRY';
} // with an entry associated
else
{
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_TRANSACTION';
}
break;
// log a credit purchase mark
case 'credits_finalized':
case 'credits_pending':
$messages = array(
'itemlink' => 'index.php?option=com_rsdirectory&view=transaction&layout=edit&id=' . $transaction_id,
'itemanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_TRANSACTION'),
'credit_pack' => $credit_title,
'entrylink' => ''
);
// without an entry associated
if (!empty($entry_id))
{
$messages['entrylink'] = 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id;
$messages['entryanchor'] = JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY');
$messageLanguageKey = $type == 'credits_finalized' ? 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_TRANSACTION_FINALIZED_WITH_ENTRY' : 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_TRANSACTION_PENDING_WITH_ENTRY';
} // with an entry associated
else
{
$messageLanguageKey = $type == 'credits_finalized' ? 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_TRANSACTION_FINALIZED' : 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_TRANSACTION_PENDING';
}
break;
// log a credit purchase (transaction) delete
case 'credits_delete':
$messages = array(
'entrylink' => ''
);
// without an entry associated
if (!empty($entry_id))
{
$messages['entrylink'] = 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id;
$messages['entryanchor'] = JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY');
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_TRANSACTION_DELETED_WITH_ENTRY';
} // with an entry associated
else
{
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_ENTRY_TRANSACTION_DELETED';
}
break;
// log the credit history states
case 'credits_history_mark_paid':
case 'credits_history_mark_unpaid':
$messages = array(
'entrylink' => ''
);
$credit_info = $this->getCreditInfo($credit_id);
$messages['credits'] = $credit_info['credits'];
$messages['credits_type'] = $credit_info['type'];
$messages['credits_name'] = $credit_info['object_name'];
// without an entry associated
if (!empty($entry_id))
{
$messages['entrylink'] = 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id;
$messages['entryanchor'] = JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY');
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_CREDITS_HISTORY_WITH_ENTRY_MARK_'.($type == 'credits_history_mark_paid' ? 'PAID' : 'UNPAID');
} // with an entry associated
else
{
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_CREDITS_HISTORY_MARK_'.($type == 'credits_history_mark_paid' ? 'PAID' : 'UNPAID');
}
break;
// log the credit history delete
case 'credits_history_delete':
$messages = array(
'entrylink' => ''
);
$credit_info = $this->getCreditInfo($credit_id);
$messages['credits'] = $credit_info['credits'];
$messages['credits_type'] = $credit_info['type'];
$messages['credits_name'] = $credit_info['object_name'];
// without an entry associated
if (!empty($entry_id))
{
$messages['entrylink'] = 'index.php?option=com_rsdirectory&view=entry&layout=edit&id=' . $entry_id;
$messages['entryanchor'] = JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_ENTRY');
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_CREDITS_HISTORY_WITH_ENTRY_DELETE';
} // with an entry associated
else
{
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_CREDITS_HISTORY_DELETE';
}
break;
// log create/update field
case 'field_create':
case 'field_update':
$messages = array(
'fieldtype' => $field_type,
'fieldlink' => 'index.php?option=com_rsdirectory&view=field&layout=edit&id=' . $field_id,
'fieldlinkanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_FIELD').' ('.$field_name.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_FIELD_'.($type == 'field_create' ? 'CREATE' : 'UPDATE');
break;
// log publish/unpublish field
case 'field_unpublished':
case 'field_published':
$messages = array(
'fieldtype' => $field_type,
'fieldlink' => 'index.php?option=com_rsdirectory&view=field&layout=edit&id=' . $field_id,
'fieldlinkanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_FIELD').' ('.$field_name.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_FIELD_'.($type == 'field_published' ? 'PUBLISHED' : 'UNPUBLISHED');
break;
// log publish/unpublish field
case 'field_delete':
$messages = array(
'fieldtype' => $field_type,
'fieldname' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_FIELD').' ('.$field_name.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_FIELD_DELETE';
break;
case 'field_assign':
case 'field_unassign':
$messages = array(
'fieldtype' => $field_type,
'fieldlink' => 'index.php?option=com_rsdirectory&view=field&layout=edit&id=' . $field_id,
'fieldlinkanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_FIELD').' ('.$field_name.')',
'formlink' => 'index.php?option=com_rsdirectory&view=form&layout=edit&id=' . $form_id,
'formanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_FORM').' ('.$form_title.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_FIELD_FORM_'.($type == 'field_assign' ? 'ASSIGN' : 'UNASSIGN');
break;
// log create/update form
case 'form_create':
case 'form_update':
$messages = array(
'formlink' => 'index.php?option=com_rsdirectory&view=form&layout=edit&id=' . $form_id,
'formanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_FORM').' ('.$form_title.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_FORM_'.($type == 'form_create' ? 'CREATE' : 'UPDATE');
break;
// log form delete
case 'form_delete':
$messages = array(
'formname' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_FORM').' ('.$form_title.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_FORM_DELETE';
break;
// log category delete
case 'category_delete':
$messages = array(
'categorytitle' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_CATEGORY').' ('.$category_title.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_CATEGORY_DELETE'.($has_children ? '_WITH_CHILDREN' : '');
break;
// log create/update form
case 'category_create':
case 'category_update':
$messages = array(
'categorylink' => 'index.php?option=com_rsdirectory&view=category&layout=edit&id=' . $category_id,
'categoryanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_CATEGORY').' ('.$category_title.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_CATEGORY_'.($type == 'category_create' ? 'CREATE' : 'UPDATE');
break;
// log publish/unpublish category
case 'category_unpublished':
case 'category_published':
$messages = array(
'categorylink' => 'index.php?option=com_rsdirectory&view=category&layout=edit&id=' . $category_id,
'categoryanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_CATEGORY').' ('.$category_title.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_CATEGORY_'.($type == 'category_published' ? 'PUBLISHED' : 'UNPUBLISHED');
break;
// log categories rebuild
case 'categories_rebuild':
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_CATEGORIES_REBUILD';
break;
// log category form assignation
case 'category_form_assignation':
$messages = array(
'categorylink' => 'index.php?option=com_rsdirectory&view=category&layout=edit&id=' . $category_id,
'categoryanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_CATEGORY').' ('.$category_title.')',
'formlink' => 'index.php?option=com_rsdirectory&view=form&layout=edit&id=' . $form_id,
'formanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_FORM').' ('.$form_title.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_CATEGORIES_FORM_ASSIGNATION_'.(!empty($form_title) ? 'TO_FORM' : 'NO_FORM');
break;
// log create/update group
case 'group_create':
case 'group_update':
$messages = array(
'grouplink' => 'index.php?option=com_rsdirectory&view=group&layout=edit&id=' . $group_id,
'groupanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_GROUP').' ('.$group_name.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_GROUP_'.($type == 'group_create' ? 'CREATE' : 'UPDATE');
break;
// log group delete
case 'group_delete':
$messages = array(
'groupname' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_GROUP').' ('.$group_name.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_GROUP_DELETE';
break;
// log create/update form
case 'group_unpublished':
case 'group_published':
$messages = array(
'grouplink' => 'index.php?option=com_rsdirectory&view=group&layout=edit&id=' . $group_id,
'groupanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_GROUP').' ('.$group_name.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_GROUP_'.($type == 'group_published' ? 'PUBLISHED' : 'UNPUBLISHED');
break;
// log create/update credit package
case 'credit_package_create':
case 'credit_package_update':
$messages = array(
'packagelink' => 'index.php?option=com_rsdirectory&view=creditpackage&layout=edit&id=' . $package_id,
'packageanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_PACKAGE').' ('.$package_title.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_CREDIT_PACKAGE_'.($type == 'credit_package_create' ? 'CREATE' : 'UPDATE');
break;
// log credit package delete
case 'credit_package_delete':
$messages = array(
'packagename' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_PACKAGE').' ('.$package_title.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_CREDIT_PACKAGE_DELETE';
break;
// log create/update credit package
case 'credit_package_unpublished':
case 'credit_package_published':
$messages = array(
'packagelink' => 'index.php?option=com_rsdirectory&view=creditpackage&layout=edit&id=' . $package_id,
'packageanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_PACKAGE').' ('.$package_title.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_CREDIT_PACKAGE_'.($type == 'credit_package_published' ? 'PUBLISHED' : 'UNPUBLISHED');
break;
// log create/update email message
case 'email_message_create':
case 'email_message_update':
$messages = array(
'messagelink' => 'index.php?option=com_rsdirectory&view=emailmessage&layout=edit&id=' . $email_id,
'messageanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_EMAIL_MESSAGE').' ('.$email_description.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_EMAIL_MESSAGE_'.($type == 'email_message_create' ? 'CREATE' : 'UPDATE');
break;
// log credit package delete
case 'email_message_delete':
$messages = array(
'messagedescription' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_EMAIL_MESSAGE').' ('.$email_description.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_EMAIL_MESSAGE_DELETE';
break;
// log create/update credit package
case 'email_message_unpublished':
case 'email_message_published':
$messages = array(
'messagelink' => 'index.php?option=com_rsdirectory&view=emailmessage&layout=edit&id=' . $email_id,
'messageanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_EMAIL_MESSAGE').' ('.$email_description.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_EMAIL_MESSAGE_'.($type == 'email_message_published' ? 'PUBLISHED' : 'UNPUBLISHED');
break;
// log the configuration change
case 'configuration_change':
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_CONFIGURATION_CHANGED';
break;
// log regenerate titles
case 'regenerate_titles':
$elements_lang = array();
foreach ($elements as $element) {
$element = strtoupper($element);
$elements_lang[] = JText::_('COM_RSDIRECTORY_FIELDS_'.$element);
}
$messages = array(
'formlink' => 'index.php?option=com_rsdirectory&view=form&layout=edit&id=' . $form_id,
'formanchor' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_FORM').' ('.$form_title.')',
'elements' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_REGENERATE_ELEMENTS'). ' ('.implode(', ',$elements_lang).')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_REGENERATE_TITLES';
break;
// log the import process
case 'import':
$messages = array(
'importfrom' => $import_from
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_IMPORT';
break;
// log backup process
case 'backup':
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_BACKUP_PERFORMED';
break;
// log restore process
case 'restore':
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_RESTORE_PERFORMED';
break;
// log the deletion of a backup archive
case 'delete_backup_file':
$messages = array(
'filehash' => JText::_('PLG_ACTIONLOG_RSDIRECTORY_TYPE_BACKUP_ARCHIVE').' ('.$file_hash.')'
);
$messageLanguageKey = 'PLG_ACTIONLOG_RSDIRECTORY_DELETE_BACKUP_FILE';
break;
}
// add the log
if (!empty($messageLanguageKey))
{
// add the action type
if (empty($messages))
{
$messages = array('action'=> $type);
}
else
{
$messages['action'] = $type;
}
// add the user to the messages
$messages['userid'] = $user->id;
$messages['username'] = $user->name;
$messages['accountlink'] = 'index.php?option=com_users&task=user.edit&id=' . $user->id;
$this->addLog(array($messages), $messageLanguageKey, $this->extension, $user->id);
}
}
}
protected function getCreditInfo($credit_id)
{
$credit_id = (int) $credit_id;
// Get DBO.
$db = JFactory::getDbo();
// Get the entries ids.
$query = $db->getQuery(true)
->select( $db->qn('object_type') )
->select( $db->qn('object_id') )
->select( $db->qn('credits') )
->from( $db->qn('#__rsdirectory_entries_credits') )
->where( $db->qn('id') . ' = ' . $db->q($credit_id) );
$db->setQuery($query);
if ($data = $db->loadAssoc())
{
$data['type'] = $this->getObjectType($data['object_type']);
$data['object_name'] = $this->getObject($data['object_id']);
unset($data['object_type']);
unset($data['object_id']);
return $data;
}
return false;
}
protected function getObjectType($object_type)
{
static $types = array();
if (!isset($types[$object_type]))
{
$types[$object_type] = JText::_( 'COM_RSDIRECTORY_CREDIT_OBJECT_TYPE_' . strtoupper($object_type) );
}
return $types[$object_type];
}
protected function getObject($id)
{
static $names = array();
if (!isset($names[$id]))
{
$field = RSDirectoryHelper::getField($id);
$names[$id] = $field ? $field->properties->get('form_caption') : '';
}
return $names[$id];
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists