إظهار الروابط الثانوية في وجهات النظر فقط

StackOverflow https://stackoverflow.com/questions/1874508

  •  18-09-2019
  •  | 
  •  

سؤال

أقوم ببناء موقع في Drupal وأريد فقط إظهار الروابط الثانوية على الصفحات التي تستخدم وجهات النظر التي قمت بإنشائها. حاولت استخدام متغير $ secondary_links في طرق العرض-view.tpl.php ولكن المتغير فارغ. كيف يمكنني تحقيق ذلك؟

هل كانت مفيدة؟

المحلول

هل قمت بتنشيط الروابط الثانوية من إعدادات الموضوع؟ ممكن حدوثه:

http://example.com/admin/build/themes/settings/name_of_your_theme

أعتقد بمجرد تنشيط الخيار، سيتم ملء المتغير.

تعديل: التفكير في ثان آخر، أود أيضا أن أعلق أنني لست متأكدا مما إذا تم تمرير الروابط الأساسية والثانوية إلى قوالب المشاهدات. أعتقد أن تلك مرت إلى page.tpl.php ملف بدلا من ذلك. إذا كنت على صواب، وسبب ما تريد إضافته هذا المتغير إلى أولئك الذين تم تمريرهم إلى قالب المشاهدات، فسيتعين عليك استخدام وظيفة Preprocess، مثل موضح هنا.

تحرير رقم 2: في الواقع إذا كنت بحاجة فقط إلى القائمة الثانوية المستخدمة في قالب طرق عرض محددة، فإن نهج آخر سيكون ببساطة الاتصال menu_secondary_links() من داخل القالب. هذا ليس الحل الأكثر أناقة على الإطلاق، حيث يضع في عنصر موضوعي شيء يجب أن ينتمي إلى مكان آخر، لكن الأمر متروك لك لإجراء المكالمة ما إذا كانت هذه القائمة في الآراء هي وظيفة أساسية أو عنصر التصميم.

هث!

نصائح أخرى

الروابط الثانوية هي أن Mac يكتب بشكل صحيح متوفرة فقط في Page.tpl.php، ولكن إذا فهمت لك بشكل صحيح، فإن الحل الأفضل لا يحصل على الروابط الثانوية في رأيك.

مع الموضوع الخاص بك، الروابط الثانوية، من المرجح أن تتم طباعتها حيث ينبغي، بغض النظر عما يتم عرضه، سواء كانت وجهات نظرك، العقد، الصفحة الأولى إلخ. يتم عرض وجهات النظر وكل شيء آخر تجسده، ملفوفة في قالب الصفحة، الذي يتحكم في المكان الذي توجد فيه القوائم، المناطق وغيرها من الأشياء الممتعة.

الآن، إذا كنت لا ترغب في تغيير هذا، فإن موقع القوائم، وتصميمها وهذه الأشياء، لا يجب أن تقوم بطباعة القائمة الثانوية في قالب المشاهدات الخاصة بك، يجب ألا تفعل أي شيء به على الإطلاق.

الحل بسيط
يستخدم شيء ما ذكره Mac ولكن بطريقة مختلفة: وظيفة المعالجة المسبقة. تستخدم هذه الوظائف في ملف Template.php الخاص بك، لإضافة بعض المنطق إلى المتغيرات الخاصة بك. يمكنك تغيير المتغيرات أو إزالتها تماما. ما سأفعله، سيكون ببساطة إزالة الروابط الأساسية، عن طريق تحديد قيمة $primary_links إلى سلسلة نص فارغة.
هذا من شأنه إزالة الروابط الأساسية بشكل فعال، لذلك يتم عرض الروابط الثانوية فقط. يمكنك أيضا عرض الروابط الثانوية باعتبارها الأساسية، ولكن قد يتسبب هذا في مربكة لمستخدميك. تحتاج فقط إلى إضافة بعض المنطق للتحكم عندما يجب أن يحدث ذلك وأنت تم تعيينك.

يمكنك استخدام التعليمات البرمجية التالية لإظهار القائمة الثانوية على أي طريقة عرض

function YourTheme_preprocess_views_view(&$vars)
{
    $menu_sec = menu_navigation_links('menu-secondary');
    $vars['custom_menu'] = theme('links__menu-secondary', array('links' => $menu_sec));
}

أو يمكنك حتى استخدام وظيفة Preprocess الأخرى اعتمادا على احتياجاتك.

كذلك يمكنك الاتصال به على ملف .tpl.php باستخدام:

<?php
    $menu_sec = menu_navigation_links('menu-secondary');
    print theme('links__menu-secondary', 
        array(
            'links' => $menu_sec,
            'attributes'=>array(
                'class' => array('nav', 'nav-pills', 'p-f-subfilter'),
            )
        )
    );
?>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top