কোর উপাদানগুলিতে কাস্টম ক্ষেত্রগুলি কীভাবে সংরক্ষণ করবেন


22

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

সংরক্ষণের একমাত্র রেফারেন্সটি (আবার যোগাযোগের পরিবর্তে সামগ্রী):

অতিরিক্ত ক্ষেত্রগুলি প্লাগইন ডিরেক্টরিতে ফাইল ফর্ম / যোগাযোগ.xml থেকে লোড করা হয়। এই ক্ষেত্রগুলি নামের ক্ষেত্রের নামটি "প্যারামগুলিতে" সেট করা ক্ষেত্রের উপাদানের মধ্যে থাকা গুরুত্বপূর্ণ। আপনি যদি এই সম্পত্তিটির নামটি সেট না করেন তবে ক্ষেত্রগুলি অ্যাডমিন সাইটে উপস্থিত হবে তবে মানগুলি সংরক্ষণ করা হবে না।

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

এখানে আমার প্রয়োজনীয় সরল ক্ষেত্রটি রয়েছে - ব্যবহারকারীর কাছে অদৃশ্য, তবে তা সমালোচনামূলক and এবং এটি সঞ্চয় করার জন্য সিসিকে প্রয়োজনের কোথাও নেই।
কী কী ভুল / নিখোঁজ হয়েছে যা কাস্টম ক্ষেত্রটি সংরক্ষণ থেকে বাঁচছে?

আপডেট: কাস্টম ফিল্ডটি ডাটাবেসে সংরক্ষিত ছিল এই আশা ছাড়িয়ে প্রত্যাশায়, আমি একই নাম দিয়ে #__ সামগ্রী টেবিলে একটি কলাম যুক্ত করেছি এবং চেষ্টা করেছি - কোনও ভাগ্য নেই।

gdp.php

class plgContentGdp extends JPlugin {
    protected $autoloadLanguage = true;
    function onContentPrepareForm($form, $data) {
        $app = JFactory::getApplication();
        $option = $app->input->get('option');
        switch($option) {
            case 'com_content':
                if ($app->isAdmin()) {
                    JForm::addFormPath(__DIR__ . '/forms');
                    $form->loadFile('content', false);
                }
                return true;
        }
        return true;
    }
}

/forms/content.xml

<?xml version="1.0" encoding="UTF-8"?>
<form>
    <fields name="params" >
        <fieldset name="params" >
            <field
                name="content_myfield"
                type="text"
                label="PLG_CONTENT_GDP_MYFIELD"
                />
        </fieldset>
    </fields>
</form>

রেন্ডার করা এইচটিএমএল (লেবেল ছাড়াই)

<div class="tab-pane active" id="attrib-params">
    <div class="control-group ">
        <div class="controls">
            <input
                type="text"
                value=""
                id="jform_params_content_myfield"
                name="jform[params][content_myfield]"
                class=""
                aria-invalid="false"
                >
        </div>
    </div>
</div>

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

আমার ডেটা সামগ্রীটির জন্য, ব্যবহারকারীর জন্য নয় ... কেবলমাত্র টিউটোরিয়াল যোগাযোগের জন্য রয়েছে
জিডিপি

দুঃখিত আমি পরিষ্কার ছিলাম না, কেবলমাত্র কনটেন্টএফটারস্যাভ ইভেন্টটি আঁকুন এবং সংরক্ষণের অংশটি হ্যান্ডেল করুন
রিকার্ডো জর্ন

এই জন্য আপনাকে অনেক ধন্যবাদ. আমি এক দিনের সেরা অংশের জন্য এটি বাছাই করার চেষ্টা করছি। আমি জুমলা প্লাগইন বিকাশে বেশ নতুন তাই আমার কাছে যেতে উদাহরণগুলিতে নির্ভর করি। আমি কি কেবল ভাষা স্ট্রিং ফাইলগুলি সম্পর্কে নিশ্চিত করতে পারি - এগুলি কি প্লাগইন ফাইলগুলির সাথে বা বিদ্যমান ভাষার ফোল্ডারে যায়? অথবা এটা কোন ব্যাপার না?

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

উত্তর:


19

আহা! মুহূর্ত - #__ কনটেন্টের আর paramsকলাম নেই, সুতরাং প্লাগইনটির attribsপরিবর্তে উপাদান / টেবিলের সাথে কাজ করার জন্য params(যা কেবলমাত্র v3.2 অনুসারে #__ কনটেন্ট হিসাবে প্রদর্শিত হবে) এর জন্য নিম্নলিখিত সামঞ্জস্যগুলি করতে হবে :

  1. fieldsনামটি "অনুগ্রহ" এ পরিবর্তন করুন
  2. fieldsetনামটিকে অনন্য কিছুতে পরিবর্তন করুন (আমি প্লাগিনের নামটি ব্যবহার করেছি)
  3. সামগ্রী সম্পাদনা পৃষ্ঠায় ট্যাবের জন্য একটি ভাষা স্ট্রিং যুক্ত করুন

/forms/content.xml

<form>
    <fields name="attribs" >
        <fieldset name="gdp" >
            <field
                name="myfield"
                type="text"
                label="PLG_CONTENT_GDP_MYFIELD"
                />
        </fieldset>
    </fields>
</form>

স্বীকারোক্তি-GB.plg_content_pass.ini

COM_CONTENT_GDP_FIELDSET_LABEL="My Custom Fields"

আমি কি এখানে এই সম্পর্কে একটি প্রশ্ন জিজ্ঞাসা করতে পারেন? বা আমি একটি নতুন প্রশ্ন তৈরি করা উচিত? এটি এর সাথে সম্পর্কিত? মূলত আমার নিবন্ধ সম্পাদনা দর্শনটিতে কীভাবে একাধিক ট্যাব যুক্ত করতে হবে তা জানতে হবে। দেখে মনে হচ্ছে যে ফর্মগুলি / অতিরিক্ত.xml আপনাকে কেবল একটি ট্যাব তৈরি করতে দেয়। আমি এক্সএমএল ফাইলটি ফিল্ডসেটে বিভক্ত করার বিভিন্ন প্রকারের চেষ্টা করেছি তবে কোনও ভাগ্য নেই। শুধুমাত্র একটি ট্যাব।
জোনপিক্সেল

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