সাব ফর্ম থেকে কীভাবে মূল্য পাবেন


9

আমি আমার টেমপ্লেটে একটি সাধারণ স্লাইডশো এম্বেড করতে চাই এবং আমি চিত্র পরিবর্তন করতে আরও সহজ করার জন্য সাবফর্মটি ব্যবহার করতে চাই।

এই কোডটি আমি শিশু xML ফাইল কল করতে ব্যবহার করি to

<field name="slideshow_items" type="subform" formsource="templates/jomlamaster/admin/subform/slideshow.xml" min="1" max="4" multiple="true" layout="joomla.form.field.subform.repeatable-table" groupByFieldset="true" label="Subform Field" description="Subform Field Description" />

এবং এটি স্লাইডশো.এক্সএমএল এর সামগ্রী:

<?xml version="1.0" encoding="UTF-8"?>
<form>
<fieldset name="fieldset" label="Slideshow">
<field name="slideshow_img" type="media" directory="" label="Slideshow item" description="Choose an image slideshow"/>
<field name="slideshow_title" type="text" class="inputbox" label="Slideshow text" size="40" />
</fieldset>
</form>

মুদ্রণ_আর (id স্লাইডশো_াইটেমস) এটাই আমি পাই;

stdClass Object
(
    [slideshow_items0] =&gt; stdClass Object
        (
            [slideshow_img] =&gt; images/slideshow/img0.jpg
            [slideshow_text] =&gt; Title 1
        )

    [slideshow_items1] =&gt; stdClass Object
        (
            [slideshow_img] =&gt; images/slideshow/img1.jpg
            [slideshow_text] =&gt; Title 2
        )

    [slideshow_items2] =&gt; stdClass Object
        (
            [slideshow_img] =&gt; images/slideshow/img2.jpg
            [slideshow_text] =&gt; Title 3
        )

    [slideshow_items3] =&gt; stdClass Object
        (
            [slideshow_img] =&gt; images/slideshow/img3.jpg
            [slideshow_text] =&gt; Title 4
        )

)

আমি কীভাবে উপরের মানগুলি পার্স করতে পারি যাতে আমি সেগুলি স্লাইডশোতে ব্যবহার করতে পারি?

ধন্যবাদ!

উত্তর:


7

এটা আমার সমাধান। এর থেকে আরও ভাল সমাধান যদি থাকে তবে আমাকে জানান

<?php foreach ($slideshow_items as $item) : ?>
  <div class="slideshow">
    <img src="<?php echo $item->slideshow_img; ?>" />
    <p class="slideshow_text">
      <?php echo $item->slideshow_text; ?>
    </p>
  </div>
<?php endforeach; ?>

1
এটি সঠিক সমাধান;) কেবলমাত্র, আমি সম্পত্তিটি আছে কিনা তা যাচাই করবো, এরকম কিছু:echo empty($item->slideshow_img) ? '' : $item->slideshow_img;
ফেডিক

3

সাব ফর্ম ক্ষেত্রগুলির ডেটা JSON ফর্ম্যাট হিসাবে সংরক্ষণ করে তাই ডেটা পেতে প্রথমে "json_decode ()" হওয়া দরকার তারপর ডেটা পেতে ফোরচ লুক চালান।

<?php $slideshow_items= json_decode($this->item->slideshow_items); ?>

<?php foreach ($slideshow_items as $item) : ?>
<div class="slideshow">
<img src="<?php echo $item->slideshow_img; ?>" />
<p class="slideshow_text">
  <?php echo $item->slideshow_text; ?>
</p>
</div>
<?php endforeach; ?>

3

আপনার যখন কেবল একটি ক্ষেত্রের নামের মূল্য পেতে হবে:

use Joomla\Utilities\ArrayHelper;

$items = ArrayHelper::getColumn((array) $params->get('subformName'), 'fieldName');

আপনি কিভাবে যোগ বা কল করবেন Joomla\Utilities\ArrayHelper;?
ইওন

1

আপনি যদি বুটস্ট্র্যাপ কারাউসেল ব্যবহার করেন। এটা আমার জন্য কাজ করে।

<div id="gallery-1" class="carousel slide" data-ride="carousel">
    <div class="carousel-inner" role="listbox">
        <?php foreach ($slideshow_items as $item => $value) :?>
            <div class="item<?php echo ($item=='slideshow_items0') ? ' active': ''; ?>">
                <img src="<?php echo $value->slideshow_img;?>">
            </div>
            <div class="carousel-caption>">
                <p><?php echo $value->slideshow_text;?></p>
            </div>
        <?php endforeach; ?>
    </div>
</div>

যদি কেউ উন্নত বা সর্বোত্তম অনুশীলন কোড সরবরাহ করতে চায় তবে এটি স্বাগত।

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