এজেএক্সের সাথে বিভাগ তালিকায় পণ্য ভিউ লোড হচ্ছে


14

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

কারও কি এর সাথে অভিজ্ঞতা আছে, সম্ভবত এ জাতীয় কিছু চেষ্টা করা হয়েছে? আমি নিয়ামক ব্যবহার করে সক্রিয় পণ্য সেট

$productId  = (int) $this->getRequest()->getParam('product_id');
Mage::helper('catalog/product')->initProduct($productId, $this);

লেআউটটি রেন্ডার করার আগে।

আমি মনে করি যে ক্যাটালগ.এক্সএমএল এর অন্য অংশে বিকল্পগুলিতে ভিউটিতে যুক্ত করা হয়েছে এটির সাথে এর কিছু করার আছে

[...]
<PRODUCT_TYPE_configurable translate="label" module="catalog">
   <label>Catalog Product View (Configurable)</label>
   <reference name="product.info">
      <block type="catalog/product_view_type_configurable" name="product.info.configurable" as="product_type_data" template="catalog/product/view/type/default.phtml">
         <block type="core/text_list" name="product.info.configurable.extra" as="product_type_data_extra" translate="label">
            <label>Product Extra Info</label>
         </block>
      </block>
   </reference>
   <reference name="product.info.options.wrapper">
      <block type="catalog/product_view_type_configurable" name="product.info.options.configurable" as="options_configurable" before="-" template="catalog/product/view/type/options/configurable.phtml"/>
   </reference>
</PRODUCT_TYPE_configurable>
[...]

তবে আমি নিশ্চিত নই যে সুনির্দিষ্ট সমস্যাটি কী।

আমি আশা করি যে কেউ আমাকে সঠিক দিকে নির্দেশ করতে পারে।

শুভেচ্ছা, স্যান্ডার মঙ্গেল


1
স্যান্ডার - আমি অজ্যাক্সাইফাই এক্সটেনশানটিতে একটি দ্রুত নজর রেখেছি এবং আপনি এটি কীভাবে ব্যবহার করছেন তা পরিষ্কার নয়। আপনি আজাক্সিফাই কল করতে সঠিক জাভাস্ক্রিপ্ট (বা পিএইচপি + জাভাস্ক্রিপ্ট) কী ব্যবহার করছেন এবং আপনি যে নিয়ামকটি (যদি থাকে) বা অনুরোধটি পরিচালনা করতে অ্যাজএক্সাইফাই লেআউট এক্সএমএলে যুক্ত কোডটি কী? মূলত, আমাদের শেষের দিকে সমস্যাটি পুনরায় তৈরি করতে আমাদের পর্যাপ্ত তথ্য দিন এবং আমরা সম্ভবত আপনাকে সঠিক দিকে যেতে পারি।
অ্যালান স্টর্ম

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

আপনি আজেক্স ক্যাটালগ লোডিং এফএম ম্যাজেন্টো এক্সটেনশন ব্যবহার করতে পারেন, এটি স্ক্রলে পণ্য লোড করবে। আরও বেশি পণ্য লোড হবে তার উপর ক্লিক করে আপনি একটি বোতাম যুক্ত করতে পারেন। fmeextensions.com/magento-ajax-catolog-pro.html

আরে @ স্যান্ডারমাঙ্গেল, আপনি কি এক্সটেনশানটি খুললেন? Thx
joseantgv

উত্তর:


7

