قائمة MODX متعددة المستويات باستخدام Bootstrap. PdoMenu - إنشاء قوائم في قوائم MODX Modx على صفحات محددة
سنقوم اليوم بإعداد قائمة لمدونتنا باستخدام مقتطف Wayfinder (توثيق مقتطف Wayfinder). يتكون التنقل العلوي والأساسي في مدونتنا من جزأين:
- متحرك
- سهل
لذلك ، سنقوم بالتنقل في نسختين). لذلك ، سنقسم التنقل الرئيسي إلى أجزاء. وفقًا للوثائق ، يجب أن تحصل على 4 أجزاء (لا تنس إزالة المسافات):
& OuterTpl = `wayOuterTpl` - غلاف متقطع من القائمة الرئيسية
& innerTpl = `wayInnerTpl` - غلاف متقطع للقائمة المنسدلة
& rowTpl = `wayRowTpl` - عرض عناصر القائمة
& parentRowTpl = `wayHasChildTpl` - مقطع يعرض عناصر القائمة الرئيسية
وهنا استدعاء المقتطف في مقطع الرأس:
[ ]
& startId = `0` - عيّن بداية مرور المقتطف ، في حالتنا من جذر الموقع.
& level = `2` - عدد المستويات في قائمتنا.
الخطوة التالية هي عرض قائمة الهاتف المحمول الخاصة بنا. المبدأ مشابه لما ذكرته أعلاه ، نحتاج هنا أيضًا إلى 4 أجزاء.
& OuterTpl = `wayOuterMobileTpl` - جزء مُجمّع من القائمة الرئيسية.
& innerTpl = `wayInnerMobileTpl` - مقطع غلاف القائمة الداخلية.
[[+ wf.wrapper]]
& rowTpl = `wayRowMobileTpl` - مقطع يعرض عناصر القائمة.
[[+ wf.wrapper]]
& innerRowTpl = `wayInnerRowMobileTpl` - مقطع يعرض عناصر القائمة الداخلية.
[[+ wf.wrapper]]
ستبدو المكالمة إلى Wayfinder كما يلي:
[ ]
كل شيء على حاله ، الأجزاء فقط هي التي تغيرت. الآن لدينا التنقل عبر الهاتف المحمول ، يمكنك اختباره باستخدام أداة اختبار تصميم الويب المستجيب لمتصفح Opera و Chrome.
هذا هو الكود الكامل لجزء الرأس:
أشياء كبيرة ... عبوات صغيرة
التنقل لدينا جاهز! في الفيديو ، نظرنا أيضًا في إنشاء قائمة فئة في مدونة. بما أن المبدأ هو نفسه ، لم أعتبره هنا ، شاهد الفيديو) نراكم في الدروس القادمة!
لنبدأ الدرس MODx Revolution 8 للمبتدئين. أذكرك بأننا نقوم بإنشاء موقع لتعلم MODx Revolution. في الدرس الأخير ، نظرنا في مفهوم المقتطفات ، وهي أجزاء من كود PHP تسمح لنا بإضافة وظائف إلى موقعنا الإلكتروني. في هذا البرنامج التعليمي ، سنلقي نظرة على مقتطف خاص - Wayfinder ، وسنستخدمه لإنشاء قائمة ديناميكية لموقعنا.
ما هو برنامج Wayfinder؟
وايندرعبارة عن مقتطف يعرض قائمة غير مرتبة من الارتباطات إلى الموارد في شجرة موقعك ، ويعتمد نوع إخراج القائمة على استدعاء المقتطف ومعلمات هذه المكالمة. بشكل عام ، هذا يعني أنه عند إجراء مكالمة إلى Wayfinder في القالب الخاص بك ، فإنه يبدأ في البحث عن الموارد التي تطابق المعلمات الواردة فيه ويعيد قائمة بالارتباطات إلى هذه الموارد بتنسيق قائمة لم يتم فرزها أو بالتنسيق. تحدده.
لماذا استخدام Wayfinder؟
عادةً ما أستخدم Wayfinder لإنشاء تنقل ديناميكي في الموقع ، أي قائمة. نظرًا لأن معظم قوالب HTML تستخدم قوائم غير مرتبة لإنشاء قوائم ، فإن Wayfinder هي الأداة المثالية لذلك. عند إنشاء موقع ، يمكنك إدخال عناوين URL الخاصة بك في قائمة التنقل بشق الأنفس ، تمامًا كما فعلت من قبل في موقع HTML ثابت. في الوقت نفسه ، في كل مرة تحتاج فيها إلى حذف أو إنشاء صفحة ، تحتاج إلى إجراء التغييرات المناسبة في قائمتك ، وتغيير عناوين URL. يؤدي استخدام مقتطف Wayfinder لإنشاء قوائمك ديناميكيًا إلى تجنب هذا الصداع ، حيث يكتشف التغييرات تلقائيًا ويغير قائمتك وفقًا لذلك.
برنامج Wayfinder مرن للغاية ويسمح لك بتحديد الموارد التي يجب تضمينها أو استبعادها من القائمة ، وما هو قالب القائمة ، ومدى عمق قائمة موقعك. يتم تحديد حدودك من خلال كود HTML / CSS الخاص بك.
كيفية استخدام برنامج Wayfinder؟
كما ذكرنا في الدرس السابق ، تبدو بنية مقتطفات الاستدعاء كما يلي: [[! somesnippet]]
هذه مجرد دعوة أساسية وليست كافية ، بخلاف أنه يتعين علينا تحديد بعض خصائص هذه المكالمة. في حالة Wayfinder ، فإن الحد الأدنى الذي يجب تحديده في الخصائص هو المكان الذي يجب أن يبدأ فيه Wayfinder في شجرة الموارد في بناء قائمة الموارد. وبالتالي ، في استدعاء مقتطف Wayfinder ، يجب تحديد معلمة واحدة على الأقل - المعرف الأولي. سيبدو الاستدعاء الأساسي لمقتطف Wayfinder في هذه الحالة كما يلي:
تخبر هذه المكالمة برنامج Wayfinder بالبدء من جذر الشجرة ( بطاقة تعريف 0 يعني جذر الموقع) ويعرض جميع الموارد التي تم نشرها والتي لا تحتوي على علامة اختيار في خانة الاختيار إخفاء من القوائم (إخفاء من القائمة).
إذا ألقينا نظرة على النموذج الذي نستخدمه ، فيمكننا رؤية القائمة العلوية مع العديد من العناصر والقوائم المنسدلة.
دعنا نلقي نظرة على القالب والكود الذي يعرض هذه القائمة:
كما ترى ، هذه قائمة متداخلة غير مرتبة. دعنا نستبدل هذا الرمز بمكالمة Wayfinder الأساسية ونرى ما سيحدث. احذف الرمز أعلاه والصقه في مكانه:
[[! Wayfinder؟ & startId = `0`]]
إذا كنت تستخدم نفس القالب مثلي ، فستبدو شفرتك كما يلي:
احفظ القالب وألق نظرة على الصفحة الرئيسية ، يجب أن يبدو كما يلي:
رائع! يمكنك أن ترى أن قائمتنا السابقة ، التي كانت تحتوي على عدة عناصر ، قد تم استبدالها الآن بقائمة بسيطة تحتوي على عنصر واحد فقط - الصفحة الرئيسية. يخبرنا هذا أن Wayfinder تعمل كما هو متوقع وأنها تأخذ صفحة واحدة من موقعنا وتعرض عنوانها كعنصر قائمة.
لنقم بإنشاء المزيد من الموارد. سأقوم بإضافة صفحة حول بها 3 صفحات فرعية (صفحات MODx والبرامج التعليمية وصفحات الاتصال والأسئلة الشائعة). يمكنك إنشاء أي موارد أو صفحات لموقعك. الغرض من هذا التمرين هو إنشاء بعض الموارد بحيث يكون لدى Wayfinder شيء لعرضه.
لقد انتهيت من إنشاء الصفحات وتبدو شجرة موارد موقعي على النحو التالي:
الآن لدينا بضع صفحات ، دعنا نرى كيف سيؤدي استدعاء Wayfinder إلى إنشاء قائمة لموقعنا:
والخبر السار هو أن جميع صفحاتنا قد ظهرت في القائمة ومن خلال النقر فوق كل عنصر من عناصر القائمة ، نصل إلى الصفحة المقابلة. (لاختبار هذا العنصر ، أضف بعض النص إلى كل صفحة ، على سبيل المثال ، في صفحة "حول" ، يمكنك إضافة "هذه صفحة حول" وستظهر هذه الرسالة عند فتح الصفحة. تذكر أننا بحاجة إلى تحديد قالب لـ كل صفحة ، ولكن في الوقت الحالي لا داعي للقلق بشأنها).
النبأ السيئ هو أن تنسيق القائمة معطل ، لكن يمكننا إصلاحه. انقر بزر الماوس الأيمن على صفحة الويب وانظر إلى الكود المصدري (أو استخدم Firebug لذلك) ، سترى ذلك الآن وايندريولد HTML مثل هذا:
- بيت
- عن
- MODX CMS
- لوحة الترميز
- المدونة
- الخدمات
- اتصل بنا
- دروس
- التعليمات
كما ترى ، يبدو مشابهًا جدًا للكود الثابت الأولي الخاص بنا مع بعض الاستثناءات. أولاً ، تم إنشاء برنامج Wayfinder
- عنصر بدون فئة القائمة sfالذي تم استخدامه في الكود الثابت الخاص بنا. يحتاج القالب إلى هذه الفئة للعمل مع CSS. وينظر أيضا إلى ذلك
- العناصر لها معلمة فترة، والتي تشير إلى عناصر نص الرابط في الكود الثابت الأصلي ولا توجد في الكود الذي تم إنشاؤه بواسطة Wayfinder. بالإضافة إلى ذلك ، تحتوي شفرة HTML الثابتة الخاصة بنا على فئة الصفحة الحالية البند، وهو غير موجود في كود مقتطف Wayfinder الخاص بنا. كل هذه القطع المفقودة تجعل قائمتنا تبدو قبيحة.
كيفية تخصيص أسلوب إخراج مقتطف محدد الطريق
بالنظر إلى كيفية قيام Wayfinder بإنشاء الكود ، لدينا سؤال طبيعي تمامًا: "كيف نضيف الأجزاء المفقودة من التعليمات البرمجية حتى نرغب في عرض القائمة بالشكل الذي نحتاجه؟" الإجابة سهلة للغاية ، فنحن نستخدم أجزاء من القوالب لتنسيق إخراج مقتطف Wayfinder.
Wayfinder هي أداة مرنة وبمساعدة المعلمات يمكنك تحديد مظهر الإخراج. تسمح لك بعض الخيارات العامة بتحديد أي مستوى لبدء إنشاء القائمة ، والعناصر المراد استبعادها من القائمة ، وما إلى ذلك. الخيارات الأخرى هي خيارات النموذج التي تسمح لك بتعيين رمز HTML للقالب لقائمتك ، وما إلى ذلك. يمكن العثور على أوصاف هذا الأخير في الوثائق الرسمية - http://rtfm.modx.com/display/ADDON/Wayfinder.
خذ ملاحظة:بعض خيارات Wayfinder لها قيمة افتراضية.
يوضح هذا ، على سبيل المثال ، سبب وجود اسم الفئة " أول نشاط". هذه هي الفئة الافتراضية ، ولكن يمكننا تجاوزها عن طريق تحديد الفئات الخاصة بنا في أجزاء القالب.
سنستخدم بعض خيارات Wayfinder في هذا البرنامج التعليمي ، لكنني أشجعك على تعلمها جميعًا وممارسة استخدامها قدر الإمكان للتعرف على إمكاناتها الكاملة. نظرًا لأن المعلمات الافتراضية لـ Wayfinder موثقة بوضوح على الموقع الرسمي ، فسيكون من السخف التحدث عنها هنا. سوف نستخدم المزيد والمزيد منها أثناء عملنا مع القوائم المختلفة.
للبدء في قالب القائمة ، دعنا ننشئ بعض القوالب المصغرة ونخزنها في أجزاء. سترى أننا في هذه الأجزاء نستخدم كود HTML لكننا نستبدل العناصر الديناميكية العناصر النائبة(أو العناصر النائبةكما يطلق عليهم أيضًا) التي يبدو تركيبها كما يلي: [[+ عنصر نائب]]. العناصر النائبة التي نستخدمها خاصة بمقتطف Wayfinder وتعريفها واضح من الاسم ، ولكن يمكنك دائمًا الرجوع إلى وثائق MODx للحصول على مزيد من المساعدة الكاملة.
فيما يلي الأجزاء التي سأستخدمها لإنشاء النموذج الخاص بنا:
7in1 القائمة- سيحتوي على كود HTML لحاويتنا الخارجية ul.
يمكنك أن ترى أنني أضفت فئة لـ ul الخارجي. هناك طريقة بديلة للقيام بذلك وهي استخدام العنصر النائب wf.classes ثم إضافة اسم الفئة إلى استدعاء محدد الطريق الحالي باستخدام المعلمة الطبقة الخارجية. لكن من أجل البساطة ، دعنا نستخدم الطريقة الأولى ، لكن كلاهما سيعمل بشكل جيد ...
7in1menuRow- سيحتوي على كود HTML لعناصر قائمة المستوى الأول
- [[+ wf.linktext]] [[+ wf.wrapper]]
- [[+ wf.linktext]] [[+ wf.wrapper]]
- . لن نعيد كتابة المقتطف ، لكن تغيير الفصل في الأنماط لا يمثل مشكلة.
- قائمة في شكل قائمة ، جدول ، صور ، مع أيقونات ، إلخ.
- القوائم الثابتة
- قوائم ذات تأثيرات مختلفة (قوائم منسدلة ، قوائم منسدلة ، إلخ.)
- خريطة الموقع
- [[+ wf.linktext]] [[+ wf.wrapper]]
- wf.classes - يعرض الفئات المأخوذة من مجموعة خيارات Wayfinder (بما في ذلك class = "") سمة
- wf.classnames - عرض أسماء الفئات (بدون class = "")
- wf.wrapper - إخراج المحتوى الداخلي (الصف).
- 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]]
[[+ wf.title]]
[[+ wf.title]]
- [[+ عنوان القائمة]] [[+ غلاف]]
- [[+ menutitle]] ([[+ أطفال]]) [[+ مجمّع]] `& countChildren =` 1`]]
الفكرة الرئيسية هنا هي أنني أضفت العلامة إلى نص رابط القائمة كما في كود HTML الأصلي الثابت. لقد قمت أيضًا بتضمين العنصر النائب wf.classes وهذا سيسمح لي بتحديد فئة للصفحة الحالية والتي ستتجاوز الفئة "النشطة" الافتراضية لدينا.
7in1 القائمة- سيحتوي على كود HTML الخاص بحاويات ul الداخلية
- [[+ wf.wrapper]]
7 في 1 القائمة- سيحتوي على كود HTML لأسطر عناصر المستويات الداخلية
هذا كل شيء ، والآن أصبحت أجزاء القوالب الخاصة بنا في مكانها الصحيح ، كما ترى (للطلب ، أضعها في فئة منفصلة):
الآن يمكننا تعديل مكالمة Wayfinder حتى نتمكن من استخدام هذه القوالب المصغرة لإخراج Wayfinder. إذا ألقيت نظرة على قائمة خيارات القوالب (سيكون من المفيد أن تفتح http://rtfm.modx.com/display/ADDON/Wayfinder أمام عينيك أو تطبع وتثبت بالقرب من الشاشة) ، فسترى ذلك لقد اتصلت بقطعتي المشابهة لمعلمات استدعاء مقتطفات المقابلة. لقد فعلت هذا للراحة ، فهو يساعدني على تتبع ما يحدث عندما أبدأ في إنشاء مكالمتي. دعنا نضيف معلمات وندعو قطعنا. ستبدو المكالمة إلى Wayfinder الآن كما يلي:
[[! Wayfinder؟ & ابدأ
يتم تضمين قيمة المعلمة في فواصل عليا (`) ، وليس علامات اقتباس مفردة (').
حسنًا ، دعنا نلقي نظرة على هذا التحدي. يمكنك أن ترى أننا نستخدم خيارات القوالب لاستدعاء الأجزاء الخاصة بنا بحيث يقوم Wayfinder بإخراج HTML الذي نريده بالفئات الصحيحة. لقد حددت قابل للاستدعاء هناالمعلمة وأعطاها قيمة Current_page_itemلمطابقة نموذج HTML الثابت. يمكنك أن ترى أنني تركت المعلمات الصف الأولو آخر حصةفارغ. والسبب في ذلك هو أن قالب HTML الخاص بي لا يعين فئة لعنصر القائمة الأول والأخير ، لذلك لتجنب التداخل ، قمت بالكتابة فوق الأسطر الفارغة الموجودة فيها.
يمكن ملاحظة أن قائمتنا تبدو بالضبط بالطريقة التي أردناها. يتم استخدام الأنماط الصحيحة في القائمة المنسدلة. إذا نظرت إلى الكود المصدري ، فسترى أن ملف وايندرلقد تغيرت شفرة om HTML بشكل لا يمكن التعرف عليه:
يتطابق هذا الرمز مع الكود الثابت الأصلي للقالب ، ولكن تم إنشاؤه عن طريق الاتصال وايندر.
هناك العديد من الخيارات الأخرى التي يمكنك استخدامها وايندرلبناء قوائمك. في الدروس التالية ، سننظر في القوائم المعقدة وكيفية دمجها في برنامج Wayfinder. للتلخيص: اتخذ موقعنا الآن شكلاً ما ولدينا قائمة وظيفية وديناميكية.
لإنشاء قائمة ديناميكية ، سنستخدم مقتطفًا جاهزًا وايندر.المقتطف ، كما تتذكر من البرامج التعليمية السابقة ، هو جزء من كود Php يمكننا تضمينه في نموذجنا. يكون الاختلاف عن القطع في الكود وطريقة الاستدعاء فقط. إذا استدعينا قطعة باستخدام أقواس مزدوجة متعرجة ، فسيتم استدعاء المقتطفات باستخدام هذا [! Snippet_name!]- مكالمة غير مخزنة مؤقتًا ، أو ما شابه [[SnippetName]]- مكالمة مخبأة. يجب أن يبدأ كل رمز مقتطف بـ لكن النهاية ?> . بالإضافة إلى ذلك ، يمكن تمرير قيم معلمات خاصة لكل مقتطف سيعالجها. لدى MODx بالفعل العديد من المقتطفات الجاهزة التي سنستخدمها في المستقبل.
مقتطف وايندريعمل على تنظيم قوائم الروابط لـ MODx. قائمة موقعنا هي قائمة بهذه الروابط. دعنا أولاً نعثر على جزء من الكود مسؤول عن عرض قائمتنا. القائمة في قطعة كبيرة رأس، ها هو:
دعنا نقطع هذا الرمز ونكتب بدلاً منه:
((قائمة طعام))
والصق الرمز في قطعة جديدة قائمة طعام، في وصف القطعة نكتب قائمة الموقع. الآن دعونا نفحص هذا الرمز.
قائمة موقعنا الإلكتروني عبارة عن قائمة بسيطة غير مرتبة ، ومضمنة في حاوية بها معرف = "Templatemo_menu". دعنا نقطع هذه القائمة من الحاوية وأدخل استدعاء مقتطفنا بدلاً من ذلك:
& startId = `0`هي معلمة بقيمة 0 ، والتي تخبر المقتطف بمعرف المجلد الذي توجد فيه المستندات التي تمت معالجتها. جميع المستندات التي سنعرضها في القائمة موجودة في المجلد الجذر ، ومعرف المجلد الجذر هو صفر. دعونا نرى ما حصلنا عليه.
قائمتنا تعمل ، فقط العنصر النشط لم يعد مميزًا باللون الأبيض:
لفهم سبب حدوث ذلك ، نحتاج إلى إلقاء نظرة على الكود المصدري للصفحة. في Mozilla Firefox يتم ذلك على النحو التالي: عرض >> كود مصدر الصفحةأو بمجرد الضغط على اختصار لوحة المفاتيح Ctrl + U. نجد رمز قائمتنا:
انتبه إلى حقيقة أن العنصر النشط في الكود المصدري يحتوي على فئة = "الحالية"، ويقوم المقتطف الخاص بنا تلقائيًا بتعيين العنصر النشط فئة = "نشطة". نلاحظ أيضًا اللحظة التي تم فيها تطبيق الفئة في الكود المصدري على العلامة
والآن إلى العلامة
نجد في المجلد C: / xampp / htdocs / site / www / الأصول / القوالب / الملف Templatemo_style.cssوافتحه باستخدام Notepad ++. نحن نبحث عن وصف للفئة الحالية في هذا الملف ، فهي موجودة في 198 خط:
#templatemo_menu li .current (
المساحة المتروكة: 40 بكسل
اللون: #ffffff ؛
}
استبدل الفصل حاضِرعلى نشيط، تذكر إعادة تعيينه إلى العلامة :
#templatemo_menu li.active a (
المساحة المتروكة: 40 بكسل
اللون: #ffffff ؛
}
نحن نحفظ الملف. دعونا نرى ما حدث.
عملت قائمتنا تمامًا كما أراد المصممون. الآن يمكننا التنقل عبر صفحات موقعنا باستخدام قائمتنا الرئيسية. عند إضافة مستندات أخرى إلى المجلد الجذر ، سيتم عرضها تلقائيًا في قائمتنا. لمنع عرض المستندات غير المرغوب فيها في القائمة ، قم بإلغاء تحديدها. إظهار في القائمة. يمكنك فرض استبعاد عنصر غير مرغوب فيه باستخدام المعلمة &lusioneDocs = `قائمة مستندات الهوية المراد استبعادها ، مفصولة بفواصل`.
حتى لا تعرض القائمة المستندات الفرعية التي سننشئها في الدروس التالية ، دعنا نضيف معلمة إلى استدعاء المقتطف مستوىالذي يحدد عدد المستويات في القائمة ، سيتم عرض جميع المستويات افتراضيًا ، وسنقتصر على مستوى واحد فقط:
وايندريعمل على تنظيم قوائم الروابط لمودكس. بفضل دعم القوالب ، يتيح لك عرض القوائم بأي شكل ضروري:
& rowTpl = `rowTpl`
& OuterTpl = `OuterTpl`
& hereClass = `active`
& rowClass = `eNav_li`]]
خيارات المقتطف:
& startId- معرف الصفحة الرئيسية ، إذا حددت 0 ، فسيكون من جذر الموقع. القيمة الافتراضية هي معرف الصفحة النشطة.
& عرض - إظهار المستند مع startId في عنوان القائمة ، خطأ افتراضيًا
&مستوى- عمق التداخل ، الافتراضي 0 - جميع المستويات
&حد- تحديد عدد الصفحات في الإخراج (الافتراضي 0 - بلا حدود)
& تجاهل مخفي- تجاهل مربع الاختيار في صفحة "إظهار في القائمة" ، أي إذا حددت 1 ، فسيتم عرض جميع الصفحات. القيمة الافتراضية هي 0. فقط تلك الصفحات التي تم تحديد مربع الاختيار "إظهار في القائمة" يتم عرضها.
& فتاه - اسم البديل الذي يحل محل الإخراج الفوري. الافتراضي هو 0.
& تصحيح- وضع التصحيح (الافتراضي 0)
& إخفاء القوائم الفرعية - توسيع القائمة الفرعية النشطة فقط (الافتراضي 0)
& إزالة خطوط جديدة- يزيل حرف فاصل الأسطر عند الإخراج (افتراضي 0)
& textOfLinks- لاسم رابط القائمة. الخيارات الممكنة:menutitle، id، pagetitle، description، parent، alias، longtitle، introtext. تقصيرعنوان القائمة
& titleOfLinks- للحصول على عنوان ارتباط القائمة الخيارات:menutitle، id، pagetitle، description، parent، alias، longtitle، introtext. تقصيرعنوان الصفحة
& rowIdPrefix- يحدد id (rowIdPrefix + docId) لكل عنصر. الافتراضي 0
& تشمل المستندات- معرف المستندات ، مفصولة بفواصل ، والتي سيتم تضمينها في القائمة (غير محدد افتراضيًا)
& استبعاد المستندات - معرف المستندات ، مفصولة بفواصل ، والتي سيتم استبعادها من القائمة (0 افتراضيًا)
& السياقات- سياق إنشاء القائمة. الافتراضي هو الحالي.
& startIdContext - معرّف السياق الذي يتم أخذ المستندات منه لتشكيل النتيجة.
& التكوين - ملف PHP خارجي لتخزين تكوين Wayfinder (مثال: core / component / wayfinder / configs).
&مخطط - تنسيق إنشاء عنوان URL. القيم المحتملة (بناءً على استدعاء makeURL API):
1: (افتراضي) URL ذو صلة بـ site_url ؛
0: انظر http ؛
1: انظر https ؛
كامل: عنوان URL مطلق يبدأ بـ site_url ؛
abs: عنوان URL مطلق يبدأ بـ base_url ؛
http: عنوان URL مطلق ، يتم فرضه في مخطط http ؛
https: عنوان URL مطلق ، يتم فرضه في مخطط https.
&ترتيب حسب - الحقل المطلوب الفرز حسبه. (تقصير Menuindex)
خيارات:
بطاقة تعريف،عنوان القائمة ، عنوان الصفحة ، النص الداخلي ، menuindex ، المنشور ، hidemenu ، الأصل ، isfolder ، الوصف ، الاسم المستعار ، العنوان الطويل ، النوع ، القالب&امر ترتيب- ترتيب الفرز."ASC" أو "DESC". افتراضي ASC
&أين - خيارات مرشح نمط JSON (يتوافق مع أين في MySQL). على سبيل المثال ، عندما تريد إخفاء مدونة أو أخبار من الوظيفة الإضافية للمقالات: & where = `[(" class_key:! = ":" Article ")]`
أمثلة:
إخراج المجلدات فقط: & where = `isfolder = 1
& هنا - حدد المعرف الحالي لاستخدامه في المقتطف. استخدم القيمة [[* id]] إذا تم تحديد القالب باستخدام المعلمة hereTpl ولم يتم تطبيق activeRowParentTpl بشكل صحيح في عنصر القائمة. بشكل افتراضي ، المعرف الحالي.
تحتاج إلى تحديده فقط إذا كان البرنامج النصي نفسه يحدده بشكل غير صحيح ، على سبيل المثال ، عند عرض قائمة من جزء من مقتطف آخر.
& هنا - يتم استخدام نموذج hereTpl عند عرض العنصر الحالي في القائمة.
العناصر النائبة المحتملة:
[[+ wf.classes]] - مكان لتحديد فئة CSS المراد استخدامها (بما في ذلك class = "")
[[+ wf.classnames]] - يحتوي فقط على اسم فئة CSS (لا يشمل class = "")
[[+ wf.link]] - عنوان (href) للارتباط
[[+ wf.title]] - نص عنوان الرابط
[[+ wf.linktext]] - نص عنوان الارتباط
[[+ wf.wrapper]] - مكان لعرض القائمة الفرعية
[[+ wf.id]] - عرض معرف فريد (معرف)
[[+ wf.attributes]] - عرض سمات ارتباط إضافية
[[+ wf.docid]] - معرف المستند للعنصر الحالي
[[+ wf.subitemcount]] - عدد العناصر في المجلد
[[+ wf.description]] - يعرض قيم حقل الوصف
[[+ wf.introtext]] - يعرض قيم حقل النص الداخلي
مثال على القالب:
خيارات النموذج
تحدد هذه الخيارات الأجزاء التي تحتوي على أنماط ستولد إخراج Wayfinder.
في الإصدار الحالي من Wayfinder for MODX Revolution ، يمكنك الوصول إلى أجهزة التلفزيون المخصصة الخاصة بك باستخدام العناصر النائبة لبادئة wf. ، على سبيل المثال [[+ my_TV]]
في وقت كتابة هذا التقرير ، سيتم إرجاع قيم التلفزيون الأصلية فقط - لن يتم تنسيقها. على سبيل المثال ، إذا كان التلفزيون الخاص بك عبارة عن صورة - فإن الاستخدام المعتاد لمثل هذا التلفزيون داخل القالب الخاص بك سيعيد علامة الصورة الكاملة بالكامل ، ولكن داخل قالب Wayfinder - سيتم إرجاع المسار إلى الصورة فقط.
إذا كنت تريد التعامل مع التلفزيون ، فيمكنك القيام بذلك عن طريق استدعاء مقتطف داخل قالب صف Wayfinder (& rowTpl. على سبيل المثال ، يُطلق على تلفزيون صورتك أيقونةوعادة ما يتم استخدام شيء مثل هذا الرمز للإخراج في القالب:
... ...
ولكن نظرًا لأن هذا لن يسمح لك بالتعامل مع التلفزيون ، فأنت بحاجة إلى استبداله بـ:
... ...
والآن داخل مقتطف processTV ، نضع كود PHP التالي:
getObject ("modResource"، $ myId)؛ return $ doc-> getTVValue ($ myTV) ؛
نتيجة لذلك ، يتم إرجاع صورة تليفزيونية تمت معالجتها بالكامل.
& OuterTpl
اسم القطعة التي تحتوي على قالب الحاوية الخارجية.
العناصر النائبة المتوفرة:
تحتوي المعلمة & innerTpl على نفس مجموعة العناصر النائبة مثل & OuterTpl.
& rowTpl
اسم المقطع الذي يحتوي على قالب لعناصر صف القائمة.
العناصر النائبة المتوفرة:
مثال على الاستخدام:
خيار اخر:
أمثلة
مستوى اول
[[! Wayfinder؟ & startId = `0` & المستوى =` 1`
& rowTpl = `rowTpl`
& OuterTpl = `OuterTpl`
& hereClass = `active`
& rowClass = `eNav_li`]]
كود الجزء الخارجي
[[+ wf.wrapper]]
كود مجموعة rowTpl
[[+ wf.wrapper]]
المستوى الثاني (في هذا المثال ، كانت عناصر القائمة والقائمة الفرعية على نفس المستوى بشكل مرئي
[[! Wayfinder؟ & startId = `0` & المستوى =` 2`
& rowTpl = `rowTplFooterMenu`
& OuterTpl = `OuterTplFooterMenu`
& innerTpl = `innerTplFooterMenu`
& innerRowTpl = `innerRowTplFooterMenu`
& hereClass = `active`]]
OuterTplFooterMenu رمز قطعة
[[+ wf.wrapper]]
rowTplFooterMenu كود القطعة
[[+ wf.wrapper]]
innerTplFooterMenu رمز قطعة
[[+ wf.wrapper]]
innerRowTplFooterMenu رمز قطعة
مقتطف إنشاء القائمة. يمكن أن يحل محل Wayfinder ، ويسمح بمزيد من المرونة في تحديد المعلمات.
على سبيل المثال ، يمكنه إنشاء قائمة من العديد من الآباء في وقت واحد ، وعرضهم معًا وكفروع منفصلة.
إنه يعطي زيادة كبيرة في السرعة فقط في البداية الأولى ، ومن ثم فإن Wayfinder ليست أقل شأنا بشكل خاص ، وذلك بفضل التخزين المؤقت الكفء.
خيارات
بشكل افتراضي ، يقبل pdoMenu خيارات pdoTools الشائعة وبعض الخيارات الخاصة به:
اسم | تقصير | وصف |
---|---|---|
&آباء | المورد الحالي | قائمة الآباء لنتائج البحث ، مفصولة بفواصل. إذا وضعت & الآباء = `0`- العينة غير محدودة. إذا بدأ معرّف الوالدين بواصلة ، فسيتم استبعاده وأبنائه من التحديد. |
&مستوى | 0 (غير محدود) | تم إنشاء مستوى القائمة. |
&موارد | قائمة الموارد المراد عرضها في النتائج ، مفصولة بفواصل. إذا بدأ معرف المورد بواصلة ، فسيتم استبعاد هذا المورد من التحديد. | |
& القوالب | قائمة قوالب لتصفية النتائج ، مفصولة بفواصل. إذا بدأ معرف القالب بواصلة ، يتم استبعاد الموارد الخاصة به من التحديد. | |
&أين | مصفوفة من خيارات التحديد الإضافية المشفرة في JSON. | |
& عرض | 0 | تفعيل عرض عقد القائمة الأولية. مفيد عند تحديد أكثر من "أبوين". |
&سياق | تقييد الاختيار حسب سياق المورد. | |
&أظهر المخفي | 0 | إظهار الموارد المخفية في القائمة. |
& إظهار غير منشورة | 0 | إظهار الموارد غير المنشورة. |
& معاينة غير منشورة | 0 | قم بتمكين عرض الموارد غير المنشورة إذا كان لدى المستخدم إذن للقيام بذلك. |
& إخفاء القوائم الفرعية | 0 | إخفاء فروع القائمة غير النشطة. |
&يختار | قائمة الحقول المراد تحديدها ، مفصولة بفواصل. يمكنك تحديد سلسلة JSON مع مصفوفة ، على سبيل المثال & select = `(" modResource ":" id ، pagetitle ، content ")` | |
&ترتيب حسب | Menuindex | أي حقل للمورد للفرز ، بما في ذلك معلمة TV إذا كانت محددة في المعلمة & includeTVs، على سبيل المثال & sortby = `(" tvname ":" ASC "،" pagetitle ":" DESC ")`. يمكنك تحديد سلسلة JSON بمصفوفة من عدة حقول. للفرز العشوائي ، حدد & sortby = `RAND ()` |
& فرز | ASC | اتجاه الفرز: تنازلي أو تصاعدي. إذا تركت المعلمات & Sortby و & sortdir فارغة ، فسيتم إجراء الفرز بترتيب الموارد &موارد. |
&حد | 0 | الحد من عدد نتائج العينة. |
&عوض | 0 | تخطي النتائج من البداية. يجب أن تستخدم جنبًا إلى جنب مع محدد بشكل صريح &حد |
والتحقق من الأذونات | حدد الأذونات التي يجب التحقق منها للمستخدم عند عرض الموارد ، على سبيل المثال & checkPermissions = `القائمة`. | |
& عد الأطفال | 0 | حساب دقيق لعدد الموارد التابعة لكل فئة وعرضها في العنصر النائب [[+ الأطفال]]. يقوم بعمل استعلامات إضافية لقاعدة البيانات ، لذلك يتم تعطيلها افتراضيًا. |
& toPlaceholder | إذا لم يكن فارغًا ، فسيخزن المقتطف جميع البيانات في عنصر نائب بهذا الاسم بدلاً من عرضها. | |
& plPrefix | wf. | بادئة للعناصر النائبة المكشوفة. |
&إظهار السجل | 0 | إظهار معلومات إضافية حول عمل المقتطف. فقط لأولئك المصرح لهم في سياق "المونسنيور". |
&وضع سريع | 0 | وضع معالجة القطع السريع. سيتم تجريد جميع العلامات الأولية (الشروط والمقتطفات وما إلى ذلك). |
&مخبأ | 0 | التخزين المؤقت لنتائج المقتطف. |
& cacheTime | 3600 | وقت انتهاء صلاحية ذاكرة التخزين المؤقت ، بالثواني. |
&مخطط | -1 | يتم تمرير مخطط إنشاء عنوان url إلى modX :: makeUrl () ، لذلك هناك حاجة إلى الخيارات. يستبدل نوع uri الخاص قيمة uri للمورد ، بدون تشغيل دالة. |
& useWeblinkUrl | 1 | قم بإنشاء ارتباط بالنظر إلى فئة المورد. |
& rowIdPrefix | معرف البادئة = "" لتعيين المعرف في المقطع. | |
& هنا | معرف المورد الحالي للقائمة التي تم إنشاؤها. تحتاج إلى تحديده فقط إذا كان البرنامج النصي نفسه يحدده بشكل غير صحيح ، على سبيل المثال ، عند عرض قائمة من جزء من مقتطف آخر. | |
& includeTVs | قائمة معلمات التلفزيون المراد تحديدها ، مفصولة بفواصل. على سبيل المثال & includeTVs = `الإجراء ، الوقت`سيعطي العناصر النائبة [[+ إجراء]] و [[+ الوقت]]. | |
وتجهيز التلفزيونات | قائمة خيارات التلفزيون ، بملفات من مصادر الوسائط التي تريد إنشاء مسارات كاملة لها. إذا تم ضبطه & تحضير التلفزيونات = `1`، جميع أجهزة التلفاز المحددة في & includeTVs. | |
& processTVs | قائمة معلمات التلفزيون المراد معالجتها وعرضها وفقًا لإعداداتها في مدير النظام. إذا تم ضبطه & processTVs = `1`، جميع أجهزة التلفزيون المحددة في & includeTVs. يبطئ العمل. | |
& tvPrefix | بادئة لإعدادات التلفزيون. |
خيارات النموذج
تقوم هذه الخيارات بتعيين الأجزاء التي تحتوي على قوالب لإنشاء القوائم.
اسم | وصف |
---|---|
& tplOuter | تصميم مقطع لكتلة القائمة بأكملها. الافتراضي:INLINE
|
& tpl | قطعة من تصميم عناصر القائمة. إذا لم يتم تحديدها ، فستتم طباعة محتويات حقول الموارد على الشاشة. الافتراضي:INLINE |
& tpl هنا | قطعة من الزخرفة لعنصر القائمة الحالي. |
& tpl ابدأ | جزء من تصميم العنصر الجذر ، بشرط تمكينه & عرض. الافتراضي:INLINE [[+ عنوان القائمة]][[+ غلاف]] |
& tplParentRow | جزء كبير من تزيين أحد الوالدين بأطفال لا يتطابق مع شروط & tplCategoryFolder. على سبيل المثال:INLINE |
& tplParentRowHere | جزء من نمط المستند الحالي إذا كان يحتوي على عناصر فرعية. |
& tplParentRowActive | قطعة من تزيين الوالدين بأطفال في فرع القائمة النشط. |
& tplCategoryFolder | قطعة تصميم فئة خاصة. الفئة هي فئة رئيسية لها أطفال ولديها نموذج فارغ أو rel = "category" في الحقل link_attributes. |
& tplInner | قطعة لتصميم المجموعة الكاملة لعناصر القائمة الفرعية. إذا كانت فارغة - سوف تستخدم & tplOuter. على سبيل المثال:INLINE |
& tplInnerRow | قطعة لتصميم عنصر فرعي للقائمة. على سبيل المثال:INLINE |
& tplInnerHere | قطعة لعنصر القائمة النشطة. |
خيارات فئة CSS
تحدد هذه المعلمات قيمة العناصر النائبة [[+ classnames]] و [[+ class]] لعناصر القائمة المتنوعة. يعرض العنصر النائب [[+ classnames]] اسم الفئة فقط بدون السمة فئة = ""، على عكس العنصر النائب [[+ فئات]].
أمثلة
الإخراج المعتاد للقائمة من جذر الموقع إلى مستوى واحد:
[]
الإخراج مع استبعاد آباء محددين وفحص أذونات المستخدم:
[]
عرض القائمة من والدين في وقت واحد ، مع إظهار نقاط الجذر:
[]
عرض مستويين من الموارد ، مع حساب عدد العناصر المتداخلة:
[] `& tplParentRow =` @ INLINE