سؤال

أنا في حاجة إلى بعض الإشارة في الاتجاه الصحيح هنا ...

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

كيف يمكنني الاقتراب من هذا؟

لقد كنت أفكر في بعض الحلول ، ولا أعرف أيهما ممكن وأي شخص أفضل أو الذي يمكنني الجمع عنه.

  1. يمكنني فقط إنشاء طريقة عرض يختار المزيد من العقد أكثر من الحاجة. ثم تحقق من المدة التي تستغرقها العقد في طبقة الرسائل ورمي العقد غير المطلوبة. يجب أن يتم إصلاح أجهزة الاستدعاء أيضًا.

  2. استخدم اللوحات بالاشتراك مع طرق العرض لعرض عرض واحد في عمودين ، إذا كان ذلك ممكنًا. تحتاج إلى طريقة لتحديد كمية العقد التي يتم عرضها في كل صفحة ، استنادًا إلى طول المحتوى.

  3. اكتب مكونًا إضافيًا/معالجًا للحصول على طرق عرض حتى أتمكن من تحديد كمية من العقد التي تحتوي على طول محتوى أقصى محدد مسبقًا.

  4. اكتب على غرار عرض جديد للمسافات التي تعرض المحتوى في عمودين مع ارتفاعات ثابتة.

  5. اكتب وحدة مخصصة ، واترك المشاهدات والألواح خارجها وافعل كل شيء بنفسي باستخدام DB_Queries.

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

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

المحلول

سيكون أصعب شيء هو معرفة مقدار المحتوى الذي تحتاجه لملء المساحة. لا توجد طريقة جيدة حقًا للقيام بذلك أيضًا ، فهي تعتمد على كل من الترميز والأنماط.

أفضل حل يمكن أن أفكر فيه هو تحميل العقد مع JavaScript ، أو ربما فقط جعلها متوفرة كمتغيرات JavaScript. بهذه الطريقة يمكنك إدخال العقد على صفحتك واحدة تلو الأخرى. يمكنك بعد ذلك في JS رؤية ارتفاعات جميع العقد في المجموع ، وبمجرد أن يكون هذا الارتفاع أكبر من X ، تحتاج فقط إلى إزالة آخر عقدة تم إدراجها.

إنه ليس حلاً مثاليًا ، لكنني أعتقد أنه يجب عليك النظر في القيام بذلك مع JavaScript. المشكلة الوحيدة هي أنها لن تتحلل بشكل جيد للغاية.

نصائح أخرى

تساعدك Drupal على البناء بسرعة ، ويبدو أنها واعدة ولكنها تفشل في ملء احتياجات العميل ، ومبرمج المصمم أيضًا. تحتاج إلى كتابة صفحة وحدة واحدة ، وبعض الوظائف.

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

ليس لدي إجابة مباشرة ، ولكن لدي بعض الأشياء التي يمكنك التفكير فيها.

يبدو لي أن ما تبحث عنه هو مزيج من تخطيط CSS3 متعدد الألوان (انظر http://www.quirksmode.org/css/multicolumn.html على سبيل المثال) والحد من المحتوى المعروض إلى ارتفاع ثابت.

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

إذا كنت بحاجة إلى الحصول على مزيد من الخصوصية ، فقد تحتاج إلى البحث في نظام عرض العرض للحد من إجمالي عدد العقد بناءً على عدد الأحرف التي تم تقديمها.

ولكن نظرًا لأن القيد المطلوب أكثر بصرية من الموجهة نحو البيانات ، أعتقد أن النهج الأكثر عملية هو استخدام JavaScript للكشف عن ارتفاع النص وحالة الفائض.

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

فكر فراق واحد: ربما قم بتحميل جميع المحتوى الذي تريد التقاطه مباشرة ، مباشرة إلى المتصفح. ربما تبدأ في الخفية. ثم استخدم JavaScript لعرضه ، وتنسيقه في أعمدة ، واستخدم JavaScript للتعامل مع الترحيل أيضًا.

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