Για να δημιουργήσουμε ένα δυναμικό μενού, θα χρησιμοποιήσουμε ένα έτοιμο απόσπασμα Wayfinder. Snippet, όπως ελπίζουμε να θυμάστε από προηγούμενα μαθήματα, αυτό είναι ένα κομμάτι κώδικα php, το οποίο μπορούμε να συμπεριλάβουμε στο πρότυπό μας. Η διαφορά από τα κομμάτια είναι μόνο στον κωδικό και τη μέθοδο κλήσης. Αν λέμε ένα κομμάτι με διπλό άγκιστρα, τότε τα αποσπάσματα καλούνται με τη βοήθεια τέτοιων [!Snippet_name!]- κλήση χωρίς προσωρινή αποθήκευση ή κάτι τέτοιο [[SnippetName]]- προσωρινή κλήση. Κάθε κωδικός αποσπάσματος πρέπει να ξεκινά με αλλά τέλος ?> . Επιπλέον, σε κάθε απόσπασμα μπορούν να περάσουν ειδικές τιμές παραμέτρων που θα επεξεργαστεί. Το MODx έχει ήδη αρκετά έτοιμα αποσπάσματα που θα χρησιμοποιήσουμε στο μέλλον.

απόσπασμα Wayfinderχρησιμεύει για την οργάνωση λιστών συνδέσμων για MODx. Το μενού του ιστότοπού μας είναι μια λίστα τέτοιων συνδέσμων. Ας βρούμε πρώτα ένα κομμάτι κώδικα υπεύθυνο για την εμφάνιση του μενού μας. Το μενού είναι σε ένα κομμάτι ΕΠΙ ΚΕΦΑΛΗΣ, εδώ είναι:


  • καλως ΗΡΘΑΤΕ

  • Design Blog

  • Χαρτοφυλάκιο

  • Η ΕΤΑΙΡΕΙΑ μας

  • Επικοινωνήστε μαζί μας

Ας κόψουμε αυτόν τον κώδικα και ας γράψουμε αντ' αυτού:

((ΜΕΝΟΥ))

Και επικολλήστε τον κώδικα σε ένα νέο κομμάτι ΜΕΝΟΥ, στην περιγραφή του κομματιού που γράφουμε μενού τοποθεσίας. Τώρα ας εξετάσουμε αυτόν τον κώδικα.

Το μενού του ιστότοπού μας είναι μια απλή, μη ταξινομημένη λίστα, που περιέχεται σε ένα κοντέινερ με id="templatemo_menu". Ας κόψουμε αυτήν τη λίστα από το κοντέινερ και ας εισαγάγουμε την κλήση του αποσπάσματος:


[!Wayfinder; &startId=`0`!]

&startId=`0`είναι μια παράμετρος με τιμή 0, η οποία λέει στο απόσπασμα το αναγνωριστικό του φακέλου στον οποίο βρίσκονται τα επεξεργασμένα έγγραφα. Όλα τα έγγραφά μας που θα εμφανίσουμε στο μενού βρίσκονται στον ριζικό φάκελο, το αναγνωριστικό του ριζικού φακέλου είναι μηδέν. Ας δούμε τι έχουμε.

Το μενού μας λειτουργεί, μόνο το ενεργό στοιχείο δεν επισημαίνεται πλέον με λευκό:

Για να καταλάβουμε γιατί συνέβη αυτό, πρέπει να δούμε πηγήσελίδες. ΣΤΟ Mozilla Firefoxγίνεται έτσι: Προβολή >> Πηγαίος κώδικας σελίδαςή απλά πατώντας τη συντόμευση πληκτρολογίου Ctrl+U. Βρίσκουμε τον κωδικό του μενού μας:

  • Σπίτι

  • Design Blog

  • Χαρτοφυλάκιο

  • Σχετικά με την εταιρεία

  • Επαφές

