আমি কীভাবে একটি অ-সম্পাদনযোগ্য ম্যাজেন্টো সিএমএস পৃষ্ঠা তৈরি করব?


16

ম্যাজেন্টোর একটি নতুন ইনস্টলেশনতে, এটি বেশ কয়েকটি ডিফল্ট সিএমএস পৃষ্ঠাগুলি নিয়ে আসে যা আপনি সম্পাদনা করতে পারেন CMS > Pages। তবে এটি বেশ কয়েকটি "অ-সম্পাদনযোগ্য" সিএমএস পৃষ্ঠাগুলির সাথেও আসে: Orders and Returnsএবং Contact Us... এটি উভয়ই ফর্মগুলির সাথে পৃষ্ঠাগুলি, এবং ম্যাজেন্টো সিইতে একটি ঘাটতি তুলে ধরে: ফর্ম তৈরি এবং সম্পাদনা করে।

আমি আমার নিজস্ব ফর্মের সাথে আমাদের সাথে যোগাযোগ করুন ডিফল্টটিকে ওভাররাইড করতে পেরেছি, তবে আমি অন্য ফর্মটি যুক্ত করতে চাই এবং ভবিষ্যতে আরও ফর্ম যুক্ত করার প্রয়োজন হতে পারে। আমি বিদ্যমান ফাংশন এবং পৃষ্ঠাগুলিকে ওভাররাইড করার জন্য ম্যাজেন্টো মডিউল তৈরির সাথে কিছুটা পরিচিত, যেমনটি আমি এখনও করেছি।

আমি এমন একটি মডিউলে কাজ করা শুরু করেছি যা ম্যাগেন্টোতে ফর্ম পৃষ্ঠা তৈরি করার দক্ষতা সক্ষম করবে, তবে ডিফল্ট ফর্মগুলির মতো সেগুলি সিএমএস পরিচালনায় অদৃশ্য হতে হবে। আমি প্রোগ্রামিয়ালি একটি সিএমএস পৃষ্ঠা তৈরির উত্তর পেয়েছি, তবে এটি ম্যাজেন্টোর সাথে যুক্ত করে CMS > Pages

আমি কীভাবে একটি সিএমএস পৃষ্ঠা তৈরি করব যা কেবলমাত্র ম্যাগানো মডিউল দ্বারা সম্পাদনযোগ্য?


জানা ভাল! আমি এখানে ইতিমধ্যে এখানে পোস্ট করার পরে এটি ক্রস-পোস্টে কোশার বা গ্রহণযোগ্য অনুশীলন কী?
andyjv

আমি "পতাকা" লিঙ্কটিতে ক্লিক করব এবং এটি আপনার জন্য সরিয়ে নেওয়ার জন্য একটি মোডকে বলব। সাধারণত ক্রস-পোস্টিংয়ের কথা বলা হয় না।
জন কনডে

যদি আপনি খুঁজছেন একটি CMS পৃষ্ঠার মধ্যে একটি কাস্টম যোগাযোগ ফর্ম জন্য, দেখুন magento.stackexchange.com/questions/79602/... বা আরো বিস্তারিত stackoverflow.com/q/1066127/664108
দীর্ঘসূত্রী Schmengler

উত্তর:


21

আসলে 'আমাদের সাথে যোগাযোগ করুন' এবং 'অর্ডার এবং রিটার্ন' কোনও সিএমএস পৃষ্ঠা নয়। এগুলি আসলে একটি পৃথক মডিউল থেকে পৃষ্ঠাগুলি। এগুলি সিএমএস পৃষ্ঠাগুলির চেয়ে 'লগইন' বা 'নিবন্ধ' পৃষ্ঠার মতো। এর মতো পৃষ্ঠা তৈরি করতে আপনি একটি নিয়ামক, একটি ব্লক এবং একটি টেম্পলেট সহ একটি সাধারণ মডিউল তৈরি করতে পারেন। আসুন এক্সটেনশন ইজাইলাইফ_ কাস্টমফর্মটিকে কল করুন। এর জন্য আপনার নিম্নলিখিত ফাইলগুলির প্রয়োজন হবে।
app/etc/modules/Easylife_Customform.xml- মডিউল ঘোষণা ফাইল

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Customform>
            <active>true</active>
            <codePool>local</codePool>
        </Easylife_Customform>
    </modules>
</config>

