إضافة علامات <span> حول كل عنصر أساسي في Drupal

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

  •  05-07-2019
  •  | 
  •  

سؤال

أرغب في أن تبدو الروابط الأساسية في Drupal بالشكل التالي في الكود:

<a class="active" title="Go to the Foo Homepage" href="/"><span>Home</span></a>

بدلا من:

<a class="active" title="Go to the Foo Homepage" href="/">Home</a>

حتى أتمكن بعد ذلك من تصميم span بشكل منفصل عن a.

(أعلم أن هذا يبدو أمرًا غريبًا بعض الشيء، ولكن الأمر يتعلق بالتغلب على افتقار IE إلى دعم نصف القطر الحدودي إلى جانب عدم القدرة على تعيين صورتين للخلفية.)

فهل تعرف أين وكيف أجعل Drupal يقوم بإدراج هذه العلامات في جميع روابطي الأساسية؟

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

المحلول

أعتقد، في مكان ما في الخاص بك page.tpl.php, ، لديك شيء مثل هذا لعرض القائمة الأساسية:

print theme('links', $primary_links, array('class' => 'links primary-links'));

حل واحد (قد لا يكون الأنظف - ولكن يجب أن يعمل) سيكون للتكرار على عناصر $primary_links, ، لكل واحد،:

  • تفعيل وضع HTML
  • التفاف title مع <span> و </span>

إذا كانت قائمتك تحتوي على مستوى واحد فقط، أفترض أن هذا سيفي بما يلي:

foreach ($primary_links as & $link) {
  $link['html'] = true;
  $link['title'] = '<span>' . $link['title'] . '</span>';
}

وبعد ذلك يمكنك الاتصال theme مثلما تفعل بالفعل الآن.

مع ذلك، يجب أن تحصل <span> علامات تحيط بنص الرابط، دون إدراجها في الملف titleالسمة من <a> العلامات.


إذا كان لديك المزيد من المستويات في قائمتك، فسيتعين عليك التكرار للأسفل؛إما بحلقتين متداخلتين، أو بنوع من التكرار إذا كنت لا تعرف عمق قوائمك.
(سأسمح لك بالاستمتاع بذلك؛ما قلته يجب أن يكون كافياً لتبدأ ;-)))


كملاحظة جانبية، ربما يمكن القيام بذلك في مكان ما template.php أيضاً...ربما يكون مكانًا أفضل؛ولكن سأترك لك أن تقرر الحل الذي تفضله ...


استمتع !

نصائح أخرى

وهذا من شأنه أن يساعد http://drupal.org/node/221382

وانتقل لأسفل على هذا التعليق عن الحل النهائي http://drupal.org/node/ 221382 # تعليق-755469 . هناك قضايا مع الإخراج أتش تي أم أل التي يتم حلها هناك.

لسجل، في النهاية أنا مجرد استخدام menu_html حدة و دخلت عناصر القائمة كما <span>Menu Item 1</span> في الحوارات ذات الصلة.

في الحقيقة انتهى بي الأمر مع <span><span>Menu Item Expanded</span></span> في واحدة منها لأنه تم توسيعه وبالفعل كان مجموعة صورة الخلفية. أصبح لديها الآن 3!

وما لا يقل عن بلدي زوايا منحنية على علامات التبويب بلدي تعمل الآن في IE. وفي مرة أخرى أن IE تتسرب حتى 5/6 ساعات فقط لأنه لا يدعم CSS صحيح!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top