Δώστε προσοχή στο γεγονός ότι στον πηγαίο κώδικα είχε το ενεργό στοιχείο class="current", και το απόσπασμά μας εκχωρεί αυτόματα στο ενεργό στοιχείο class="ενεργός". Παρατηρούμε επίσης τη στιγμή που στον πηγαίο κώδικα εφαρμόστηκε η κλάση στην ετικέτα και τώρα στην ετικέτα

  • . Δεν θα ξαναγράψουμε το απόσπασμα, αλλά η αλλαγή της τάξης σε στυλ δεν είναι πρόβλημα.

    Βρίσκουμε στον φάκελο C:/xampp/htdocs/site/www/assets/templates/ το αρχείο templatemo_style.cssκαι ανοίξτε το με το Notepad++. Αναζητούμε μια περιγραφή της τρέχουσας κλάσης σε αυτό το αρχείο, βρίσκεται στο 198 γραμμή:

    #templatemo_menu li .current(
    padding-αριστερά: 40px
    χρώμα: #ffffff;
    }

    αντικαταστήστε την τάξη ρεύμαστο ενεργός, θυμηθείτε να το αντιστοιχίσετε ξανά στην ετικέτα :

    #templatemo_menu li.active a (
    padding-αριστερά: 40px
    χρώμα: #ffffff;
    }

    Αποθηκεύουμε το αρχείο. Ας δούμε τι έγινε.
    Το μενού μας λειτούργησε ακριβώς όπως σκόπευαν οι σχεδιαστές. Τώρα μπορούμε να περιηγηθούμε στις σελίδες του ιστότοπού μας χρησιμοποιώντας το κύριο μενού μας. Όταν προσθέτετε άλλα έγγραφα στον ριζικό φάκελο, θα εμφανίζονται αυτόματα στο μενού μας. Για να αποτρέψετε την εμφάνιση ανεπιθύμητων εγγράφων στο μενού, καταργήστε την επιλογή τους. Εμφάνιση στο μενού. Μπορείτε να εξαναγκάσετε την εξαίρεση ενός ανεπιθύμητου στοιχείου χρησιμοποιώντας την παράμετρο &excludeDocs=`λίστα εγγράφων αναγνωριστικού προς εξαίρεση, διαχωρισμένα με κόμματα`.

    Για να μην εμφανίζει το μενού τα θυγατρικά έγγραφα που θα δημιουργήσουμε στα επόμενα μαθήματα, ας προσθέσουμε μια παράμετρο στην κλήση του αποσπάσματος επίπεδο, το οποίο καθορίζει τον αριθμό των επιπέδων στο μενού, όλα τα επίπεδα θα εμφανίζονται από προεπιλογή, θα το περιορίσουμε μόνο σε ένα επίπεδο:


    [!Wayfinder; &startId=`0` &level=`1`!]

    Ημερομηνία δημοσίευσης: 02/07/2011

    Σε αυτό το απλό σεμινάριο, θα σας δείξω πώς να προσαρμόσετε το μενού.

    Κάποτε μου ζητήθηκε να διορθώσω ένα σφάλμα με το μενού σε έναν ιστότοπο - ορισμένα στοιχεία δεν ήθελαν πεισματικά να ευθυγραμμιστούν, αλλά αντ' αυτού ανιχνεύονταν σε απροσδόκητα σημεία της σελίδας όταν τοποθετούσαν το δείκτη του ποντικιού πάνω. Το σφάλμα δεν ήταν στο στραβά css, όπως υπέθεσα στην αρχή, αλλά στην στραβά κλήση του Wayfinder.

    Τι είναι το Wayfinder- αυτό είναι ένα απόσπασμα που χρησιμοποιείται όταν είναι απαραίτητο να παραθέσουμε τα έγγραφα μιας ενότητας/των. Ως αποτέλεσμα του αποσπάσματος, δημιουργείται μια μη ταξινομημένη λίστα. Με τη βοήθεια διαφόρων παραμέτρων, μπορείτε να κάνετε οτιδήποτε με αυτήν τη λίστα :) Μπορείτε να διαβάσετε περισσότερα στην τεκμηρίωση ή πληκτρολογώντας στο Google - "wayfinder modx wiki".

    Σημαντικές σημειώσεις:

    1. Σχετικά με το τι είναι το MODx, πώς να εγκαταστήσετε το MODx, πώς να οργανώσετε τη δομή των εγγράφων, πώς να δημιουργήσετε ένα πρότυπο από html, τι είναι ένα κομμάτι και ούτω καθεξής. Δεν εξετάζω ερωτήσεις για αρχάριους σε αυτό το μάθημα.

    2. Τα σύμβολα κράτησης θέσης που θα χρησιμοποιήσω στο σεμινάριο έχουν τη μορφή που «καταλαβαίνει» η έκδοση Evo. Ποια είναι η διαφορά, δείτε το παράδειγμα:

    Λοιπόν, ας ρίξουμε μια ματιά στη δημιουργία ενός μενού βήμα προς βήμα.

    Βήμα 1

    Για το μάθημα σκιαγράφησα το ακόλουθο μενού:

    Εδώ, για λόγους σαφήνειας, χρησιμοποίησα διαφορετικά στυλπρος την διαφορετικά επίπεδαμενού. Στον ιστότοπο όπου διορθώθηκε το σφάλμα με το μενού, ήταν περίπου το ίδιο - κάθε επίπεδο του μενού έχει το δικό του στυλ.

    Οι λεπτομέρειες στοιχειοθέτησης - διάταξης δεν περιλαμβάνονται στο πεδίο εφαρμογής αυτού του μαθήματος, οπότε έλαβα αυτόν τον κωδικό:

    Αφού θαυμάσουμε τον κώδικα, καθορίζουμε μόνοι μας ποια κατηγορία στο μενού μας είναι υπεύθυνη για τι (αυτό είναι αν ψάχνετε στον κώδικα κάποιου άλλου, θα πρέπει να είναι ξεκάθαρο στο δικό σας):

    ul class="menu" - η κλάση ολόκληρου του μενού
    li class="top" - κατηγορία στοιχείων μενού ανώτατου επιπέδου
    a class="top_link" - κατηγορία για συνδέσμους σε στοιχεία ανώτατου επιπέδου
    ul class="sub" - κλάση υπομενού
    Λοιπόν, span class="down" για τη διακόσμηση αντικειμένων ανώτερου επιπέδου

    Βήμα 2. Δημιουργήστε τρία έγγραφα

    Προϊόντα
    - Παράδοση
    - Προμηθευτές
    Στο έγγραφο "Προϊόντα" δημιουργούμε παιδικά έγγραφα: "Truth Serum", "Makropulos Remedy", "Universal Remedies".

    Βήμα 3. Μετακινήστε το μενού σε ξεχωριστό κομμάτι

    Στο πρότυπο, στο μέρος όπου θα πρέπει να έχετε ένα μενού, αφαιρέστε όλο τον περιττό κώδικα (το ίδιο κώδικας htmlμενού), αντί να γράφουμε

    ((μενού))

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

    Μεταβείτε στον πίνακα διαχείρισης στο "Ιστότοπος"-> "Προβολή" - για να ελέγξετε ότι όλα είναι εντάξει με τις διαδρομές προς το αρχείο στυλ και τις εικόνες.

    Συνέβη; Εντάξει, αλλά δεν είναι ακόμα το μενού. Ας δώσουμε ζωή σε αυτό με τη βοήθεια του Wayfinder.

    Βήμα 4

    Καταργήστε όλα τα περιεχόμενα του τμήματος του μενού και καλέστε το απόσπασμα Wayfinder.
    Αρκεί να γράψουμε:

    [[Wayfinder; &startId=`0`]]

    παράμετρος startId- υποδεικνύει από ποιο έγγραφο θα ξεκινήσει η δημιουργία της λίστας. Έχουμε 0 - αυτό σημαίνει ότι η λίστα σχηματίζεται από τη ρίζα του δέντρου εγγράφων.

    Ας δούμε τι έγινε:

    Αυτό είναι ένα λειτουργικό και ζωντανό μενού. Μετονομασία εγγράφων, διαγραφή, προσθήκη - το μενού θα διαμορφωθεί σύμφωνα με το δέντρο εγγράφων.

    Βήμα 5

    5.1. Τώρα επαναφέρουμε την εμφάνιση του μενού στο κανονικό

    Το Wayfinder δημιουργεί απλό κώδικα από προεπιλογή () , δίνονται όλες οι τάξεις λίστας και στοιχείων ειδικές παραμέτρουςόταν καλείται.

    Στην αρχή του μαθήματος, καθορίσαμε ποιες κλάσεις css στο μενού μας είναι υπεύθυνες για τι. Το Wayfinder έχει τις επιλογές που χρειαζόμαστε: outerClass- τάξη για το κοντέινερ μενού. Σε σύγκριση με τη διάταξή μας, λαμβάνουμε την ακόλουθη κλήση Wayfinder:

    [[Wayfinder; &startId=`0` &level=`2` &outerClass=`μενού`]]

    εκτός από τις παραμέτρους με κλάσεις, καθορίστε επίπεδο ένθεσης - &level=`2`.

    Σημειώνουμε τις ελλείψεις - δεν υπάρχουν κατηγορίες για στοιχεία μενού ανώτατου επιπέδου, χωρίς ετικέτες και μια κλάση για το υπομενού.
    Όλες αυτές οι ελλείψεις διορθώνονται προσθέτοντας κατάλληλες παραμέτρους στην κλήση Wayfinder.

    5.2. Προσθήκη τάξεων σε αντικείμενα και ετικέτες ανώτατου επιπέδου

    Υπάρχει μια μεταβλητή για αυτό rowTpl, το οποίο περιγράφει ένα πρότυπο για ένα στοιχείο μενού, φτιάχνουμε ένα τέτοιο πρότυπο, για αυτό δημιουργούμε ένα κομμάτι που ονομάζεται μητρική εταιρεία:

  • [+wf.linktext+][+wf.wrapper+]
  • Στην κλήση προς το Wayfinder προσθέστε &rowTpl='γονικός' .
    Μην ξεχάσετε να ελέγξετε τον πηγαίο κώδικα - σχεδόν όλα είναι καλά, το υπομενού παραμένει.

    Για να ρυθμίσουμε το υπομενού, χρησιμοποιούμε τη μεταβλητή innerRowTpl.

    Δημιουργήστε ένα κομμάτι εσωτερικός:

  • [ +wf.linktext+][ +wf.wrapper+]
  • Προσθήκη μεταβλητής στην κλήση Wayfinder innerRowTpl=`εσωτερικό`και μια μεταβλητή που καθορίζει την κλάση για το κοντέινερ υπομενού &innerClass=`sub` .

    Η τελική κλήση στο Wayfinder μοιάζει με αυτό:

    [ ]

    Αυτό ήταν, το μενού μας είναι έτοιμο. Καλή τύχη!

    Χαιρετισμούς αγαπητοί αναγνώστες. Στο τελευταίο μάθημα, γεμίσαμε τον ιστότοπο με κάποιο περιεχόμενο (), τώρα ήρθε η ώρα βάλτε τα πάντα στο μενούώστε οι χρήστες να μπορούν να πλοηγηθούν σε αυτά.

    δημιουργήστε δυναμική μενού στο MODXθα χρησιμοποιήσουμε το απόσπασμα PdoMenuαπό τη συσκευασία pdoTools. Πριν ξεκινήσετε, διαβάστε την κύρια τεκμηρίωση.

    Τεκμηρίωση pdoMenu

    Επιλογές

    Επιλογές προτύπων

    Επιλογές κλάσης CSS

    Επίσημα παραδείγματα


    επίσημη τεκμηρίωσημπορείτε να διαβάσετε εδώ. Και τώρα θα αναλύσουμε τις πιο τυπικές κλήσεις μενού.

    Καλέστε το PdoMenu

    Επιλογή 1. Στη θέση αυτού του στατικού μενού κλήση απόσπασμα pdoMenu, για αυτό στο δέντρο πόρων, στην καρτέλα " Στοιχεία" στην ενότητα αποσπάσματα, αναπτύξτε τον κλάδο pdoTools, μετά κάντε κλικ στο pdoMenuαριστερό κουμπί του ποντικιού (μην απελευθερώσετε το κουμπί) και σύρετε αυτό το απόσπασμα στο σημείο όπου θέλετε να καλέσετε το μενού και, στη συνέχεια, συμπληρώστε τις απαιτούμενες παραμέτρους στο παράθυρο που ανοίγει και κάντε κλικ στο " Αποθηκεύσετε«.

    Επιλογή 2. Απλώς γράφουμε χειροκίνητα την κλήση.

    Χαρακτηριστικά παραδείγματα

    Κανονικό μενού ενός επιπέδου

    Για παράδειγμα, έχουμε το πιο κοινό μενού, με την ακόλουθη σήμανση html.

    Το αποτέλεσμα είναι ο ακόλουθος κώδικας με μια κλήση μενού:

    • &parents=`0` - μια λίστα γονέων (στην περίπτωσή μου, δεν περιορίζω την επιλογή, καθώς ούτως ή άλλως θα εμφανίζω μόνο ορισμένες σελίδες).
    • &level=`1` - επίπεδο ένθεσης (σε αυτήν την περίπτωση δεν υπάρχει).
    • &resources=`2,3,4,5` - μια λίστα πόρων για εμφάνιση στο μενού.
    • &firstClass=`0` - κατηγορία για το πρώτο στοιχείο μενού (όχι ποιο);
    • &lastClass=`0` — τάξη τελευταίο σημείομενού (όχι τι)?
    • &outerClass=`top-menu` — κατηγορία περιτυλίγματος μενού (αντικαταστάθηκε στο ul);
    • &hereClass=`current-menu-item` - κλάση για το ενεργό στοιχείο μενού (αντικαταστάθηκε σε li);
    • &rowClass=`menu-item` - η κλάση μιας γραμμής μενού (αντικαταστάθηκε σε li).

    Προσαρμοσμένο μενού εκκίνησης δύο επιπέδων

    Ο στατικός κώδικας html μοιάζει με αυτό:

    Ο κωδικός εξόδου του θα είναι ο εξής:

    Επίσης στο επόμενο μάθημα, θα δώσω μερικές ακόμη εξόδους από αναπτυσσόμενα μενού με βάση το bootstrap (και, αυτό είναι για όσους δεν κατάλαβαν την ουσία. Λοιπόν, τότε θα το κάνουμε .

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

    Απόσπασμα δημιουργίας μενού. Μπορεί να αντικαταστήσει το Wayfinder και επιτρέπει μεγαλύτερη ευελιξία στον καθορισμό των παραμέτρων.

    Για παράδειγμα, μπορεί να δημιουργήσει ένα μενού από πολλούς γονείς ταυτόχρονα, εμφανίζοντάς τους τόσο μαζί όσο και ως ξεχωριστά υποκαταστήματα.

    Δίνει σημαντική αύξηση της ταχύτητας μόνο στην πρώτη εκκίνηση, τότε το Wayfinder δεν είναι ιδιαίτερα κατώτερο, χάρη στην ικανή προσωρινή αποθήκευση.

    Επιλογές

    Από προεπιλογή, το pdoMenu δέχεται κοινές επιλογές pdoTools και μερικές από τις δικές του:

    Ονομα Προκαθορισμένο Περιγραφή
    &γονείς Τρέχων πόρος Λίστα γονέων για αποτελέσματα αναζήτησης, διαχωρισμένα με κόμμα. Αν τεθεί &γονείς=`0`- το δείγμα δεν είναι περιορισμένο. Εάν το αναγνωριστικό του γονέα ξεκινά με παύλα, αυτός και τα παιδιά του εξαιρούνται από την επιλογή.
    &επίπεδο 0 (απεριόριστο) Δημιουργήθηκε επίπεδο μενού.
    &πόροι Λίστα πόρων για εμφάνιση στα αποτελέσματα, διαχωρισμένα με κόμμα. Εάν το αναγνωριστικό πόρου ξεκινά με παύλα, αυτός ο πόρος εξαιρείται από την επιλογή.
    &πρότυπα Λίστα προτύπων για φιλτράρισμα αποτελεσμάτων, διαχωρισμένα με κόμμα. Εάν το αναγνωριστικό προτύπου ξεκινά με παύλα, οι πόροι με αυτό εξαιρούνται από την επιλογή.
    &όπου Μια σειρά από πρόσθετες επιλογές επιλογής κωδικοποιημένες σε JSON.
    &εμφάνισηΈναρξη 0 Ενεργοποίηση εμφάνισης αρχικών κόμβων μενού. Χρήσιμο όταν προσδιορίζετε περισσότερους από έναν «γονείς».
    &συμφραζόμενα Περιορισμός της επιλογής κατά περιβάλλον πόρων.
    &εμφάνιση Κρυφό 0 Εμφάνιση πόρων που είναι κρυμμένοι στο μενού.
    &εμφάνιση Μη δημοσιευμένο 0 Εμφάνιση μη δημοσιευμένων πόρων.
    &προεπισκόπηση Μη δημοσιευμένο 0 Ενεργοποιήστε την εμφάνιση μη δημοσιευμένων πόρων εάν ο χρήστης έχει άδεια να το κάνει.
    &απόκρυψηΥπομενού 0 Απόκρυψη ανενεργών κλάδων μενού.
    &επιλέγω Λίστα πεδίων προς επιλογή, διαχωρισμένα με κόμματα. Μπορείτε να καθορίσετε μια συμβολοσειρά JSON με έναν πίνακα, για παράδειγμα &select=`("modResource":"id,pagetitle,content")".
    &ταξινόμηση κατά ευρετήριο μενού Οποιοδήποτε πεδίο του πόρου προς ταξινόμηση, συμπεριλαμβανομένης της παραμέτρου TV, εάν καθορίζεται στην παράμετρο &περιλαμβάνει τηλεοράσεις, για παράδειγμα &sortby=`("tvname":"ASC","pagetitle":"DESC")`. Μπορείτε να καθορίσετε μια συμβολοσειρά JSON με έναν πίνακα πολλαπλών πεδίων. Για τυχαία ταξινόμηση, καθορίστε &sortby=`RAND()`
    &ταξινόμηση ASC Κατεύθυνση ταξινόμησης: φθίνουσα ή αύξουσα. Εάν αφήσετε κενές τις παραμέτρους &sortby και &sortdir, τότε η ταξινόμηση θα γίνει με τη σειρά των πόρων στο &πόροι.
    &όριο 0 Περιορισμός του αριθμού των αποτελεσμάτων δειγμάτων.
    &αντισταθμίζεται 0 Παράβλεψη αποτελεσμάτων από την αρχή. Πρέπει να χρησιμοποιείται σε συνδυασμό με ένα ρητά καθορισμένο &όριο
    &έλεγχος Δικαιωμάτων Καθορίστε ποια δικαιώματα θα ελέγχει ο χρήστης κατά την εμφάνιση πόρων, για παράδειγμα &checkPermissions=`list`.
    &Μετρήστε Παιδιά 0 Μετρώντας με ακρίβεια τον αριθμό των θυγατρικών πόρων κάθε κατηγορίας και εμφανίζοντάς τους στο σύμβολο κράτησης θέσης [[+παιδιά]]. Κάνει πρόσθετα αιτήματαστο DB, επομένως είναι απενεργοποιημένο από προεπιλογή.
    &toPlaceholder Εάν δεν είναι κενό, το απόσπασμα θα αποθηκεύσει όλα τα δεδομένα σε ένα σύμβολο κράτησης θέσης με αυτό το όνομα αντί να εμφανίζεται.
    &plΠρόθεμα wf. Πρόθεμα για εκτεθειμένα σύμβολα κράτησης θέσης.
    &showLog 0 προβολή Επιπλέον πληροφορίεςσχετικά με το έργο του αποσπάσματος. Μόνο για τους εξουσιοδοτημένους στο πλαίσιο "mgr".
    &γρήγορη λειτουργία 0 Γρήγορη λειτουργία επεξεργασίας κομματιού. Όλες οι ακατέργαστες ετικέτες (συνθήκες, αποσπάσματα κ.λπ.) θα αφαιρεθούν.
    &κρύπτη 0 Αποθήκευση των αποτελεσμάτων του αποσπάσματος.
    &cacheTime 3600 Χρόνος λήξης της προσωρινής μνήμης, σε δευτερόλεπτα.
    &σχέδιο -1 Το σχήμα δημιουργίας url μεταβιβάζεται στο modX::makeUrl(), έτσι πιθανές επιλογέςχρειάζομαι . Ο ειδικός τύπος uri αντικαθιστά την τιμή uri του πόρου, χωρίς να εκτελείται μια συνάρτηση.
    &χρησιμοποιήστεWeblinkUrl 1 Δημιουργήστε μια σύνδεση με βάση την κλάση του πόρου.
    &rowIdPrefix Πρόθεμα id="" για τον ορισμό του αναγνωριστικού στο κομμάτι.
    &εδώId id του τρέχοντος πόρου για το μενού που δημιουργήθηκε. Πρέπει να το καθορίσετε μόνο εάν το ίδιο το σενάριο το προσδιορίζει εσφαλμένα, για παράδειγμα, όταν εμφανίζετε ένα μενού από ένα κομμάτι άλλου αποσπάσματος.
    &περιλαμβάνει τηλεοράσεις Λίστα παραμέτρων τηλεόρασης προς επιλογή, διαχωρισμένες με κόμματα. Για παράδειγμα &includeTVs='action,time'θα δώσει placeholders [[+action]] και [[+time]] .
    &προετοιμάστε τηλεοράσεις Λίστα επιλογών τηλεόρασης, με αρχεία από πηγές πολυμέσων για τα οποία θέλετε να δημιουργήσετε πλήρεις διαδρομές. Εάν έχει οριστεί &prepareTVs=`1`, όλες οι τηλεοράσεις που καθορίζονται στο &περιλαμβάνει τηλεοράσεις.
    &διεργασία τηλεοράσεων Λίστα παραμέτρων τηλεόρασης προς επεξεργασία και εμφάνιση σύμφωνα με τις ρυθμίσεις τους στη διαχείριση συστήματος. Εάν έχει οριστεί &processTVs=`1`, όλες οι τηλεοράσεις που καθορίζονται στο &περιλαμβάνει τηλεοράσεις. Επιβραδύνει την εργασία.
    &tvΠρόθεμα Πρόθεμα για ρυθμίσεις τηλεόρασης.

    Επιλογές προτύπων

    Αυτές οι επιλογές ορίζουν κομμάτια που περιέχουν πρότυπα για τη δημιουργία μενού.

    Ονομα Περιγραφή
    &tplOuter Σχεδιασμός κομματιών ολόκληρου του μπλοκ μενού. Προεπιλογή: @INLINE
      [[+περιτύλιγμα]]
    &tpl Κομμάτι σχεδιασμού στοιχείων μενού. Εάν δεν καθορίζεται, τότε τα περιεχόμενα των πεδίων πόρων θα εκτυπωθούν στην οθόνη. Προεπιλογή: @INLINE
  • [[+menutitle]][[+wrapper]]
  • &tplΕδώ Κομμάτι διακόσμησης του τρέχοντος στοιχείου μενού.
    &tplΈναρξη Κομμάτι της σχεδίασης του ριζικού στοιχείου, με την προϋπόθεση ότι είναι ενεργοποιημένο &εμφάνισηΈναρξη. Προεπιλογή: @INLINE

    [[+menutitle]]

    [[+περιτύλιγμα]]
    &tplParentRow Κομμάτι της διακόσμησης ενός γονέα με παιδιά που δεν ταιριάζει με τις συνθήκες του &tplCategoryFolder . Για παράδειγμα: @INLINE
    &tplParentRowHere Κομμάτι του τρέχοντος στυλ εγγράφου εάν περιέχει παιδιά.
    &tplParentRowActive Κομμάτι διακόσμησης γονέων με παιδιά στον κλάδο του ενεργού μενού.
    &tplCategoryFolder Σχεδιαστικό κομμάτι ειδικής κατηγορίας. Μια κατηγορία είναι ένας γονέας με παιδιά που έχει ένα κενό πρότυπο ή rel="category" στο πεδίο link_attributes.
    &tplInner Κομμάτι για τη σχεδίαση ολόκληρου του μπλοκ υπο-στοιχείων μενού. Εάν είναι κενό - θα χρησιμοποιηθεί &tplOuter. Για παράδειγμα: @INLINE
    &tplInnerRow Κομμάτι για το σχεδιασμό ενός υποστοιχείου μενού. Για παράδειγμα: @INLINE
    &tplInnerΕδώ Κομμάτι για το ενεργό υποστοιχείο μενού.

    Επιλογές κλάσης CSS

    Αυτές οι παράμετροι ορίζουν την τιμή των placeholders [[+classnames]] και [[+classes]] για διάφορα στοιχείαμενού. Το σύμβολο κράτησης θέσης [[+classnames]] εμφανίζει μόνο το όνομα της κλάσης χωρίς το χαρακτηριστικό class="", σε αντίθεση με το σύμβολο κράτησης θέσης [[+classes]].

    Παραδείγματα

    Η συνηθισμένη έξοδος του μενού από τη ρίζα του ιστότοπου σε ένα επίπεδο:

    []

    Έξοδος με εξαίρεση συγκεκριμένους γονείς και ελεγμένα δικαιώματα χρήστη:

    []

    Εμφάνιση του μενού από δύο γονείς ταυτόχρονα, εμφανίζοντας τα ριζικά σημεία:

    []

    Εμφάνιση δύο επιπέδων πόρων, μετρώντας τον αριθμό των ένθετων:

    []` &tplParentRow=`@INLINE

  • [[+menutitle]] ([[+παιδιά]])
  • [[+περιτύλιγμα]]` &countChildren=`1` ]]



    Wayfinderχρησιμεύει για την οργάνωση λιστών συνδέσμων για MODX. Χάρη στην υποστήριξη προτύπων, σας επιτρέπει να εμφανίζετε λίστες με οποιαδήποτε απαραίτητη μορφή:
    • Μενού σε μορφή λίστας, πίνακα, εικόνων, με εικονίδια κ.λπ.
    • Στατικά μενού
    • Μενού με διάφορα εφέ (αναπτυσσόμενα, αναπτυσσόμενα, κ.λπ.)
    • χάρτης τοποθεσίας
    Παράδειγμα κλήσης:


    &rowTpl=`rowTpl`
    &outerTpl=`outerTpl`
    &hereClass=`ενεργό`
    &rowClass=`eNav_li`]]

    Επιλογές αποσπάσματος:

    &αναγνωριστικό έναρξης- το αναγνωριστικό της γονικής σελίδας, εάν καθορίσετε 0, θα είναι από τη ρίζα του ιστότοπου. Η προεπιλεγμένη τιμή είναι το αναγνωριστικό της ενεργής σελίδας.

    &εμφάνισηΈναρξη - εμφάνιση εγγράφου με startId στον τίτλο του μενού, false από προεπιλογή

    &επίπεδο- βάθος ένθεσης, προεπιλογή 0 - όλα τα επίπεδα

    &όριο- περιορίστε τον αριθμό των σελίδων στην έξοδο (προεπιλογή 0 - χωρίς όριο)

    &αγνοεί Κρυφό- αγνοήστε το πλαίσιο ελέγχου της σελίδας "Εμφάνιση στο μενού", π.χ. αν καθορίσετε 1, θα εμφανίσει όλες τις σελίδες. Η προεπιλογή είναι 0. Εμφανίζονται μόνο εκείνες οι σελίδες που έχουν επιλεγμένο το πλαίσιο ελέγχου "Εμφάνιση στο μενού".

    &ph - το όνομα του υποκατάστατου που αντικαθιστά την άμεση έξοδο. Η προεπιλογή είναι 0.

    &εντοπισμός σφαλμάτων- λειτουργία εντοπισμού σφαλμάτων (προεπιλογή 0)

    &απόκρυψηΥπομενού - επέκταση μόνο ενεργού υπομενού (προεπιλογή 0)

    &αφαιρέστε Νέες Γραμμές- αφαιρεί τον χαρακτήρα αλλαγής γραμμής στην έξοδο (προεπιλογή 0)

    &textOfLinks- για το όνομα του συνδέσμου μενού. Πιθανές επιλογές:τίτλος μενού, id, τίτλος σελίδας, περιγραφή, γονέας, ψευδώνυμο, longtitle, introtext . Προκαθορισμένοτίτλο μενού

    &titleOfLinks- για τον τίτλο του συνδέσμου μενού. Επιλογές:τίτλος μενού, id, τίτλος σελίδας, περιγραφή, γονέας, ψευδώνυμο, longtitle, introtext. Προκαθορισμένοτίτλος σελίδας

    &rowIdPrefix- ορίζει το αναγνωριστικό (rowIdPrefix + docId) για κάθε στοιχείο. Προεπιλογή 0

    &συμπεριλαμβάνονται Έγγραφα- αναγνωριστικό εγγράφων, διαχωρισμένα με κόμματα, που θα περιλαμβάνονται στο μενού (δεν καθορίζεται από προεπιλογή)

    &εξαιρούνται τα Έγγραφα - αναγνωριστικό εγγράφων, διαχωρισμένα με κόμματα, που θα εξαιρεθούν από το μενού (0 από προεπιλογή)

    &περιεχόμενα- πλαίσιο για τη δημιουργία μενού. Η προεπιλογή είναι τρέχουσα.

    &startIdContext - Αναγνωριστικό περιβάλλοντος από το οποίο λαμβάνονται τα έγγραφα για να σχηματιστεί το αποτέλεσμα.

    &config - Εξωτερικός αρχείο PHP, για να αποθηκεύσετε τη διαμόρφωση του Wayfinder (παράδειγμα: core/components/wayfinder/configs).

    &σχέδιο - Η μορφή για τη δημιουργία της διεύθυνσης URL. Πιθανές τιμές(βάσει της κλήσης makeURL API):

    1: (προεπιλογή) διεύθυνση URL σε σχέση με το site_url.

    0: βλέπε http;

    1: δείτε https;

    full: απόλυτη διεύθυνση URL που ξεκινά με site_url.

    abs: απόλυτη διεύθυνση URL που ξεκινά με base_url.

    http: απόλυτη διεύθυνση URL, που επιβάλλεται στο σχήμα http.


    https: απόλυτη διεύθυνση URL, που επιβάλλεται στο σχήμα https.

    &ταξινόμηση κατά - Το πεδίο για ταξινόμηση. (Προκαθορισμένοευρετήριο μενού)

    Επιλογές:

    ταυτότητα, menutitle, pagetitle, introtext, menuindex, δημοσιευμένο, hidemenu, γονέας, isfolder, περιγραφή, ψευδώνυμο, longtitle, type, template

    &σειρά ταξινόμησης- Η σειρά ταξινόμησης."ASC" ή "DESC". Προεπιλεγμένο ASC

    &όπου - Επιλογές φίλτρου τύπου JSON (Αντιστοιχεί στο σημείο της MySQL). Για παράδειγμα, όταν θέλετε να αποκρύψετε ένα ιστολόγιο ή μια είδηση ​​από το πρόσθετο Άρθρα: &where=`[("class_key:!=": "Article")]`
    Παραδείγματα:
    έξοδος μόνο φακέλων: & όπου = `isfolder = 1

    &εδώId - Καθορίστε το τρέχον αναγνωριστικό που θα χρησιμοποιηθεί στο απόσπασμα. Χρησιμοποιήστε την τιμή [[*id]] εάν το πρότυπο έχει καθοριστεί χρησιμοποιώντας την παράμετρο hereTpl και το activeRowParentTpl δεν εφαρμόζεται σωστά στο στοιχείο μενού. Από προεπιλογή, το τρέχον αναγνωριστικό.
    Πρέπει να το καθορίσετε μόνο εάν το ίδιο το σενάριο το προσδιορίζει εσφαλμένα, για παράδειγμα, όταν εμφανίζετε ένα μενού από ένα κομμάτι άλλου αποσπάσματος.

    &εδώTpl - Το πρότυπο hereTpl χρησιμοποιείται όταν το τρέχον στοιχείο εμφανίζεται στο μενού.
    Πιθανά σύμβολα κράτησης θέσης:
    [[+wf.classes]] - μέρος για να καθορίσετε την κλάση CSS που θα χρησιμοποιηθεί (περιλαμβάνει class=" ")
    [[+wf.classnames]] - περιέχει μόνο το όνομα της κλάσης CSS (δεν περιλαμβάνει class=" ")
    [[+wf.link]] - διεύθυνση (href) για τον σύνδεσμο
    [[+wf.title]] - κείμενο για τον τίτλο του συνδέσμου
    [[+wf.linktext]] - κείμενο τίτλου συνδέσμου
    [[+wf.wrapper]] - μέρος για την εμφάνιση του υπομενού
    [[+wf.id]] - εμφάνιση ενός μοναδικού αναγνωριστικού (id)
    [[+wf.attributes]] - εμφάνιση πρόσθετων χαρακτηριστικών συνδέσμων
    [[+wf.docid]] - αναγνωριστικό εγγράφου για το τρέχον στοιχείο
    [[+wf.subitemcount]] - ο αριθμός των στοιχείων στο φάκελο
    [[+wf.description]] - εμφανίζει τις τιμές του πεδίου περιγραφής
    [[+wf.introtext]] - εμφανίζει τις τιμές του πεδίου introtext

    Παράδειγμα προτύπου: [[+wf.linktext]][[+wf.wrapper]]

    Επιλογές προτύπων

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

    ΣΤΟ τρέχουσα έκδοσηΤο Wayfinder for MODX Revolution, μπορείτε να αποκτήσετε πρόσβαση στις προσαρμοσμένες τηλεοράσεις σας χρησιμοποιώντας σύμβολα κράτησης θέσης προθέματος wf. , για παράδειγμα [[+my_TV]]

    Κατά τη στιγμή της σύνταξης, θα επιστραφούν μόνο οι αρχικές τιμές της τηλεόρασης - δεν θα μορφοποιηθούν. Για παράδειγμα, εάν η τηλεόρασή σας είναι εικόνα - μια τυπική χρήση μιας τέτοιας τηλεόρασης μέσα στο πρότυπό σας θα επιστρέψει ολόκληρη την πλήρη ετικέτα εικόνας, αλλά μέσα σε ένα πρότυπο Wayfinder - θα επιστραφεί μόνο η διαδρομή προς την εικόνα.

    Εάν θέλετε να χειριστείτε τηλεόραση, μπορείτε να το κάνετε καλώντας ένα απόσπασμα μέσα στο πρότυπο σειράς Wayfinder (&rowTpl . Για παράδειγμα, η τηλεόραση εικόνας ονομάζεται εικόνισμακαι συνήθως για την έξοδο στο πρότυπο, χρησιμοποιείται κάτι σαν αυτόν τον κώδικα:

    ... ...

    Αλλά επειδή αυτό δεν θα σας επιτρέψει να χειριστείτε την τηλεόραση, πρέπει να την αντικαταστήσετε με:

    ... ...

    Και τώρα μέσα στο απόσπασμα processTV τοποθετούμε τον ακόλουθο κώδικα PHP:

    getObject("modResource", $myId); επιστροφή $doc->getTVValue($myTV);

    Ως αποτέλεσμα, επιστρέφεται μια πλήρως επεξεργασμένη εικόνα τηλεόρασης.

    &outerTpl

    Το όνομα του κομματιού που περιέχει το πρότυπο εξωτερικού δοχείου.

    Διαθέσιμα σύμβολα κράτησης θέσης:

    • wf.classes - Εμφανίζει τις κλάσεις που λαμβάνονται από το σύνολο επιλογών Wayfinder (συμπεριλαμβανομένου του χαρακτηριστικού class="")
    • wf.classnames - εμφάνιση ονομάτων κλάσεων (χωρίς class="")
    • wf.wrapper - έξοδος εσωτερικού περιεχομένου (σειρά).
      [[+wf.wrapper]]

    Η παράμετρος &innerTpl περιέχει το ίδιο σύνολο συμβόλων κράτησης θέσης με το &outerTpl .

    &rowTpl

    Το όνομα του κομματιού που περιέχει το πρότυπο για τα στοιχεία της σειράς μενού.

    Διαθέσιμα σύμβολα κράτησης θέσης:

    • wf.classes - έξοδος κλάσης (συμπεριλαμβανομένου του χαρακτηριστικού class="").
    • wf.classnames - έξοδος αντίστοιχων κλάσεων (χωρίς class="")
    • wf.link - η τιμή του χαρακτηριστικού href="" για τον σύνδεσμο μενού
    • wf.title - το όνομα του κειμένου τίτλου για το σύνδεσμο από το πεδίο που καθορίζεται στην παράμετρο &titleOfLinks
    • wf.linktext - κείμενο για τον ενεργό σύνδεσμο που καθορίζεται στο πεδίο που μεταβιβάστηκε στην παράμετρο &textOfLinks
    • wf.wrapper - έξοδος εσωτερικού περιεχομένου όπως υπομενού
    • wf.id - εξαγωγή αναγνωριστικού μοναδικού χαρακτηριστικού. Πρέπει να καθορίσετε την παράμετρο &rowIdPrefix προκειμένου αυτό το σύμβολο κράτησης θέσης να λάβει μια τιμή. Η τιμή είναι πρόθεμα + docId.
    • wf.attributes - Εμφανίζει μια αναφορά χαρακτηριστικού για το τρέχον στοιχείο
    • wf.docid - το αναγνωριστικό εγγράφου του τρέχοντος στοιχείου
    • wf.description - περιγραφή για το τρέχον στοιχείο
    • wf.level - τρέχον επίπεδο ένθεσης

    Παράδειγμα χρήσης:

    [[+wf.linktext]][[+wf.wrapper]]

    Αλλη επιλογή:

  • [[+wf.linktext]] - [[+wf.description]] [[+wf.wrapper]]

  • Παραδείγματα

    Πρώτο επίπεδο


    [[!Wayfinder? &startId=`0` &level=`1`
    &rowTpl=`rowTpl`
    &outerTpl=`outerTpl`
    &hereClass=`ενεργό`
    &rowClass=`eNav_li`]]

    Κωδικός τεμαχίου outerTpl



      [[+wf.wrapper]]

    Κωδικός κομματιού rowTpl



      [[+wf.wrapper]]

    Δεύτερο επίπεδο (σε αυτό το παράδειγμα, τα στοιχεία μενού και υπομενού ήταν οπτικά στο ίδιο επίπεδο

    [[!Wayfinder? &startId=`0` &level=`2`
    &rowTpl=`rowTplFooterMenu`
    &outerTpl=`outerTplFooterMenu`
    &innerTpl=`innerTplFooterMenu`
    &innerRowTpl=`innerRowTplFooterMenu`
    &hereClass=`ενεργό`]]

    Κωδικός τεμαχίου OuterTplFooterMenu



    [[+wf.wrapper]]

    Κωδικός κομματιού rowTplFooterMenu




    • [[+wf.title]]


    • [[+wf.wrapper]]

    Κωδικός τεμαχίου innerTplFooterMenu

    [[+wf.wrapper]]

    Κωδικός τεμαχίου innerRowTplFooterMenu



  • [[+wf.title]]