سؤال

أنا أعمل على تقديم سلسلة مخصصة من الرسائل عبر كتل ثابتة على أساس ظروف معينة يمتلك العميل.

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

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

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

أنا أسأل في الغالب عن مكان تنفيذ التعليمات البرمجية لصفحة غير كمس في الوقت الراهن.

شكرا على أي مساعدة أو تعليقات.

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

المحلول

من سؤالك ، ليس من الواضح أنه حيث تحتاج إلى عرض هذه الكتل الثابتة.ولكن على أساس فهمي ، وسوف توفر لك بعض التلميحات.

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

ها نحن ذا.أفترض أنك بحاجة إلى إظهار هذه الكتل في الجزء الأيمن من كل صفحة.لهذا تحتاج إلى إنشاء local.xml ملف تخطيط.

ملف : app/design/frontend/<your_package>/<your_theme>/layout/local.xml

<layout>
    <default> <!-- this layout handle enable its child block appear almost every page -->
        <reference name="right"> <!-- this let static block appear in the right section -->
            <block type="core/template" name="conditional.static.blocks.container" template="staticblocks/contaier.phtml">
                <block type="cms/block" name="static.block.1" as="static_block_1">
                    <action method="setBlockId"><block_id>code-for-sb-1</block_id></action>
                </block>
                <block type="cms/block" name="static.block.2" as="static_block_2">
                    <action method="setBlockId"><block_id>code-for-sb-2</block_id></action>
                </block>
                <!-- continue this step for every block -->
            </block>
        </reference>
    </default>
</layout>

ملف : app/design/frontend/<package>/<theme>/template/staticblocks/contaier.phtml

<?php if({condition_1_satisfies}) : ?>
    <div><?php echo $this->getChildHtml('static_block_1'); ?></div>
<?php endif;  ?>

<?php if({condition_2_satisfies}) : ?>
    <div><?php echo $this->getChildHtml('static_block_2'); ?></div>
<?php endif;  ?>

<!-- continue this logic here for every static block according to your need  -->

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

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

نأمل أن يساعد

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