app/code/local/Easylife/Customform/etc/config.xml - কনফিগার ফাইল

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Customform>
            <version>0.0.1</version>
        </Easylife_Customform>
    </modules>
    <global>
        <blocks>
            <customform><!-- block alias -->
                <class>Easylife_Customform_Block</class>
            </customform>
        </blocks>
        <helpers>
            <customform><!-- helper alias -->
                <class>Easylife_Customform_Helper</class>
            </customform>
        </helpers>
    </global>
    <frontend>
        <routers>
            <customform>
                <use>standard</use>
                <args>
                    <module>Easylife_Customform</module>
                    <frontName>customform</frontName><!-- url key for module -->
                </args>
            </customform>
        </routers>
        <layout>
            <updates>
                <easylife_customform>
                    <file>easylife_customform.xml</file><!-- frontend layout file -->
                </easylife_customform>
            </updates>
        </layout>
        <translate>
            <modules>
                <Easylife_Customform>
                    <files>
                        <default>Easylife_Customform.csv</default><!-- translation file (not mandatory) -->
                    </files>
                </Easylife_Customform>
            </modules>
        </translate>
    </frontend>
</config>

app/design/frontend/base/default/layout/easylife_customform.xml - সম্মুখভাগ বিন্যাস ফাইল

<?xml version="1.0"?>
<layout>
    <customform_index_index translate="label" module="customform">
        <label>Custom form</label>
        <reference name="root">
            <action method="setTemplate"><template>page/2columns-right.phtml</template></action><!-- can be different -->
        </reference>        
        <reference name="content">
            <block type="core/template" name="customform" template="easylife_customform/form.phtml" /><!-- content of page -->
        </reference>
    </customform_index_index>
</layout>

app/code/local/Easylife/Customform/Helper/Data.php - ডিফল্ট মডিউল সহায়ক

<?php
class Easylife_Customform_Helper_Data extends Mage_Core_Helper_Abstract{
}

app/design/frontend/base/default/template/easylife_customform/form.phtml - ফর্মটির জন্য আসল এইচটিএমএল - আপনার প্রয়োজন মতো এই চেহারাটি তৈরি করুন

<form action="<?php echo $this->getUrl('customform/index/send')?>">
    <input type="text" name="name" />
    <input type="submit" />
</form>

app/code/local/Easylife/Customform/controllers/IndexController.php - মডিউল নিয়ামক

<?php 
class Easylife_Customform_IndexController extends Mage_Core_Controller_Front_Action{
    public function indexAction(){ //this will display the form
        $this->loadLayout();
        $this->_initLayoutMessages('core/session'); //this will allow flash messages
        $this->renderLayout();
    }
    public function sendAction(){ //handles the form submit
        $post = $this->getRequest()->getPost();
        //do something with the posted data
        Mage::getSingleton('core/session')->addSuccess($this->__('Your message was sent'));//add success message.
        $this->_redirect('*/*');//will redirect to form page
    }
}

এটি হওয়া উচিত। ক্যাশে সাফ করুন এবং আপনি ফর্মটি অ্যাক্সেস করতে সক্ষম হবেন mysite.com/customform
আশা করি আমি কোডটি সঠিকভাবে লিখেছি এবং কিছু মিস করিনি


2
আপনি সত্যিই এই উত্তর অতিরিক্ত মাইল গিয়েছিলাম। +1
ফিলিউঙ্কল

@ ফিলউইঙ্কল: এটাই ভাল নাকি খারাপ? :)
মারিয়াস

সত্যিই দুর্দান্ত গাইড মারিয়াস, আপনাকে ধন্যবাদ! আমি একটি পৃষ্ঠার শিরোনাম সেট করার চেষ্টা করছি, আমার লেআউট xML এর <label> উপেক্ষা করা হচ্ছে এবং এটি <reference name="head"> <action method="setTitle" translate="title"><title>Subscribe to our Newsletter</title></action> </reference> কাজ করবে না।
লফেল

@loeffel। হতে পারে আপনার কাছে এমন আরও কিছু আছে যা শিরোনামটিকে ওভাররাইড করে। তত্ত্বের ক্ষেত্রে কোডটি কাজ করা উচিত।
মারিয়াস

@ মারিয়াস এটি খুব সহজ, তবে আমরা কীভাবে ত্রুটি বার্তা যুক্ত করতে পারি? আমি যোগ করার চেষ্টা করেছি Mage::getSingleton('core/session')->addError("Error");কিন্তু ভাগ্য নেই। এটি কেবল সাফল্যের বার্তা দেখাচ্ছে। কোন সাহায্য?
আমির সিদ্দিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.