Elxis CMS Forum

Ελληνικό Forum => Πρόσθετα => Topic started by: ArXoS on June 28, 2007, 01:58:32

Title: MyContent Component
Post by: ArXoS on June 28, 2007, 01:58:32
Γεια σας
Εχω εγκαταστήσει το MyConents component (http://joomlicious.com/index.php?option=com_content&task=view&id=3&Itemid=25)
Αν και ειναι εκδοση για Joomla, δουλευει μια χαρά .. εμφανίζει τα αρθρα των χρηστών, ποια είναι δημοσιευμένα και ποια όχι, ανα κατηγορία, κτλ

Παρέχει τη δυνατότητα επεξεργασίας τους, όταν όμως κάνουν κλικ πάνω στο λινκ του άρθρου, βγάζει το μύνημα (ακόμα και σε μένα που είμαι admin)
" Δεν έχετε την εξουσιοδότηση να δείτε αυτό το περιεχόμενο.
Αυτό το αντικείμενο απαιτεί υψηλότερο επίπεδο πρόσβασης από το δικό σας."

Φαντάζομαι οτι έχει να κάνει με τους κωδικούς των users που δεν συμβαδίζουν με το joomla

Μπορει κανείς να το κάνει να δουλεψει σε elxis? Είναι πολύ χρήσιμο component Και πιστεύω οτι θα έπρεπε να βρίσκεται στο directory του elxis (εχω κάνει και τη μετάφραση στα ελληνικά αν ενδιαφέρεται κανείς)
Title: Re: MyContent Component
Post by: ArXoS on June 28, 2007, 03:27:47
Παιδιά το βρήκα , μπορεί να κλείσει το thrent
Sorry
Title: Re: MyContent Component
Post by: akalant on June 28, 2007, 13:13:18
Πες μας τι βρήκες  να το μάθουμε κι εμείς!  Και να υπάρχει η λύση στην Αγορά!
Title: Re: MyContent Component
Post by: datahell on June 28, 2007, 13:37:01
All these components are incompatible with Elxis and very dangerous to be used.

A huge difference between Elxis and mambo/joomla:

In mambo/joomla when a user is logged-in in frontend has group id = 1, if he is just a visitor has 0.
So, in joomla if we want to check if someone can see something we check user group to be greater than 0 (gid > 0).

This is a nuclear bomb for Elxis as in Elxis there is no group 0, or even group 1. In Elxis visitors have group id = 29 (!) and users = 18 (!). So, for both of them the gid > 0 check is valid and visitors will see things that are for registered users!!!!

In Elxis we do this check with the $my->allowed variable which does not exist in mambo/joomla! Elxis has a much more advanced access system than mambo/joomla.
Title: Re: MyContent Component
Post by: ArXoS on June 28, 2007, 20:41:57
Αυτά που γράφει ο DataHellas τα ήξερα, και φανταζόμουν οτι εκεί υπήρχε το πρόβλημα γιαυτό και έκανα post

Τελικά δεν χρειάστηκε να γίνει έλεγχος σε αυτό το επίπεδο,  αλλαγή ήταν πολύ πιο απλή
Παρατήρησα οτι το link της δημοσίευσης ήταν
....index.php?option=com_mycontent&task=publish&......

της επεξεργασίας ήταν
....index.php?option=com_content&task=publish&......

και της προβολής ήταν
....index.php?option=com_mycontent&task=publish&......

αυτό που δε δούλευε ήταν η προβολή, οπότε το έκανα com_content από com_mycontent

H αλλαγή έγινε στο mycontent.html.php στη σειρά 224, 292, 496

Δεν έχω ενεργοποιημένο το post του mycontent, καθώς και δεν με ενδιέφερε αυτή τη δυνατότητα (η οποία εξακολουθεί να μην δουλεύει βέβαια, καθώς είναι απο εδώ και πέρα θέμα κωδικού χρηστών)
Title: Re: MyContent Component
Post by: pcfun on July 05, 2007, 21:34:44
Γίνεται να μας γράψετε τους κωδικούς για κάθε επίπεδο χρήστη?
π.χ. id = 18 για τους χρήστες (registered)
id = 29 για τους επισκέπτες (public frontend)
κ.ο.κ
Title: Re: MyContent Component
Post by: pcfun on July 05, 2007, 21:42:53
Στο MyContent και γενικά σε όποιο άλλο πρόσθετο του Τζουμλά ή Μάμμπο, ποιος είναι ο κώδικας που ορίζει ποιοι χρήστες επιτρέπεται να έχουν πρόσβαση σε λειτουργίες?

Είπατε για παράδειγμα ότι στο έλξις ορίζεται από το  $my->allowed. Στο Τζουμλά ποιό είναι το αντίστοιχο το οποίο προφανώς θα πρέπει να αλλάξουμε για να είναι συμβατό με το Elxis?
Title: Re: MyContent Component
Post by: datahell on July 05, 2007, 22:22:59
Δεν υπάρχει αντίστοιχο του $my->allowed στο Joomla.

Στο joomla οι επισκέπτες ανοίκουν στο group 0, οι χρήστες στο 1 και οι "ειδικοί χρήστες" στο 2. Αυτό είναι όλο.

Στο Elxis το σύστημα πρόσβασης είναι τροποποιήσιμο από τους χρήστες μέσω του access manager. Δεν υπάρχει τίποτα standard, συνεπώς δεν υπάρχουν στάνταρ ομάδες κλπ αφού όλα μπορείς να τα αλλάξεις, να τα μετονομάσεις, σβήσεις κλπ. Βέβαια το Elxis έρχεται με τα στάνταρ group από την εποχή του mambo αλλά από τη στιγμή που μπορείς να τα αλλάξεις δεν μπορεί να είσαι σίγουρος ότι όλα είναι όπως εσύ νομίζεις...

Πως δουλεύει η διαχείριση πρόσβασης στο Elxis;
Ανάλογα με τη μορφή του δέντρου ιεραρχίας των ομάδων (παραμετροποιήσιμο μέσω του διαχειριστή πρόσβασης) το Elxis γεννά για κάθε χρήστη/επισκέπτη (στο elxis ο επισκέπτης αντιμετωπίζεται περίπου σαν χρήστης) μία αλληλουχία ομάδων στις οποίες ο χρήστης έχει πρόσβαση. Αυτή αποτελείται από τα id των ομάδων που είναι γονικές στη δική του συμπεριλαμβανομένης της δικής του χωρισμένες μεταξύ τους με κόμμα. Το Elxis αδιαφορεί πλήρως για το πως λέγεται η ομάδα (*), για αυτό είναι δυνατή και η μετονομασία των ομάδων. Κοιτά μόνο τα id των ομάδων και τη θέση τους στο δέντρο ιεραρχίας. Αυτή η αλληλουχία αποθηκεύεται στο session για κάθε χρήστη και είναι διαθέσιμη μέσω της χορδής $my->allowed.

* Συνέπεια αυτού είναι πως οι έλεγχοι του joomla της μορφής: αν η ομάδα λέγεται "super administrator" δώσε πρόσβαση είναι εντελώς λάθος στο elxis.


Ένα παράδειγμα για να το καταλάβουμε στην πράξη
Ας υποθέσουμε ότι δεν έχουμε πειράξει καθόλου τα στάνταρ group του elxis. Ένα εγγεγραμένος χρήστης της ομάδας Registered (group id = 18) θα έχει πρόσβαση στα αντικείμενα της ομάδας του καθώς και σε αυτά που είναι για επισκέπτες (group id= 29) αφού η ομάδα του είναι "ισχυρότερη" από αυτή των επισκεπτών. Άρα το $my->allowed θα είναι 18,29.

$myallowed = '18,29';

(http://support.elxis.org/images/access_4.jpg)


Σε κάθε request το elxis κοιτά αν το αντικείμενο που ζητάς βρίσκεται μέσα στα επιτρεπόμενα όρια όπως αυτά καθορίζονται (αυτομάτως) από το $my->allowed και ανάλογα σου επιτρέπει ή όχι την πρόσβαση.

Αν έχουμε ένα αντικείμενο (κατηγορία, άρθρο, module, αντικείμενο μενού κλπ) που είναι διαθέσιμο για τους εγγεγραμμένους μόνο χρήστες (group id = 18 -> access=18) τότε το elxis θα ρωτήσει:
υπάρχει το 18 στο my->allowed;
Απάντηση: ναι -> δώστου πρόσβαση

Αν ο χρήστης ήταν επισκέπτης (group id = 29, με $my->allowed = '29' ) θα ρώταγε πάλι:
υπάρχει το 18 στο $my->allowed;
Απάντηση: όχι -> απαγόρευσε του την πρόσβαση.

Αν θέλουμε να κάνουμε αυτό τον έλεγχο μέσα στην php τότε κάνουμε explode το string και ψάχνουμε αν η ζητούμενη τιμή βρίσκεται μέσα στο νέο array:

if (in_array('xx', explode(',', $my->allowed))) { ..... }

Αν θέλουμε να αντλήσουμε στοιχεία από τη βάση κάνουμε τον έλεγχο στο query:

$query = "SELECT.... WHERE ... AND access IN ('$my->allowed') ....";


Επίσης έλεγχοι γίνονται και μέσω του ACL ($acl->check() ) σε επίπεδο του ποιες ιδιαίτερες δυνατότητες έχει το κάθε group χρηστών (πχ αν μπορεί να προσθέσει ένα άρθρο) αλλά αυτό είναι άλλο θέμα.


Δες επίσης κάποιες πληροφορίες από το support του elxis:
http://support.elxis.org/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=8&nav=0,1
http://support.elxis.org/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=13&nav=0,2
http://support.elxis.org/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=24&nav=0,2

Οι διαφορές elxis και mambo/joomla είναι πολύ μεγάλες σε επίπεδο πυρήνα. Το elxis έχει πολύ μεγαλύτερες δυνατότητες από αυτά. Το ότι οι διαφορές δεν φαίνονται είναι γιατί θέλαμε να κρατήσουμε μία σχετική συμβατότητα και να είναι απλό στη χρήση. Για αυτό το λόγο λέμε συνεχώς:
- Μην εγκαθιστάτε οτιδήποτε μη-συμβατό.
- Ειδικά για μεγάλα project και σοβαρές δουλειές συμβουλευτείτε τους ειδικούς και υποβάλετε τις ερωτήσεις σας εδώ ή στο support του Elxis.
- Έχουμε γράψει ένα βιβλίο για αυτόν ακριβώς το λόγο, να σας βοηθήσει. Ο όγκος της γνώσης όμως που ενσωματώθηκε πάνω στο elxis θέλει μία εγκυκλοπαίδεια για να γραφεί, και ειδικά στον τεχνικό τομέα. Γι αυτό ρωτάτε για ότι δεν βρίσκεται στο βιβλίο ή δεν καταλάβατε καλά.
- Υπάρχουν απίστευτα πολλά και κρυμμένα πράγματα που μπορείτε να κάνετε με το σύστημα πρόσβαση και το διαχειριστή γλώσσας του Elxis!
Title: Re: MyContent Component
Post by: pcfun on July 06, 2007, 00:36:23
Άρα δε μπορώ αλλάζοντας  τα >, <  και τις τιμές των χρηστών να κάνω το MyContent να δουλέψει?
Πρέπει να ξέρω να αλλάζω ολόκληρα κομμάτια κώδικα?
Κρίμα. Τέλος πάντων. Υπάρχει κάτι αντίστοιχο που δουλεύει με Έλξις? Ή το Έλξις μέσω του συστήματος διαχείρησης δίνει κάποια τέτοια δυνατότητα? Να μπορούν δηλαδή οι χρήστες να προσθέτουν δικά τους άρθρα σε συγκεκριμένες κατηγορίες?

Ευχαριστώ για τις πληροφορίες.
Title: Re: MyContent Component
Post by: ArXoS on July 06, 2007, 00:53:44
Εγώ προσωπικά , το πρόβλημα το έλυσα βγάζοντας ένα λινκ στο usermenu, προσβάσιμο στους authors της μορφής http://www.domain.gr/index.php?option=com_content&task=new&sectionid=*****&Itemid=0 όπου **** είναι το νούμερο της κατηγορίας.

Για να ακριβολογούμε, έχω 3 τέτοια λινκς, για τις 3 κατηγορίες που έχω, και λειτουργεί μια χαρά .. ο καθένας κλικάρει εκεί που θέλει να κάνει post 
Title: Re: MyContent Component
Post by: pcfun on July 06, 2007, 01:29:01
Έτσι θα κάνω και εγώ. Τι το θέλω το component αφού ακριβώς την ίδια δουλειά κάνω και χωρίς αυτό. Ευχαριστώ.
Title: Re: MyContent Component
Post by: ArXoS on July 06, 2007, 03:18:39
εγώ το ήθελα γιατί οι δημοσιεύσεις έχουν ξεπεράσει κάθε προηγούμενο  :-\ δεν ελέγχονται αλλοιώς .. απο το frontpage τα κάνω όλα πλέον
Title: Re: MyContent Component
Post by: pcfun on July 06, 2007, 04:57:10
Εννοείς ότι με το MyContent μπορείς να ελέγξεις τις δημοσιεύσεις?
Εγώ που το εγκατέστησα το μόνο που μου προσέφερε ήταν να δημιουργήσει αυτόματα τα μενού στο user menu. Κατα τα άλλα, ούτε περιβάλλον διαχείρισης δεν έχει.