বিভাগ তালিকা পৃষ্ঠায় একটি দ্রুত ভিউ পপআপ প্রবর্তনের চেষ্টা করার আগে আমরা অতীতেও একই রকম সমস্যা পেয়েছি। এখানে আমরা কয়েকটি সমস্যার মুখোমুখি হয়েছি: -

  • /js/varien/product.js& /js/varien/configurable.jsডিফল্টরূপে বিভাগ তালিকাটিতে পৃষ্ঠাটির যা কনফিগারযোগ্য dropdowns জন্য উত্পন্ন করা প্রয়োজন হয় উপর অন্তর্ভুক্ত হয় না। নীচের ইনলাইন জেএসের এটির প্রয়োজন।

    <script type="text/javascript">
        var spConfig = new Product.Config(<?php echo $this->getJsonConfig() ?>);
    </script>
  • আমাদের প্রতি আর একটি সমস্যা ছিল যখন প্রতি পৃষ্ঠায় এইগুলির একটিরও বেশিকে অন্তর্ভুক্ত করার চেষ্টা করার সময়, আমরা নকল আইডির সাথে সমস্যাগুলি পাচ্ছিলাম, কোনও ক্ষেত্রে এটি নিজের ক্ষেত্রে প্রযোজ্য না হতে পারে তবে বন্ধ করার সময় আপনার যদি একাধিক থাকে তবে সেগুলি ধ্বংস করে দেওয়ার বিষয়টি নিশ্চিত করুন।

আমরা এটি করার উপায়টি একটি ফাঁকা নিয়ন্ত্রণকারী ফাইল তৈরি করে যা আমাদের অনন্য লেআউট হ্যান্ডেল যেমন '' ব্যবহার করতে দেয় use যা আপনি নীচের এক্সএমএল ব্যবহার করতে পারেন।

 <custom_catalog_product_ajax_view>
        <update handle="catalog_product_view" />
        <remove name="html_calendar" />
        <reference name="root">
                <action method="setTemplate"><template>custom/catalog/ajax/product/response.phtml</template></action>
        </reference>
        <reference name="product.info">
                <action method="setTemplate"><template>custom/catalog/ajax/product/view.phtml</template></action>
                <action method="append">
                    <block>breadcrumbs</block>
                </action>
        </reference>
        <reference name="product.info.media">
                <action method="setTemplate"><template>custom/catalog/ajax/product/view/media.phtml</template></action>
        </reference>
        <reference name="product.info.options.configurable">
                <action method="setTemplate"><template>custom/catalog/ajax/product/view/type/options/configurable.phtml</template></action>
        </reference>
</custom_catalog_product_ajax_view>

এর অর্থ আমরা প্রাসঙ্গিক ব্লকগুলি অন্তর্ভুক্ত করতে পারি এবং নিয়মিত পণ্য পৃষ্ঠার কিছু দিক কাস্টমাইজ করতে পারি।

প্রয়োজনীয় জেএস ফাইলগুলি অন্তর্ভুক্ত করার জন্য আমরা হ্যান্ডেলটিতে এটি যুক্ত করেছি।

<catalog_category_default>
    <update handle="required_for_catalog_ajax_product_view" />
</catalog_category_default>

<required_for_catalog_ajax_product_view>
        <reference name="head">
                <action method="addJs"><script>varien/product.js</script></action>
                <action method="addJs"><script>varien/configurable.js</script></action>
        </reference>
</required_for_catalog_ajax_product_view> 

আমাদের রেসপন্স.এফটিএমএল ফাইলটিও এর মতো দেখায়

<?php echo Zend_Json::encode(array(
'success' => true,
'html' => $this->getChildHtml('content'),
'optionsPrice' => $this->getOptionsPrice(),
'spConfig' => $this->getSpConfig()
));

আশা করি এটি আপনার ভুল কোথায় হচ্ছে সে সম্পর্কে কিছুটা আলোকপাত করতে সহায়তা করবে


আরে লুক, আমি মনে করি এটিই সমাধান হতে পারে। আমি পুরো এক্সটেনশানটি আবার লিখছি। যদি এটি খারাপ কাজ করে তবে এই পোস্টটিকে অজেন্সার হিসাবে চিহ্নিত করুন (এবং অবশ্যই এক্সটেনশানটি উন্মুক্ত করে)। ধন্যবাদ!
স্যান্ডার মঙ্গেল

