Elxis CMS Forum

Ελληνικό Forum => Γενικά Θέματα για το Elxis CMS => Topic started by: NewAge on November 16, 2006, 10:52:47

Title: Migration from mambo/joomla to elxis
Post by: NewAge on November 16, 2006, 10:52:47
Υπάρχει κάποιος τρόπος να γίνει migration μια εφαρμογή που είναι φτιαγμένη στο joomla στο elxis;
Πόσο ταιριαζουν οι βάσεις;
Με κάποιο sql comparer;
Title: Re: Migration from mambo/joomla to elxis
Post by: datahell on November 16, 2006, 12:11:02
Όταν λες εφαρμογή εννοείς κάποιο component, module, mambot φαντάζομαι. Βεβαίως και μπορεί να γίνει, το έχουμε κάνει πολλές φορές μετατρέποντας μη-συμβατά με το elxis component του mambo/joomla σε συμβατά για το elxis. Μερικές φορές μπαίνουμε και στον πειρασμό να τα αλλάξουμε και λίγο προσθέτοντάς τους δυνατότητες που υπάρχουν σε όλες τις άλλες εφαρμογές του elxis (πχ το σύστημα πολυγλωσσίας) και δεν υποάρχουν στα αυθεντικά αφού δεν υποστηρίζονται αυτές οι λειτουργίες από τα mambo/joomla.

Γενικά για την συμβατότητα θα πρέπει να προσέξεις τα ακόλουθα:

Τα queries να είναι συμβατά με ADODB και να μην περιέχουν functions της mysql. Σε αντίθετη περίπτωση το component θα τρέχει μόνο σε Mysql. αν δεν σε ενοχλεί αυτό, δεν υπάρχει πρόβλημα. Βέβαια οι functions της mysql ίσως προκαλούν πρόβλημα στο ADODB οπότε καλό είναι να κάνουμε έναν έλεγχο για σφάλματα. Για να ελέγξουμε μία function για σφάλματα σχετιζόμενα με τη βάση/queries μπορούμε να γράψουμε:
$database->_resource->debug = true;
Μίοα κλασσική αλλαγή στα queries είναι το LIMIT. Στο elxis το LIMIT δεν μπαίνει μέσα στο query αλλά στη function setQuery.

Παράδειγμα
mambo/joomla:
$query = "SELECT * FROM #__USERS LIMIT 5";
$database->setQuery($query);

Elxis:
$query = "SELECT * FROM #__USERS";
$database->setQuery($query, '#__', 5, 0);

Αν θέλουμε να λάβουμε όλα τα αποτελέσματα το γράφουμε όπως στα mambo/joomla:
$database->setQuery($query);

Συνήθως δεν χρειάζεται να γνωρίζεται για το adodb, αφού σαν παρέχουμε όλες τις συναρτήσεις έτοιμες εντός της κλάσης $database (που είναι ίδια με του mambo αλλά εμπεριέχει το ADODB) εκτός αν θέλετε να κάνετε κάτι πολύ εξειδικευμένο. Ωστόσο, για αυτούς που θέλουν να το ψάξουν περισσότερο:

