জুমলা পৃষ্ঠার এইচটিএমএল ট্যাগে বৈশিষ্ট্যগুলি যুক্ত করার সঠিক উপায়?


11

আমি আমার বেশ কয়েকটি জুমলা নিবন্ধ পৃষ্ঠায় আরও কিছু উন্নত কার্যকারিতা যুক্ত করতে AngularJS ব্যবহার করছি। এই পৃষ্ঠাগুলিতে <HTML>আমার পৃষ্ঠার ট্যাগটিতে এনজি-অ্যাপ্লিকেশন বৈশিষ্ট্য যুক্ত করতে হবে । বর্তমানে আমার জুমলা (v3.3) পৃষ্ঠাগুলির জন্য সাধারণ এইচটিএমএল ট্যাগটি দেখতে দেখতে এটির মতো দেখাচ্ছে;

<html prefix="og: http://ogp.me/ns#" xml:lang="en-gb" lang="en-gb">

এবং আমার এটির মতো দেখতে এটি দরকার;

<html prefix="og: http://ogp.me/ns#" xml:lang="en-gb" lang="en-gb" ng-app="dataManager">

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

আমি বর্তমানে নিম্নলিখিত ব্যবহার করে AngularJS আমদানি করছি:

<?php 
    $document = JFactory::getDocument();
    $urlAngular = "http://ajax.googleapis.com/ajax/libs/angularjs/1.2.21/angular.min.js";
    $document->addScript($urlAngular); 
?>

আপনি দিতে পারেন যে কোনো সাহায্যের জন্য আপনাকে ধন্যবাদ।


আপনি কীভাবে বর্তমানে কেবল সেই পৃষ্ঠাগুলিতে অ্যাঙ্গুলারজেএস এবং এই জাতীয় যুক্ত করছেন?
ডেভিড ফ্রিটসচ

আমি পিএইচপি কোডের একটি সাধারণ ব্লক সহ সেই পৃষ্ঠাগুলিতে অ্যাঙ্গুলারজেএস যুক্ত করছি। এখানে কোড ব্যবহার করা হয়; <pre> {উত্স} <? php $ দস্তাবেজ = জেফ্যাক্টরি :: getDocament (); ; urlAngular = " ajax.googleapis.com/ajax/libs/angularjs/1.2.21/angular.min.js "; $ document-> addScript ($ urlAngular); ?> source / উত্স} </pre>
drobertson

ম্যাংলেড কোডের জন্য দুঃখিত আমি সম্পাদনা করতে হয়েছিল আমার 5 মিনিটের মধ্যে কোড ব্লকটি কীভাবে পেতে হবে তা আমি বুঝতে পারি না।
drobertson

@ ডউগ্রোবার্টসন - আপনি কোডের আপডেটের জন্য কেবল নিজের প্রশ্নটি আপডেট করতে পারেন;) আমি সেই অনুযায়ী আপনার প্রশ্নটি সম্পাদনা করেছি
লড্ডার

উত্তর:


5

আপনি systemএটির মতো একটি প্লাগইন তৈরি করতে পারেন :

class plgSystemAddAttr extends JPlugin
{
    public function onAfterRender()
    {
        $document = JFactory::getApplication();
        $htmlString = $document->getBody();

        $dom = new DOMDocument();
        libxml_use_internal_errors(true);
        $dom->loadHTML($htmlString);
        libxml_use_internal_errors(false);
        $htmlTag = $dom->getElementsByTagName('html')->item(0);

        $domAttribute = $dom->createAttribute('ng-app');
        $domAttribute->value = 'dataManager';
        $htmlTag->appendChild($domAttribute);

        $document->setBody($dom->saveHtml());
    }
}

ধন্যবাদ, আমি এটিই খুঁজছিলাম আমি সিস্টেম প্লাগইনে কাজ করব। খুব অল্প সময়ে পিএইচপি থেকে এই একই জিনিসটি নিবন্ধের ভিতরে এম্বেড করা সম্ভব?
drobertson

DOMDocament এইচটিএমএল কাঠামোর জন্য খুব সংবেদনশীল। যদি এটি দস্তাবেজটি লোড করতে ব্যর্থ হয় তবে এটি একটি বড় উপায়ে ব্যর্থ হয় এবং একটি ছোট এইচটিএমএল ত্রুটি পুনরুদ্ধার করার কোনও উপায় নেই। আমি একটি সরল পূর্ববর্তী স্থান পছন্দ করি ।
অনিবল

@ ডাওগ্রোবার্টসন আফাইক, না এটি সম্ভব নয়। বিটিডাব্লু আমি AngularJS এর ​​সাথে পরিচিত নই, তবে যদি ক্লায়েন্ট সাইডে অ্যাট্রিবিউটটি ব্যবহার করা হয় তবে আপনি এটি ক্লায়েন্ট সাইডেও সংজ্ঞায়িত করতে পারেন। একটি jQuery উদাহরণ:$('html').attr('ng-app', 'dataManager');
ফারহমান

@ ফারি আমি এটি করা বিবেচনা করেছি, কিন্তু বোঝার ক্রমটি জটিল হয়ে উঠেছে। যদি আমি অ্যাটর্কের অবস্থান নির্ধারণ করতে পারি যাতে এটি AngularJS আরম্ভ করার আগে নির্দিষ্টভাবে ঘটে তবে আপনার ধারণাটি দুর্দান্ত হতে পারে। এতদূর আমি খরগোশের গর্ত থেকে এতটা পেলাম না।
ড্রবার্টসন

1

আপনি গুনটিতে গতিশীল সামগ্রী যুক্ত করতে পিএইচপি ব্যবহার করতে পারেন ng-app

আপনার \templates\yourtemplate\index.phpফাইলে, পরিবর্তন করুন

<html prefix="og: http://ogp.me/ns#" xml:lang="en-gb" lang="en-gb" ng-app="dataManager">

প্রতি

<?php
if ( condition ) {
   $ngapp = "dataManager";
} else {
   $ngapp = "somethingElse";
}
?>
<html prefix="og: http://ogp.me/ns#" xml:lang="en-gb" lang="en-gb" ng-app="<?php echo $ngapp ?>">

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

1
সম্ভবত একটি সিস্টেম প্লাগইন সবচেয়ে সহজ উপায় হবে। এটি ক্লায়েন্টের কাছে পরিবেশন করার ঠিক আগে রেন্ডার করা এইচটিএমএলকে হেরফের করতে পারে এবং কোন বৈশিষ্ট্যটি আপনার পক্ষে উপযুক্ত তা নির্ধারণ করার জন্য সমস্ত সেশন ডেটা উপলব্ধ থাকতে পারে।
রিকার্ডো জর্ন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.