ভিউ ব্যবহার করে অন্য ড্রুপাল ডাটাবেস থেকে নোডগুলি লোড করা হচ্ছে


12

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

আমার হুক_ভিউ_ডাটা () প্রয়োগে আমি 'ডাটাবেস' কী সেট করেছি, তবে $ ডেটা ['নোড'] ওভাররাইড না করে নোড টেবিল থেকে কীভাবে পড়তে হবে তা অনুমান করতে পারছি না।

function cms_connector_views_data() {
  $data['cms_connector']['table']['group'] = t('CMS Content');
  $data['cms_connector']['table']['base'] = array(
    'field' => 'nid',
    'title' => t('CMS Content'),
    'help' => t('Content from the centralized CMS.'),
    'database' => 'cms',
  );

  return $data;
}

অবশ্যই এটি কোনও নোড সারণীর সন্ধান করে না, এটি cms_connectorআমার cmsডাটাবেসে একটি সারণী সন্ধান করে, যা বিদ্যমান নেই।

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'cms.cms_connector' doesn't exist

http://views-help.doc.logrus.com/help/views/api-tables বলছেন যে ডেটাতে…

সারণীর আসল ডাটাবেসের নাম হওয়া উচিত (উপসর্গ সহ নয়) তবে এটি যুক্ত হওয়া সত্ত্বেও যতক্ষণ না যুক্ত হওয়ার তথ্য (পরে ব্যাখ্যা করা হয়েছে) সারণীর আসল নাম থাকবে an

আমি আসলে একটি যোগদান করতে চাই না, আমি অন্যান্য ডাটাবেসের নোড টেবিল থেকে একটি বেস টেবিল তৈরি করতে চাই। তবে http://drupal.org/node/1713010#comment-6310438 দেখার পরে আমি যাইহোক এটি চেষ্টা করেছি (যদিও এটি সত্যিকার অর্থে বোঝা যায় না) :

$data['cms_connector']['table']['join'] = array(
  'node' => array(
    'left_field' => 'nid',
    'left_table' => 'node',
    'field' => 'nid',
    'table' => 'node',
  ),
);

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

আমি এখানে /drupal/12736/ using-nodes-from-another-site-database প্রশ্নটি পেয়েছি তবে এটি নোড রেফারেন্স সম্পর্কে, এবং উত্তরহীন।

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


1
আমি একটি কাস্টম ক্যোয়ারী প্লাগইন তৈরি করে কিছুটা আরও অগ্রগতি করেছি যা ভিউ_প্লাগিন_উইকি_ডিফল্ট প্রসারিত করে। আমি ক্যোয়ারী সেটিংসে একটি বিকল্প যুক্ত করেছি যা ভিউ টোগল করে এবং অন্যান্য ডাটাবেস থেকে ডেটা টান দেয়। আমি অন্য ডাটাবেসে নোড টেবিল থেকে নোড শিরোনাম এবং অন্যান্য ডেটা টানতে পারি, এখনও ক্ষেত্রগুলি পাওয়ার জন্য কাজ করছি।
কটার

উত্তর:


1

ফরেনা মডিউলটি দেখুন বিবেচনা করুন । এটি অন্যান্য ডাটাবেসে ডেটা ক্যোয়ারী (আপডেট নয়) করতে ব্যবহার করা যেতে পারে। বিভিন্ন ডিবিএমএস ফর্ম্যাটগুলি সমর্থিত, যেমন অন্য একটি দ্রুপাল ডাটাবেস।

ফোরনা এসকিউএল ব্যবহার করে ডেটাবেস থেকে ডেটা বের করতে এবং এক্সএইচটিএমএল এবং সিএসএস ব্যবহার করে এটি ওয়েব প্রতিবেদনে ফর্ম্যাট করার ধারণার দ্বারা তৈরি। ফরেনা সম্পর্কে আরও তথ্যের জন্য, 2 ধরণের ডকুমেন্টেশন উপলব্ধ:

  • সম্প্রদায় ডকুমেন্টেশন
  • ফরেনার সাথে ডকুমেন্টেশন আসে যা আপনি মডিউলটি ইনস্টল করার পরে সক্ষম করতে পারবেন। বর্তমানের একটি অনলাইন উদাহরণের জন্য ডেমো সাইটটি চেকআউট করুন :

    • ফোরনা ডকুমেন্টেশন - 'রিপোর্টিং ডকুমেন্টেশন' লিঙ্কটি ব্যবহার করুন বা সম্পর্কিত লিঙ্ক / রিপোর্ট / সহায়তা দেখুন।
    • ফোরনা নমুনা - 'রিপোর্টিং নমুনা' লিঙ্কটি ব্যবহার করুন বা আপেক্ষিক লিঙ্ক / রিপোর্ট / নমুনাগুলি দেখুন (এই নমুনাগুলি সম্পূর্ণ কার্যকরী, সুতরাং এটির সাথে কিছুটা পরীক্ষা করে দেখুন, যেমন এসভিজি গ্রাফের নমুনায় উপলব্ধ ড্রিল ডাউনগুলি)।

ডিসক্লোজার: আমি একটি আছি সহ Forena এর -maintainer,
আমি আশা করি এই সাইটের লঙ্ঘন করে না আত্ম-প্রচারে নীতি


0

আপনি ডেটা রফতানি করতে ভিউ মডিউল ব্যবহার করে সামগ্রী রফতানি করতে পারেন এবং ফিডস মডিউলটি ব্যবহার করে আমদানি করতে পারেন (আপনি নিয়ম মডিউল ব্যবহার করে পর্যায়ক্রমে আমদানি করতে পারেন )।



-1

সেটিংস.এফপি ফাইল ব্যবহার করে একটি বিকল্প। সেটিংস.ফ্প ফাইলটিতে ২ য় ডাটাবেস উদাহরণ কনফিগার করুন। উদাহরণ স্থাপনের পরে db_set_active('drupal2')ফাংশনটি ব্যবহার করে সেই ডিবি ব্যবহার করুন এবং আপনার দ্বিতীয় ডিবি দিয়ে কিছু করুন anything

যেমন

$databases = array(
    'default' =>
    array(
        'default' =>
        array(
            'database' => 'drupal1',
            'username' => 'root',
            'password' => '',
            'host' => 'localhost',
            'port' => '',
            'driver' => 'mysql',
            'prefix' => '',
        ),
    ),
    'cms' => // additional database starts here
    array(
        'default' =>
        array(
            'database' => 'cms',
            'username' => 'root',
            'password' => '',
            'host' => 'localhost',
            'port' => '',
            'driver' => 'mysql',
            'prefix' => '',
        )
    ),
);

আপনার মডিউলটিতে আপনি উভয় ডাটাবেস নিম্নলিখিত হিসাবে ব্যবহার করতে পারেন:

db_set_active('cms');
$node = node_load(10);
var_dump($node):

এটি যদিও
ভিউগুলিতে

আপনি খুঁজে চেষ্টা 'database' => 'cms', সঙ্গে cmsকনফিগার কী cmsডাটাবেস settings.phpফাইল।
আশ্বিনপি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.