Με τα hooks αλλάζετε τη συμπεριφορά του πυρήνα και των plugins χωρίς να αγγίξετε τον κώδικά τους, οπότε οι αλλαγές σας μένουν μετά από κάθε update.
Filters και actions
// filter: παίρνει μια τιμή και επιστρέφει την αλλαγμένη
add_filter('cms39_search_results_structure', fn($tpl) => '<div class="row">%results$s</div>%pagination$s');
// action: τρέχει σε ένα σημείο, χωρίς επιστροφή
add_action('cms39_cli_cron', function () {
// περιοδική εργασία
});
// με περισσότερα ορίσματα: προτεραιότητα, πλήθος ορισμάτων
add_filter('cms39_settings_saved', fn($notes, $new) => $notes, 10, 2);Μερικά σημεία χρησιμοποιούν το HookManager (π.χ. cms39_fields_register, cms39_admin_sidebar_menu, hooks του e-shop):
HookManager::addHook('cms39_admin_sidebar_menu', function (array $groups) {
$groups['theme']['items'][] = ['label' => 'Οδηγός', 'icon' => 'bi bi-book', 'url' => cp_URL . 'cp_loader?page=mod_admin_guide'];
return $groups;
});Συχνά hooks
cms39_routes | νέες διαδρομές URL |
cms39_settings_ui | ετικέτες / βοήθεια στις ρυθμίσεις του plugin σας |
cms39_cli_commands | νέες εντολές CLI |
cms39_webhooks | νέα webhooks |
cms39_menu_tree | αλλαγή ενός μενού πριν την εμφάνιση |
cms39_robots_rules | κανόνες στο robots.txt |
linkTypes | φόρμα admin για δικό σας τύπο περιεχομένου |
Η πλήρης λίστα, με το σημείο του κώδικα όπου ορίζεται και ακούγεται κάθε hook, παράγεται αυτόματα από τον κώδικα (php cms39 docs:index).
ΗΛΕΚΤΡΟΝΙΚΑ ή τηλεφωνικά στο +30.2152151245-8