For the complete documentation index, see llms.txt. This page is also available as Markdown.

Σύστημα Πόρων

Το σύστημα πόρων αποτελεί μία από τις πιο σημαντικές αρχιτεκτονικές έννοιες στο Chamilo 2.0. Παρέχει μια ενιαία αφαίρεση για όλο το περιεχόμενο του μαθήματος — έγγραφα, ασκήσεις, μονοπάτια μάθησης, δημοσιεύσεις φόρουμ και άλλα.

Βασική Έννοια

Κάθε κομμάτι περιεχομένου μαθήματος αναπαριστάται από έναν ResourceNode. Αυτό παρέχει σε όλους τους τύπους περιεχομένου ένα κοινό σύνολο δυνατοτήτων:

  • Έλεγχος ορατότητας — Εμφάνιση/απόκρυψη από τους μαθητές

  • Έλεγχος πρόσβασης — Οι ψηφοφόροι ασφαλείας ελέγχουν τα δικαιώματα μέσω του ResourceNode

  • Αποθήκευση αρχείων — Τα συνημμένα αρχεία αποθηκεύονται μέσω του ResourceFile

  • Δομή δέντρου — Οι ResourceNodes σχηματίζουν ένα δέντρο (σχέσεις γονέα-παιδιού)

  • Καταγραφή ελέγχου — Δημιουργός, ημερομηνία δημιουργίας, παρακολούθηση τροποποιήσεων

Κύριες Οντότητες

ResourceNode (src/CoreBundle/Entity/ResourceNode.php)

Η κεντρική οντότητα. Κάθε οντότητα περιεχομένου έχει σχέση ένα-προς-ένα με έναν ResourceNode.

Κύρια πεδία:

Field
Type
Description

id

integer

Κύριο κλειδί

uuid

UUID v4

Μοναδικός αναγνωριστικός για χρήση API

title

string

Τίτλος εμφάνισης

creator

User

Ο χρήστης που δημιούργησε αυτόν τον πόρο

resourceFile

ResourceFile

Το συνημμένο αρχείο (αν υπάρχει)

resourceType

ResourceType

Ο τύπος του πόρου (έγγραφο, κουίζ κ.λπ.)

parent

ResourceNode

Γονέας στο δέντρο πόρων

children

Collection

Παιδικοί ResourceNodes

resourceLinks

Collection

Σύνδεσμοι ορατότητας και πρόσβασης

Το δέντρο χρησιμοποιεί τη στρατηγική materialized path του Gedmo για αποδοτικές ιεραρχικές ερωτήσεις.

ResourceFile (src/CoreBundle/Entity/ResourceFile.php)

Αποθηκεύει τα πραγματικά δεδομένα αρχείου για έναν πόρο:

Field
Type
Description

id

integer

Κύριο κλειδί

title

string

Αρχικό όνομα αρχείου

mimeType

string

Τύπος MIME

originalName

string

Αρχικό όνομα μεταφόρτωσης

size

integer

Μέγεθος αρχείου σε bytes

crop

string

Δεδομένα περικοπής (για εικόνες)

Η αποθήκευση αρχείων γίνεται από το Flysystem, έτσι τα αρχεία μπορούν να βρίσκονται σε τοπικό δίσκο, S3, Azure ή GCS ανάλογα με τη διαμόρφωση.

Ελέγχει την ορατότητα και την πρόσβαση ανά πλαίσιο. Υπάρχουν 3 κύριοι τύποι πλαισίου:

  1. Course

  2. Session

  3. Group (σε ένα μάθημα)

Άρα η οντότητα ResourceLink αντανακλά τον συνδυασμό αυτών των 3 τύπων πλαισίου και καθιερώνει μια ορατότητα για αυτό το πλήρες πλαίσιο:

Field
Type
Description

course

Course

Σε ποιο μάθημα ανήκει ο πόρος

session

Session

Σε ποια συνεδρία (null για βασικό μάθημα)

group

CGroup

Σε ποια ομάδα (null για ολόκληρο το μάθημα)

visibility

integer

Ορατό, αόρατο ή διαγραμμένο

Αυτό επιτρέπει στον ίδιο ResourceNode να έχει διαφορετική ορατότητα σε διαφορετικά πλαίσια (π.χ. ορατό σε μία συνεδρία αλλά κρυφό σε άλλη).

Αυτό ρυθμίζεται αυτόματα κατά τη χρήση της διεπαφής και την απόφαση, για παράδειγμα, ότι ένας πόρος είναι πόρος ειδικός για συνεδρία ο οποίος θα είναι ορατός για όλες τις ομάδες σε ένα δεδομένο μάθημα σε μια δεδομένη συνεδρία, αλλά αόρατος στο βασικό μάθημα ή σε άλλη συνεδρία.

Προεπιλογή, οι πόροι ορατοί σε ένα βασικό μάθημα είναι επίσης ορατοί σε όλες τις συνεδρίες αυτού του μαθήματος, αλλά ο επιβλέπων του μαθήματος μπορεί να αποφασίσει να κρύψει έναν πόρο από συγκεκριμένη συνεδρία. Σε αυτή την περίπτωση, θα ανακτήσουμε την ειδική ορατότητα αυτού του πόρου σε αυτή τη συνεδρία και θα δούμε ότι έχει ορατότητα 0, οπότε το στοιχείο δεν θα εμφανίζεται στους μαθητές σε αυτή τη συνεδρία, ενώ η έλλειψη ορατότητας ειδικής για συνεδρία σε άλλες συνεδρίες θα κάνει τον πόρο να χρησιμοποιήσει την ορατότητα του βασικού μαθήματος (και ο πόρος θα εμφανίζεται στους μαθητές).

Ενσωμάτωση API Platform

Ο ResourceNode εκτίθεται ως πόρος API Platform με ασφάλεια:

Πώς Συνδέονται οι Οντότητες Περιεχομένου

Οι οντότητες περιεχομένου μαθήματος (CDocument, CQuiz, CLp κ.λπ.) επεκτείνουν το AbstractResource ή υλοποιούν το ResourceInterface, το οποίο τους δίνει μια σχέση resourceNode:

Όταν δημιουργείτε ένα CDocument, δημιουργείται αυτόματα ένας ResourceNode μαζί του, παρέχοντας ενιαία διαχείριση πόρων.

Πρακτικές Συνέπειες

Κατά την εργασία με περιεχόμενο μαθήματος:

  1. Δημιουργία περιεχομένου — Δημιουργήστε τόσο την οντότητα περιεχομένου όσο και τον ResourceNode της

  2. Έλεγχος δικαιωμάτων — Χρησιμοποιήστε τους ψηφοφόρους ασφαλείας του ResourceNode

  3. Διαχείριση αρχείων — Συνδέστε αρχεία μέσω του ResourceFile

  4. Έλεγχος ορατότητας — Δημιουργήστε/τροποποιήστε ResourceLinks

  5. Δόμηση δέντρων — Χρησιμοποιήστε τη σχέση γονέα-παιδιού στον ResourceNode για δομές φακέλων (π.χ. φάκελοι εγγράφων)

Τελευταία ενημέρωση

Ήταν χρήσιμο αυτό;