User Action Logs/el: Difference between revisions
From Joomla! Documentation
No edit summary |
Updating to match new version of source page |
||
| (12 intermediate revisions by one other user not shown) | |||
| Line 5: | Line 5: | ||
Από την έκδοση Joomla 3.9, ενσωματώθηκε το σύστημα καταγραφής ενεργειών στο core.<br /> | Από την έκδοση Joomla 3.9, ενσωματώθηκε το σύστημα καταγραφής ενεργειών στο core.<br /> | ||
Αυτό το σύστημα αποτελεί την τελική μορφή του [https://magazine.joomla.org/issues/issue-aug-2016/item/3111-gsoc-recording-actions-logs-accessible-by-super-admin-status-update "Recording Action Logs" project from GSoC 2016]. Το σύστημα παρέχει την απαραίτητη υποδομή για την δημιουργία αρχείων καταγραφής και ελέγχου των ενεργειών που εκτελούνται σε έναν ιστότοπο, σύμφωνα με τις απαιτήσεις του διαχειριστή. Οι επεκτάσεις συνδέονται με αυτό το σύστημα και παρέχουν προσαρμοσμένα μηνύματα ή να τρέχουν τυποποιημένες διαδικασίες CRUD. | |||
<br /> | <br /> | ||
Σε αυτό τον οδηγό, θα βρείτε όλες τις πληροφορίες για το πως θα στήσετε αυτό το νέο σύστημα. | Σε αυτό τον οδηγό, θα βρείτε όλες τις πληροφορίες για το πως θα στήσετε αυτό το νέο σύστημα. | ||
| Line 19: | Line 19: | ||
Για να μάθετε περισσότερα, παρακαλούμε διαβάστε: | Για να μάθετε περισσότερα, παρακαλούμε διαβάστε: | ||
*[[S:MyLanguage/Help38:Components_Actionlogs| | *[[S:MyLanguage/Help38:Components_Actionlogs|Απεικόνιση Καταγραφής Ενεργειών Χρήστη]] | ||
*[[S:MyLanguage/Help38:Components_User_Actionlogs_Options| | *[[S:MyLanguage/Help38:Components_User_Actionlogs_Options|Επιλογές Καταγραφής Ενεργειών Χρήστη]] | ||
==Πρόσθετο== | ==Πρόσθετο== | ||
| Line 35: | Line 35: | ||
===Αρχείο Ενεργειών - Νεότερες Ενέργειες=== | ===Αρχείο Ενεργειών - Νεότερες Ενέργειες=== | ||
Αυτό το ένθεμα εμφανίζει | Αυτό το ένθεμα εμφανίζει στη Περιοχή Διαχείρισης μια λίστα με τις πιο πρόσφατες ενέργειες χρηστών. | ||
[[Image:Joomla-39-action-logs-latest-module-el.png|800px]] | [[Image:Joomla-39-action-logs-latest-module-el.png|800px]] | ||
''' | '''Σημείωση:''' Το ένθεμα δεν εμφανίζεται εξ' ορισμού σε ιστότοπους που γίνονται ενημέρωση στην έκδοση 3.9. Για να το εμφανίσετε στον πίνακα ελέγχου, πηγαίνετε στο {{rarr|Επεκτάσεις,Διαχείριση,Διαχείριση,Ενεργοποιήστε το πρόσθετο: Σύστημα - Αρχείο καταγραφής ενεργειών χρήστη}} και μετά στο {{rarr|Επεκτάσεις,Ενθέματα,Περιοχή Διαχείρισης,Νέο,Αρχείο Ενεργειών - Νεότερες Ενέργειες}} | ||
Διαβάστε επίσης: [[S:MyLanguage/Help38:Extensions_Module_Manager_Admin_Latestactions|Latest Actions Admin Module]]. | Διαβάστε επίσης: [[S:MyLanguage/Help38:Extensions_Module_Manager_Admin_Latestactions|Latest Actions Admin Module]]. | ||
| Line 52: | Line 52: | ||
<source lang="php"> | <source lang="php"> | ||
$extension = 'com_mycomponent'; | $extension = 'com_mycomponent'; | ||
$db = | $db = Factory::getDbo(); | ||
$db->setQuery(' INSERT into #__action_logs_extensions (extension) VALUES ('.$db->Quote($extension).') ' ); | $db->setQuery(' INSERT into #__action_logs_extensions (extension) VALUES ('.$db->Quote($extension).') ' ); | ||
try { | try { | ||
| Line 58: | Line 58: | ||
$result = $db->execute(); | $result = $db->execute(); | ||
} catch (RuntimeException $e) { | } catch (RuntimeException $e) { | ||
Factory::getApplication()->enqueueMessage($e->getMessage()); | |||
return false; | return false; | ||
} | } | ||
| Line 78: | Line 78: | ||
$result = Factory::getDbo()->insertObject('#__action_log_config', $logConf); | $result = Factory::getDbo()->insertObject('#__action_log_config', $logConf); | ||
} catch (RuntimeException $e) { | } catch (RuntimeException $e) { | ||
Factory::getApplication()->enqueueMessage($e->getMessage()); | |||
return false; | return false; | ||
} | } | ||
</source> | </source> | ||
Φυσικά, θα ήταν καλό να κάνετε έναν έλεγχο, ώστε να σιγουρευτείτε ότι οι εγγραφές δεν υπάρχουν ήδη. | Φυσικά, θα ήταν καλό να κάνετε έναν έλεγχο, ώστε να σιγουρευτείτε ότι οι εγγραφές δεν υπάρχουν ήδη. | ||
===Βοηθός Εφαρμογής=== | ===Βοηθός Εφαρμογής=== | ||
Σε αυτό το παράδειγμα, ο βοηθός εφαρμογής χρησιμοποιείται για να εκτελέσει την αποθήκευση των ενεργειών. | |||
<source lang="php"> | <source lang="php"> | ||
| Line 145: | Line 146: | ||
===Front End Transaction Form=== | ===Front End Transaction Form=== | ||
Τώρα που έχουν γίνει τα απαραίτητα, πρέπει απλώς να ενεργοποιήσουμε την διαδικασία. Θα καταγράφουμε πληροφορίες σχετικά με μια ενέργεια που εκτελείται ή ενημερώνεται και έχουμε ένα μοντέλο που ονομάζεται <tt>transactionform.php</tt>. Το αρχείο καταγραφής ενημερώνεται με την Αποθήκευση της ενέργειας. | |||
<source lang="php"> | <source lang="php"> | ||
| Line 169: | Line 170: | ||
===Αρχείο Γλώσσας=== | ===Αρχείο Γλώσσας=== | ||
Τέλος, για να γίνει κατανοητή η εμφάνιση της Λίστας Ενεργειών που έχουν καταγραφεί στην Περιοχή Διαχείρισης, του Joomla! θα πρέπει να προστεθούν γλωσσικοί ορισμοί στο αρχείο γλώσσας el-GR.com_mycomponent.ini.<br /> | |||
<source lang="php"> | <source lang="php"> | ||
Latest revision as of 15:03, 1 April 2020
Πως να χρησιμοποιήσετε το νέο σύστημα
Καταγραφής Ενεργειών Χρήστη
Από την έκδοση Joomla 3.9, ενσωματώθηκε το σύστημα καταγραφής ενεργειών στο core.
Αυτό το σύστημα αποτελεί την τελική μορφή του "Recording Action Logs" project from GSoC 2016. Το σύστημα παρέχει την απαραίτητη υποδομή για την δημιουργία αρχείων καταγραφής και ελέγχου των ενεργειών που εκτελούνται σε έναν ιστότοπο, σύμφωνα με τις απαιτήσεις του διαχειριστή. Οι επεκτάσεις συνδέονται με αυτό το σύστημα και παρέχουν προσαρμοσμένα μηνύματα ή να τρέχουν τυποποιημένες διαδικασίες CRUD.
Σε αυτό τον οδηγό, θα βρείτε όλες τις πληροφορίες για το πως θα στήσετε αυτό το νέο σύστημα.
Σημείωση: Μόνο οι Διαχειριστές έχουν πρόσβαση στο Σύστημα Καταγραφής ενεργειών.
Εφαρμογή
Αρχείο Καταγραφής Ενεργειών Χρήστη
Πλοηγηθείτε στο Χρήστες → Αρχείο καταγραφής ενεργειών χρήστη για να δείτε το αρχείο καταγραφής ενεργειών χρήστη.
File:Joomla-39-action-logs-dashboard-el.png
Από αυτή την οθόνη ένας Διαχειριστής έχει μια καθολική επισκόπηση όλων των ενεργειών που έχουν γίνει από τους χρήστες και μπορεί να επανεξετάσει, να εξάγει, να διαγράψει ή και να εκκαθαρίσει τις εγγραφές.
Για να μάθετε περισσότερα, παρακαλούμε διαβάστε:
Πρόσθετο
Σύστημα - Αρχείο καταγραφής ενεργειών χρήστη
Εάν ενεργοποιηθεί, επιτρέπει τον ορισμό των ημερών που θα διατηρούνται τα αρχεία καταγραφής πριν διαγραφούν.
Αρχείο Καταγραφής
Εάν ενεργοποιηθεί, καταγράφει τις ενέργειες των χρηστών στις επεκτάσεις του πυρήνα του Joomla, ώστε να μπορούν να ελεγχθούν αν χρειαστεί.
Προστασία δεδομένων - Αρχείο Καταγραφής Ενεργειών
Εάν ενεργοποιηθεί, δίνει την δυνατότητα εξαγωγής δεδομένων καταγραφής ενεργειών μετά από αίτημα ενός χρήστη.
Ένθεμα
Αρχείο Ενεργειών - Νεότερες Ενέργειες
Αυτό το ένθεμα εμφανίζει στη Περιοχή Διαχείρισης μια λίστα με τις πιο πρόσφατες ενέργειες χρηστών.
File:Joomla-39-action-logs-latest-module-el.png
Σημείωση: Το ένθεμα δεν εμφανίζεται εξ' ορισμού σε ιστότοπους που γίνονται ενημέρωση στην έκδοση 3.9. Για να το εμφανίσετε στον πίνακα ελέγχου, πηγαίνετε στο Επεκτάσεις → Διαχείριση → Διαχείριση → Ενεργοποιήστε το πρόσθετο: Σύστημα - Αρχείο καταγραφής ενεργειών χρήστη και μετά στο Επεκτάσεις → Ενθέματα → Περιοχή Διαχείρισης → Νέο → Αρχείο Ενεργειών - Νεότερες Ενέργειες
Διαβάστε επίσης: Latest Actions Admin Module.
Πώς να συνδέσετε μια επέκταση στο σύστημα
Εάν πιστεύετε ότι χρειάζονται αλλαγές ή βελτιώσεις σε αυτόν τον τομέα, μην διστάσετε να προσθέσετε ή να επεξεργαστείτε τις πληροφορίες.
Component Installation Script
Προσθέστε την επέκταση στον πίνακα (#__action_logs_extensions) έτσι ώστε να εμφανιστεί στις ρυθμίσεις της Καταγραφής Ενεργειών Χρήστη
$extension = 'com_mycomponent';
$db = Factory::getDbo();
$db->setQuery(' INSERT into #__action_logs_extensions (extension) VALUES ('.$db->Quote($extension).') ' );
try {
// If it fails, it will throw a RuntimeException
$result = $db->execute();
} catch (RuntimeException $e) {
Factory::getApplication()->enqueueMessage($e->getMessage());
return false;
}
Προσθέστε την επέκταση στον πίνακα (#__action_log_config) έτσι ώστε να συλλέγονται οι πληροφορίες των ενεργειών.
$logConf = new stdClass();
$logConf->id = 0;
$logConf->type_title = 'transaction';
$logConf->type_alias = $extension;
$logConf->id_holder = 'id';
$logConf->title_holder = 'trans_desc';
$logConf->table_name = '#__mycomponent_transaction';
$logConf->text_prefix = 'COM_MYCOMPONENT_TRANSACTION';
try {
// If it fails, it will throw a RuntimeException
// Insert the object into the table.
$result = Factory::getDbo()->insertObject('#__action_log_config', $logConf);
} catch (RuntimeException $e) {
Factory::getApplication()->enqueueMessage($e->getMessage());
return false;
}
Φυσικά, θα ήταν καλό να κάνετε έναν έλεγχο, ώστε να σιγουρευτείτε ότι οι εγγραφές δεν υπάρχουν ήδη.
Βοηθός Εφαρμογής
Σε αυτό το παράδειγμα, ο βοηθός εφαρμογής χρησιμοποιείται για να εκτελέσει την αποθήκευση των ενεργειών.
/**
* Record transaction details in log record
* @param object $user Saves getting the current user again.
* @param int $tran_id The transaction id just created or updated
* @param int $id Passed id reference from the form to identify if new record
* @return boolean True
*/
public static function recordActionLog($user = null, $tran_id = 0, $id = 0)
{
// get the component details such as the id
$extension = MycomponentHelper::getExtensionDetails('com_mycomponent');
// get the transaction details for use in the log for easy reference
$tran = MycomponentHelper::getTransaction($tran_id);
$con_type = "transaction";
if ($id === 0) { $type = 'New '; } else { $type = 'Update '; }
$message = array();
$message['action'] = $con_type;
$message['type'] = $type . $tran->tran_type . ' - '.$tran->tran_desc . ' $' . $tran->tran_amount;
$message['id'] = $tran->id;
$message['title'] = $extension->name;
$message['extension_name'] = $extension->name;
$message['itemlink'] = "index.php?option=com_mycomponent&task=transaction.edit&id=".$tran->id;
$message['userid'] = $user->id;
$message['username'] = $user->username;
$message['accountlink'] = "index.php?option=com_users&task=user.edit&id=".$user->id;
$messages = array($message);
$messageLanguageKey = Text::_('COM_MYCOMPONENT_TRANSACTION_LINK');
$context = $extension->name.'.'.$con_type;
$fmodel = MycomponentHelper::getForeignModel('Actionlog', 'ActionlogsModel');
$fmodel->addLog($messages, $messageLanguageKey, $context, $user->id);
return true;
}
/**
* Get the Model from another component for use
* @param string $name The model name. Optional. Default to my own for safety.
* @param string $prefix The class prefix. Optional
* @param array $config Configuration array for model. Optional
* @return object The model
*/
public function getForeignModel($name = 'Transaction', $prefix = 'MycomponentModel', $config = array('ignore_request' => true))
{
\Joomla\CMS\MVC\Model\ItemModel::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_actionlogs/models', 'ActionlogsModelActionlog');
$fmodel = \Joomla\CMS\MVC\Model\ItemModel::getInstance($name, $prefix, $config);
return $fmodel;
}
Front End Transaction Form
Τώρα που έχουν γίνει τα απαραίτητα, πρέπει απλώς να ενεργοποιήσουμε την διαδικασία. Θα καταγράφουμε πληροφορίες σχετικά με μια ενέργεια που εκτελείται ή ενημερώνεται και έχουμε ένα μοντέλο που ονομάζεται transactionform.php. Το αρχείο καταγραφής ενημερώνεται με την Αποθήκευση της ενέργειας.
// So the code above this point checks and does what it should do and then after the successful save of the record, we check for the parameter setting to see if logging is required, we pass key elements to recordActionLog.
$table = $this->getTable();
if ($table->save($data) === true) {
/* ---------------------------------------------------------------- */
// trigger transaction log if required
$act_log = $params->get('act_log', 0);
if ($act_log && $table->id) {
// gather information and log in a new action log record
MycomponentHelper::recordActionLog($user, $table->id, $data['id']);
}
/* ---------------------------------------------------------------- */
return $table->id;
} else {
return false;
}
Αρχείο Γλώσσας
Τέλος, για να γίνει κατανοητή η εμφάνιση της Λίστας Ενεργειών που έχουν καταγραφεί στην Περιοχή Διαχείρισης, του Joomla! θα πρέπει να προστεθούν γλωσσικοί ορισμοί στο αρχείο γλώσσας el-GR.com_mycomponent.ini.
COM_MYCOMPONENT_TRANSACTION_LINK="User <a href='{accountlink}'>{username}</a> created a transaction ( <a href='{itemlink}'>{type}</a> )"
Ελπίζουμε να βοηθήσαμε.