বাহ্যিক ওয়েব পরিষেবাকে গ্রাস করার এবং ভিউগুলিতে ফলাফল দেখানোর কোনও উপায় আছে কি?


11

আমার কাছে একটি বাহ্যিক ওয়েব পরিষেবা রয়েছে, যা HTTP কল (ক্যোয়ারী স্ট্রিং হিসাবে প্যারামিটারগুলি সহ) ব্যবহার করে অ্যাক্সেস করা যায় এবং এটি এক্সএমএল ফর্ম্যাটে ফলাফলটি প্রদান করে।

আমি সেই ওয়েব পরিষেবায় (পছন্দসই প্যারামিটার সহ) অ্যাক্সেস করতে ড্রুপাল ব্যবহার করতে চাই এবং ভিউগুলি ব্যবহার করে ফলাফলটি প্রদর্শন করতে চাই।

এগুলি একটি নমুনা ক্যোয়ারী এবং আমি যে ওয়েব পরিষেবাটি ব্যবহার করছি তা থেকে প্রাপ্ত ফলাফল।

অনুসন্ধান: http: //localhost/query.php? Cy = in & q = abcd & cat = 22
ফলাফল:

<?xml version="1.0"?>
<results>
<Jobs>
    <Job ID="111">
        <Title>Test one</Title>
        <Summary>Test one summary</Summary>
        <DateUpdated Date="2011-04-04 18:03:00">4/4/2011</DateUpdated>
        <Location>
            <Country>India</Country>
            <City>Delhi</City>
        </Location>
        <CompanyName>Test Company</CompanyName>
    </Job>
    <Job ID="222">
        <Title>Test two</Title>
        <Summary>Test two summary</Summary>
        <DateUpdated Date="2011-04-04 18:03:00">4/4/2011</DateUpdated>
        <Location>
            <Country>India</Country>
            <City>Chennai</City>
        </Location>
        <CompanyName>Test company</CompanyName>
    </Job>
</Jobs> 
</results>  

উত্তর:


4

প্রস্তাবিত সমাধানগুলি প্রথমে ডাটাবেসে ডেটা পাওয়ার উপর ভিত্তি করে, তারপরে ভিউগুলিতে দেখানো হয়।

একটি বিকল্প হচ্ছে কাস্টম ক্যোয়ারী ব্যাকএন্ড ব্যবহার করে সরাসরি ভিউগুলি থেকে পরিষেবাটি অনুসন্ধান করা er কাস্টম ব্যাকেন্ডের লিঙ্কগুলির জন্য http://drupal.org/node/958270 চেকআউট করুন যা আপনি নিজের লেখার জন্য উদাহরণ হিসাবে ব্যবহার করতে পারেন (এটি খুব বেশি কাজ নয়)


অবশ্যই, তবে প্রথমে ডিবিতে ডেটা পাওয়ার সুবিধাগুলি কেবল সরলতার চেয়ে বেশি, এর অর্থ ডেটা ক্যাশে করা। একটি স্থানীয় ডেটাস্টোর অনুসন্ধান করা বাহ্যিক পরিষেবার চেয়ে সর্বদা দ্রুত।
অ্যালেক্স ওয়েবার

কিন্তু drupal.org/node/958270 Views3.0 ব্যবহার সাথে। ভিউ 3.0 এবং ডিবিতে ডেটা সংরক্ষণ করার প্রয়োজন ছাড়াও ব্যবহার না করার কোনও উপায়? কেবল ওয়েবসারিসের রিয়েলটাইম গ্রাহ্য করুন এবং পৃষ্ঠায় ডেটা প্রদর্শন করুন।

অবশ্যই, এটি না বলে চলে যায়।
বোজন জিভানোভিক

নং দর্শন 2 জীবনের শেষের খুব কাছাকাছি, তাই সমস্ত নতুন বৈশিষ্ট্য 3
নম্বরে রয়েছে

@ অ্যালেক্স: আপনি একটি বহিরাগত ওয়েবসার্ভিসের সাহায্যে ভিউ 3 ব্যবহার করতে পারেন এবং ফলাফলগুলি ক্যাশে করতে পারেন।
s.Daniel

3

ফিডসের মডিউল বিষয়বস্তুতে টান এবং এটি নোড মধ্যে চালু করতে পারেন। ফিডস এক্সপথ পার্সার আপনাকে xML ফাইল এবং ম্যাপ ট্যাগগুলিকে ক্ষেত্রগুলিতে পার্স করতে দেয়। এরপরে আপনি সামগ্রীটি স্বাভাবিক হিসাবে প্রদর্শন করতে ব্যবহার করতে পারেন।


1

আমি নিশ্চিত যে সেখানে আরও মার্জিত সমাধান রয়েছে তবে আমি টুইটার ফিড দিয়ে অতীতে এটি করেছি এবং এটি ঠিক কাজ করে। এটি আমার গ্রহণ করা এখানে:

  • আপনার ফলাফলগুলি সংরক্ষণ করার জন্য একটি সামগ্রী ধরণের তৈরি করুন এবং আপনার ব্যবহৃত সামগ্রীর সাথে মিলের জন্য প্রয়োজনীয় ক্ষেত্রগুলি সেট আপ করুন
  • একটি মডিউল তৈরি করুন যা হুক_ক্রন () প্রয়োগ করে এবং পর্যায়ক্রমে ওয়েব পরিষেবা গ্রহণ করে এবং ফলাফলগুলি নোড হিসাবে সঞ্চয় করে

দ্বিতীয় পদক্ষেপটি ক্রমগতভাবে নোডের উদাহরণ তৈরি করে অর্জন করা যেতে পারে:

$node = new stdClass();
$node->title = 'title';
$node->my_custom_field['und'][0]['value'] = 'my custom value';
// fill all your other fields
node_save($node);
  • প্রোগ্রামগুলি নোডগুলি তৈরি করার সময় সদৃশ এড়ানোর সর্বোত্তম উপায় হ'ল ওয়েব সার্ভিসের ফলাফলের আইডি (বা টাইমস্ট্যাম্প, বা যা কিছু) ডাটাবেসে সর্বাধিক সাম্প্রতিক প্রবেশের সাথে তুলনা করা:
SELECT fdfpi.field_picture_id_value FROM field_data_field_picture_id fdfpi INNER JOIN node n ON fdfpi.entity_id = n.nid AND fdfpi.entity_type = 'node' WHERE n.type = 'picture' ORDER BY n.created DESC LIMIT 1

উপরের উদাহরণটি কিন্ডা বিভ্রান্ত বলে মনে হতে পারে তবে এটি আসলে নয়: আমি একটি সামগ্রী ধরণের "চিত্র" তৈরি করেছি যা একটি কাস্টম ফিল্ড "পিকচার_আইডি" রয়েছে। এই ধরণের সর্বাধিক নির্মিত নোডের জন্য আইডিটি পুনরুদ্ধার করার এটির একটি ম্যানুয়াল উপায়।

  • সুতরাং এখন আপনার কাছে একটি নির্দিষ্ট সামগ্রীর প্রকার রয়েছে যা আপনি স্বয়ংক্রিয়ভাবে ক্রোন সময়কে উপস্থাপন করুন ... লাভ! আপনি যে কোনও উপায়ে দয়া করে ডেটা প্রদর্শন করতে আপনি ভিউ ব্যবহার করতে পারেন কারণ এটি নিয়মিত ol 'ড্রুপাল নোডের আকারে! :)

আশাকরি এটা সাহায্য করবে!

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