Elxis CMS Forum
Ελληνικό Forum => Διαχείριση => Topic started by: ArXoS on March 31, 2011, 00:24:12
-
To πρόβλημά μου είναι οτι έχω 5000 authors που πρέπει να έχουν το δικαίωμα να κάνουν edit τις δημοσιεύσεις τους και μετά τη δημοσίευσή τους για τυχόν συμπληρώσεις και διορθώσεις.
Πολλοί όμως κάνουν edit και χαλάνε τη μορφοποίηση. Προσπαθώ να βρω έναν τρόπο να ειδοποιούμαι πότε γίνεται edit ένα content item και να τα ελέγχω, και έκανα την παρακάτω επέμβαση στο comonent/content.php
Ο αρχικός κώδικας στο function saveContent ήταν :
if ( $isNew ) {
// messaging for new items
require_once( $mosConfig_absolute_path .'/components/com_messages/messages.class.php' );
$database->setQuery( "SELECT id FROM #__users WHERE sendemail = '1'" );
$users = $database->loadResultArray();
foreach ($users as $user_id) {
$msg = new mosMessage( $database );
$msg->send( $my->id, $user_id, "New Item", sprintf( _ON_NEW_CONTENT, $my->username, $row->title, $section, $category ) );
}
}
και τον έκανα σε :
// messaging for new items
require_once( $mosConfig_absolute_path .'/components/com_messages/messages.class.php' );
$database->setQuery( "SELECT id FROM #__users WHERE sendemail = '1'" );
$users = $database->loadResultArray();
foreach ($users as $user_id) {
$msg = new mosMessage( $database );
if ( $isNew ) {
} else {
$msg->send( $my->id, $user_id, "Edited Item", sprintf( _ON_EDITED_CONTENT, $my->username, $row->title, $section, $category ) );
}
}
(δεν θέλω να ειδοποιούμαι όταν γίνεται υποβολή νέου άρθρου, αλλά μόνο όταν γίνεται edit)
Δουλεύει από ότι φαίνεται. Είναι σωστή η παραπάνω επέμβαση ? (elxis 2006)
Ευχαριστώ
-
Για ποιο ορθή τοποθέτηση θα το έκανα έτσι :
Αντί :
if ( $isNew ) {
} else {
$msg->send( $my->id, $user_id, "Edited Item", sprintf( _ON_EDITED_CONTENT, $my->username, $row->title, $section, $category ) );
}
Έτσι :
if ( !$isNew ) {
$msg->send( $my->id, $user_id, "Edited Item", sprintf( _ON_EDITED_CONTENT, $my->username, $row->title, $section, $category ) );
}
Πιο πλήρης στις περιπτώσεις Νέου και επεξεργασμένου αντικείμενου περιεχομένου θα ήταν :
if ( $isNew ) {
$msg->send( $my->id, $user_id, "New Item", sprintf( _ON_NEW_CONTENT, $my->username, $row->title, $section, $category ) );
}else{
$msg->send( $my->id, $user_id, "Edited Item", sprintf( _ON_EDITED_CONTENT, $my->username, $row->title, $section, $category ) );
}
-
thanks .. την έχω παραλείψει την δεύτερη γραμμή γιατί δεν θέλω καμία ενέργεια όταν είναι νέα υποβολή (τις νέες υποβολές τις βλέπω από το adminpanel στα πιο πρόσφατα, αυτές που γίνονται edit εν αγνοία μου δεν βλέπω) για να μην βομβαρδίζομαι από mails που δεν έχουν νόημα
Θα μπορούσε το $msg->send να αντικατασταθεί με την εντολή mail ωστε να στέλνει email απευθείας ?
Φαντάζομαι ότι θα πρέπει να στηθεί και ένα query για να βρίσκει τις emails των administrators ή (για να γλυτώσεις το query) να δοθεί από πριν μία σταθερή email που τα στέλνει το report χωρίς να περνάει από το $database->setQuery( "SELECT id FROM #__users WHERE sendemail = '1'" );
-
Τίποτα. Χαρά μου να λέω την γνώμη μου.
Μπορείς να το αντικαταστήσεις το $msg->send άλλα πιστεύω ότι έτσι είναι καλύτερα.
Προφανώς μέσα στα Core αρχεία της 2006 έκδοσης έχει συνάρτηση Mail που παίρνει από τις γενικές ρυθμίσεις του Elxis και είναι πιο σωστό να χρησιμοποιήσουμε αυτήν την συνάρτηση από ότι την κοινή σε όλους mail που έχουμε στην PHP. Καλό θα ήταν να μπορούσα να δω από την Κλάση mosMessage την συνάρτηση public function send() του αρχείου : components/com_messages/messages.class.php. Έτσι θα μπορούσα να δω πέρα από τα ορίσματα που παίρνει τι τα κάνει αυτά ;D
Το $query δεν πρέπει να σβηστεί μιας και ελέγχει την επεξεργασία αν έχει γίνει , από ποιον , σε ποια ενότητα , σε ποια κατηγορία, τίτλος αντικείμενου περιεχομένου κτλ. Οπότε πρέπει πάντα να υπάρχει.
-
τέλεια ;D
Προστέθηκε η εντολή
mail("*****@greekmasa.gr,*******@greekmasa.gr","Edited Item", sprintf( _ON_EDITED_CONTENT, $my->username, $row->title, $section, $category ),"From: GreekMasa <******@greekmasa.gr>");
Και ενημερώνονται με email όλοι οι διαχειριστές ;D
Πολύ χρήσιμο hack για τη περίπτωσή μου :)
-
Μια χαρά.Μπράβο!
-
καλά, έχω πάθει την πλάκα μου .. πάνω από 20 edits την ημέρα και δεν έπαιρνα είδηση τόσα χρόνια >:(