আমি কীভাবে ক্লাসটি ওভাররাইড করতে পারি বা এক্সএমএল ফর্মটিতে সুনির্দিষ্টভাবে পাঠযোগ্য পাঠ্য গুণাবলী নির্দিষ্ট করতে পারি?


9

আমাদের একটি নির্দিষ্ট ক্ষেত্র রয়েছে যা কেবলমাত্র প্রথমবারের জন্য রেকর্ড যুক্ত করার সময় কেবল ইনপুটটিকে অনুমতি দিতে পারে, তাই আমি ভাবছি যে কোনও শ্রেণি যুক্ত করা সম্ভব হয়, বা readonlyফর্মটি লোড হওয়ার পরে কোনও মুহূর্তে নির্দিষ্ট করা সম্ভব তবে (অবশ্যই) এটি ব্যবহারকারীর কাছে রেন্ডার হওয়ার আগে।

ফর্মটি লোড করার সময় models\forms\myform.xml, শ্রেণি (এস) এবং পাঠ্যপুস্তির মতো বৈশিষ্ট্য প্রত্যাশার মতো লোড করা হচ্ছে। ক্ষেত্রটি বর্তমানে যেভাবে উপস্থাপিত হচ্ছে তা এখানে which জুমলা \ ফর্ম \ form.php গ্রন্থাগার ব্যবহার করে:

echo $this->form->getInput('myReadOnlyCode')

উত্তর:


3

হ্যাঁ, আপনি এটা করতে পারেন.

আমাদের একটি উপাদান রয়েছে যা "পরিকল্পনা" এর ধারণা রয়েছে, এটি বিভিন্ন অ্যাক্সেস স্তরের জন্য একই দৃষ্টিভঙ্গি ব্যবহার করে তবে ক্ষেত্রগুলিকে অ্যাক্সেসযোগ্য করে তোলে বা ব্যবহারকারী গোষ্ঠীর উপর নির্ভর করে।

সুতরাং যেগুলি ব্যবহার করে যে কোনও পরিকল্পনা "রান" করতে পারে তবে এটি সম্পাদনা করতে পারে না, আমরা ক্ষেত্রগুলির একটি গুচ্ছ "বন্ধ" করব। ক্ষেত্রের ধরণের উপর নির্ভর করে এর অর্থ কয়েকটি ক্ষেত্রের বৈশিষ্ট্য নির্ধারণ করা যেতে পারে, যেমন

$this->form->setFieldAttribute('name', 'class', 'readonly');
$this->form->setFieldAttribute('name', 'readonly', 'true');
$this->form->setFieldAttribute('description', 'class', 'readonly');
$this->form->setFieldAttribute('description', 'disabled', 'true');
$this->form->setFieldAttribute('description', 'type', 'text');
$this->form->setFieldAttribute('published', 'class', 'readonly');
$this->form->setFieldAttribute('published', 'readonly', 'true');
$this->form->setFieldAttribute('publish_up', 'class', 'readonly');
$this->form->setFieldAttribute('publish_up', 'readonly', 'true');
$this->form->setFieldAttribute('publish_up', 'format', '%Y-%m-%d %H:%M:%S');
$this->form->setFieldAttribute('publish_up', 'filter', 'user_utc');
$this->form->setFieldAttribute('publish_down', 'class', 'readonly');
$this->form->setFieldAttribute('publish_down', 'readonly', 'true');
$this->form->setFieldAttribute('publish_down', 'format', '%Y-%m-%d %H:%M:%S');
$this->form->setFieldAttribute('publish_down', 'filter', 'user_utc');

সুতরাং, আপনার myReadOnlyCodeক্ষেত্রটি কিসের উপর নির্ভর করে আপনি উপরে বর্ণিত হিসাবে এক বা একাধিক গুণাবলী নির্ধারণ করে এটি করতে পারেন, উদাহরণস্বরূপ যদি এটি কেবলমাত্র একটি স্ট্যান্ডার্ড পাঠ্য ইনপুট:

$this->form->setFieldAttribute('myReadOnlyCode', 'class', 'readonly');
$this->form->setFieldAttribute('myReadOnlyCode', 'readonly', 'true');

2

জুমলা মূল নিবন্ধ সম্পাদনা তুলনা করুন। অ্যাডমিনিস্ট্রেটর - আর্টিকেল.এফপি - পদ্ধতি getForm।

"ব্যাকডোর" আপডেট প্রতিরোধ করতে ফিল্টার সম্পর্কে সচেতন হন।

    $user = JFactory::getUser();

    // Check for existing article.
    // Modify the form based on Edit State access controls.
    if ($id != 0 && (!$user->authorise('core.edit.state', 'com_content.article.' . (int) $id))
        || ($id == 0 && !$user->authorise('core.edit.state', 'com_content'))
    )
    {
        // Disable fields for display.
        $form->setFieldAttribute('featured', 'disabled', 'true');
        $form->setFieldAttribute('ordering', 'disabled', 'true');
        $form->setFieldAttribute('publish_up', 'disabled', 'true');
        $form->setFieldAttribute('publish_down', 'disabled', 'true');
        $form->setFieldAttribute('state', 'disabled', 'true');

        // Disable fields while saving.
        // The controller has already verified this is an article you can edit.
         $form->setFieldAttribute('featured', 'filter', 'unset');
        $form->setFieldAttribute('ordering', 'filter', 'unset');
         $form->setFieldAttribute('publish_up', 'filter', 'unset');
         $form->setFieldAttribute('publish_down', 'filter', 'unset');
         $form->setFieldAttribute('state', 'filter', 'unset');
    }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.