it-swarm.asia

يتم تجزئة اسم آلة طرق العرض (؟)

A Drupal newbie ، لذا صححني إذا كان فهمي خاطئًا ، ولكن عادةً ، عندما يتم إنشاء كتلة بواسطة طرق العرض ، يتم إلحاق اسم الجهاز للكتلة باسم آلة طرق العرض.

أي "article_listing_view-block_1"

عند استخدام وظيفة block_load ($ module، $ block_id) ، فإن الطريقة التي أقوم بها هي أن أسميها هكذا: $ block = block_load ("views"، "article_listing_view-block_1")؛

ومع ذلك ، لبعض جدا سبب فردي ، كتلة واحدة معينة مع اسم الجهاز:

"flag_comments_as_offensive-block_1"

له معرّف آلة مجزأة:

"92a591f5a81d13a3dd5492f073f9e135"

أقول "مجزأ" لأن معرف الجهاز يتغير بناءً على اسم الجهاز للكتلة مباشرةً. إذا قمت بتغييره من block_1 إلى block ، فسيتم تغييره ، وعندما أعود مرة أخرى من block إلى block_1 ، فسوف يعيد معرّف الجهاز إلى ما سبق. لذلك هناك ارتباط مباشر بين اسم الجهاز ومعرف "التجزئة" الذي يولده.

بدلاً من استدعاء block_load ("طرق العرض" ، "اسم الجهاز") ، يجب أن أستخدم معرّف الجهاز المجزأ ، وهو ما لا يمثل مشكلة ، ولكن الأمر استغرق مني طويلاً لمعرفة الوقت. كانت الطريقة التي توصلت بها إلى الانتقال إلى الهيكل -> الحظر والتمرير فوق رابط "تكوين" وإلقاء نظرة على عنوان URL. لقد لاحظت أن الكل كتلتي الأخرى تحتوي على عنوان URL يتضمن معرف الجهاز الخاص بها ، ولكن بالنسبة إلى هذا الحظر الخاص ، كان معرف الجهاز المجزأ. بمجرد إدخال معرف الجهاز في block_load ، فيولا ، عملت مثل السحر!

لذا أعتقد أن السؤال يتلخص في: ما الذي يحدث ، ولماذا Drupal تجزئة اسم الجهاز الخاص بي؟ هل هذا خطأ ، أم خطأ من جانبي؟

19
Peter

وذلك لأن الوحدة النمطية للكتلة تتوقع "دلتا" (معرف الكتلة) يصل طولها إلى 32 حرفًا. ولكن يمكن أن يصل عرض كتلة العرض إلى 65 حرفًا: حتى 32 حرفًا من اسم العرض و 32 حرفًا من اسم العرض وواصلة "-" بينهما.

عندما يتجاوز الدلتا الحد الأقصى للحروف الذي يبلغ 32 حرفًا ، ستتم تجزئه المشاهدات من خلال md5 - وهي ليست سلسلة عشوائية. يمكنك استخدامه بأمان لمحددات CSS و jQuery.

23
Capi Etheriel

يتم تجزئة أسماء أجهزة العرض فقط إذا كان طول الاسم أكثر من 32 حرفًا.

4
tim.plunkett