Η σελίδα του ADODB (http://adodb.sourceforge.net/)
Το manual του ADODB (http://phplens.com/lens/adodb/docs-adodb.htm)

Εκτός από τα queries πολύ μεγάλη σημασία έχει το σύστημα πρόσβασης. Τα ψευδο-group visitors, registered, special των mambo/joomla δεν υπάρχουν στο elxis αλλά οι πραγματικές ομάδες.

Τα ονόματα των ομάδων δεν είναι στάνταρ στο elxis αφού μπορείτε να τα μετονομάζετε/διαγράφετε ή να δημιουργείτε νέα. Οπότε είναι ΤΕΡΑΣΤΙΟ ΛΑΘΟΣ να ελέγχετε την πρόσβαση με βάση τον όνομα του group. Στο Elxis χρησιμοποιούμε το $my->allowed και τις function του ACL.


Παράδειγμα
mambo/joomla:
if ($my->gid >0) {....
ή
if ($my->usertype == 'superadministrator') {.....

elxis:
$allowed = explode(',', $my->allowed);
if (in_array($access, $allowed)) { .....
ή
ιδιαίτερο παράδειγμα από το Elxis:
if (($mosConfig_access == '1') || ($mosConfig_access == '3')) {
   if ( $my->usertype == '' ) {
      $usertype = eUTF::utf8_strtolower($acl->get_group_name('29'));
   } else {
      $usertype = eUTF::utf8_strtolower($my->usertype);
   }
   if (!($acl->acl_check( 'action', 'view', 'users', $usertype, 'components', 'all' ) ||
       $acl->acl_check( 'action', 'view', 'users', $usertype, 'components', 'com_content' ) ||
       $acl->acl_check( 'action', 'view', 'users', $usertype, 'components', 'com_frontpage' ))) {
       echo _NOT_AUTH;
       exit();
   }
}


Για το χειρισμό των αρχείων χρησιμοποιούμε την κλάση File Manager που έχει ενσωματωμένη υποστήριξη FTP και είναι απλούστατη στο χειρισμό. Άνοιξε το αρχείο includes/Core/filemanager.class.php για να δεις τις συναρτήσεις της και τη χρήση τους.

Ψάξε σε αυτή την αγορά διάφορα άλλα σχετικά Post που έχω γράψει.
Title: Re: Migration from mambo/joomla to elxis
Post by: NewAge on November 16, 2006, 12:21:14
Πολύ χρήσιμα τα παραδείγματα σου ευχαριστώ πολύ...
Θα χρειαστούν γιατί για την εφαρμογή που ετοιμάζω μάλλον θα χρειαστώ και δικά μου component.

Στη συγκεκριμένη περίπτωση όμως δεν εννοούσα ακριβώς αυτό.
Λάθος δικό μου ίσως η λέξη "εφαρμογή"

Εννοώ ολοκληρωμένο σύστημα. Ένα site δηλαδή που το έχω στήσει σε joomla, έχει ήδη δεδομένα και τώρα θέλω να το ξαναστήσω από την άρχη βασισμένο σε elxis

Αυτό που εννοούσα και θα έπρεπε να πω από την αρχή είναι migration της βάσης ενός συστήματος joomla σε μία βάση ενός συστήματος elxis
p.x αν το prmanager ήταν στημένο με joomla και είχε μπόλικο υλικό μέσα (κείμενο, menus κτλ) πως θα το άλλαζα και θα το έκανα elxis

Ευχαριστώ πολύ και συγγνώμη για την παρεξήγηση...
Title: Re: Migration from mambo/joomla to elxis
Post by: datahell on November 16, 2006, 12:37:16
Η βάση του Elxis περιέχει αρκετές αλλαγές σε σχέση με τα mambo/joomla αλλά δεν αποτελούν ιδιαίτερο πρόβλημα αφού έχουμε προνοήσει ώστε να δέχεται NULL τιμές στα μη-υποχρεωτικά πεδία (σε αντίθεση με τα mambo/joomla: NOT NULL default ''). Η μετατροπή μπορεί να γίνει αλλά μόνο χειροκίνητα και με πολύ προσοχή.

Τα δεδομένα σου πρέπει να εισαχθούν ως σωστά UTF-8, ούτε καραγκιοζάκια, ούτε iso-8859-7.
Θα πρότεινα να κάνεις την default εγκατάσταση του elxis και μετά να κάνεις export τα δεδομένα από το Joomla. Αν τα queries είναι σε ολοκληρωμένη μορφή (περιέχουν δηλ. και τα ονόματα των πεδίων) κάπου θα πρέπει να κάνεις μετονομασίες και προσθήκες (πχ language). Κόψε αυτό το αρχείο σε κομμάτια και πέρασέ τα πίνακα-πίνακα. Πχ πέρασε πρώτα του τομείς. Μετά τις κατηγορίες και μετά τα αντικείμενα περιεχομένου. Έλεγχε τα ids των rows ώστε να αντιστοιχούν πχ τα άρθρα στις σωστές κατηγορίες. Πρόσθεσε κατόπιν τα μενού και γενικότερα τους υπόλοιπους πίνακες. Αν έχεις χρήστες προτείνω ΝΑ ΜΗΝ τους μεταφέρεις γιατί είναι πολύ δύκολη εργασία και είναι σχεδόν βέβαιο ότι θα κάνεις λάθος. Πρόσθεσέ τους έναν-έναν από τη διαχείριση καλύτερα γραφωντάς τους ξανά εσύ.