1

সমস্যাটি হ'ল না যে বিকল্পগুলি জাভাস্ক্রিপ্টের মাধ্যমে যুক্ত করা হয়েছে এবং এইচটিএমএল হিসাবে ক্যাটালগ / পণ্য / দর্শন / প্রকার / বিকল্পগুলি / কনফিগারযোগ্য এইচটিএমএল হিসাবে নয়:

<script type="text/javascript">
    var spConfig = new Product.Config(<?php echo $this->getJsonConfig() ?>);
</script>

আপনার অ্যাজাক্স স্ক্রিপ্টটি কেবল এইচটিএমএলকে প্রতিস্থাপন করবে বলে মনে হচ্ছে তবে এতে জেএস কার্যকর করা হয় না। আপনাকে সেই অংশটি ম্যানুয়ালি কার্যকর করতে হবে, তবে এটি করার বিভিন্ন উপায় রয়েছে:

  • স্ক্রিপ্ট ট্যাগগুলির ভিতরে সমস্ত কিছু প্রাক-ম্যাচ করুন এবং এভাল মাধ্যমে কল করুন
  • আপনার আউটপুটটি এইচটিএমএল এবং জাভাস্ক্রিপ্ট অংশে বিভক্ত করুন, যাতে আপনি পৃথকভাবে উভয়ই পেতে পারেন

ওহে টোবিয়াস, অ্যাঞ্জারটির জন্য ধন্যবাদ। জাভাস্ক্রিপ্ট কার্যকর করা হচ্ছে না সে সম্পর্কে আপনি ঠিক বলেছেন তবে অপশনগুলির জন্য প্রস্তুত করার জন্য কিছু এইচটিএমএল সন্নিবেশ করা উচিত। ডিভ # পণ্য-বিকল্পগুলি-মোড়ক সম্পূর্ণ ফাঁকা।
স্যান্ডার ছিন্নভিন্ন করা

0

আমি এখানে সরবরাহিত গৃহীত উত্তর দিয়ে কেবল এতদূর পেতে সক্ষম হয়েছি। একটি টুইটার বুটস্ট্র্যাপ মডেলের সাথে কাজ করার জন্য আমার কনফিগারযোগ্য পণ্যটি লোড করতে প্রোটোটাইপ ব্যবহার করতে হবে এবং ফিরে পৃষ্ঠায় স্ক্রিপ্টগুলি চালনার জন্য সেট করতে হয়েছিল:

new Ajax.Updater(target, product, {
    parameters: { evalJS: true},
    ...

তদুপরি, আমি যখন আমার মডেলটি বন্ধ করেছিলাম তখন সামগ্রীগুলি সম্পূর্ণ পরিষ্কার করে ফেলতে হবে:

$(document.body).on('hidden.bs.modal', function () {

    delete spConfig;
    $('#myModal').html('<div class="modal-dialog">...</div>');
    ...

আমি এখানে সম্পূর্ণ সমাধান সরবরাহ করি নি, এখন যা চলছে তা আমি খুঁজে পেয়েছি যে আমার কন্ট্রোলারটিকে রিফ্যাক্টর করতে হবে এবং আমার পণ্যগুলির জন্য টেমপ্লেট সম্পূর্ণ করতে হবে যাতে এটি টুইটার বুটস্ট্র্যাপ মডেলের সাথে কাজ করার জন্য একটি ঝরঝরে শিরোনাম ইত্যাদি দেয় returns তবে নীচের পরামর্শের সাথে আপনার পণ্যটি লোড করা এবং এর সাথে আসা জাভাস্ক্রিপ্টটি চালানো সহজ হওয়া উচিত যাতে এটির সামগ্রী সঠিকভাবে কাজ করতে পারে। আপনার বিভাগের পৃষ্ঠায় product.js ইত্যাদি যুক্ত করার দরকার নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.