Drupal在两个网站之间共享内容

时间:2010-01-21 09:54:15

标签: drupal drupal-6

我对构建drupal站点很不满意,但不确定实现此场景的最佳方法是什么。我有两个域名mydomain.com和mydomain2.com。我需要有一个包含某些字段的conten类型。即

ContentType
Field - Title
Field - Body
Field - Picture
Field - Price

我希望两个网站都使用相同的数据作为自定义内容类型。因此,您在一个站点上输入数据,并在两个站点上进行更新。

mydomain.com将显示内容类型的以下信息。

ContentType
Field - Title
Field - Body
Field - Picture

mydomain2.com将显示所有数据。

mydomain.com和mydomain2.com会有不同的感觉。每个域可能会使用一些不同的模块。 mydomain2.com将使用ubercart而mydomain.com将不会。

我会在这里使用mutlisite并以某种方式对表格进行处理。使用drupal的一个实例并完成其余的主题吗?使用功能和上下文?

任何帮助都会被贬低。

4 个答案:

答案 0 :(得分:3)

在做了一些研究后,这可能是我需要的http://drupal.org/project/domain。案例研究可以在http://drupal.org/node/369398找到。

仍然想知道是否还有其他方式,所以不要将此作为答案。

答案 1 :(得分:1)

您只需要在网站之间共享表格。

您可以通过在您的settings.php文件中添加类似这样的内容,在Drupal 7安装中共享特定的表(最好在逻辑组中完成):

$my_db_users = 'drupal_users.shared_';
$my_db_content = 'drupal_content.shared_';

$databases['default']['default'] = array(
    'driver' => 'mysql',
    'database' => 'defaultdatabase',
    'username' => 'databaseuser',
    'password' => 'databasepassword',
    'host' => '127.0.0.1',
    'port' => 3066,
    'prefix' => array(
        'default'   => 'default_', 
        'users'     => $my_db_users,
        'sessions'  => $my_db_users,
        'role'      => $my_db_users,
        'authmap'   => $my_db_users,
        'node' => $my_db_content,                       
        'node_revisions' => $my_db_content,        
        'node_type' => $my_db_content,    
    ),
    'collation' => 'utf8_general_ci',
);

在上面的例子中,我们设置了指向某些表组的不同数据库的变量。因此,在上面的示例中,我们需要三个数据库: defaultdatabase drupal_users drupal_content

然后在数组中,我们设置默认表前缀'default' => 'default_',,并说:“除非另有说明,否则将所有表存储在 defaultdatabase 中,并使其表前缀 default_ “。我们还说:“将所有用户,会话,角色和用户角色映射(authmap)存储在数据库 drupal_users 中,表格前缀为 shared _ 。”最后,我们说:“将所有节点类型,节点及其修订版存储在数据库 drupal_content 中,并使用表格前缀共享_ 。”

强大的力量带来了巨大的责任:

如果不将表的逻辑组保持在一起,则会完全阻止安装。

什么是表的逻辑组?好吧,可能任何在当前安装中具有前缀node_的表都应该移动到共享数据库。大多数结构良好的模块(比如node_access)的表名前缀都是逻辑的。根据您的模块,确保将表组保留在正确的位置(在特定于站点的数据的默认数据库中,或在另一个数据库中用于共享数据。)

添加一点点:

我做了类似的安装,其中共享了用户和角色,但不是authmap 。到底是什么?

好吧,如果您这样做,您可以在大型网站网络中拥有相同的用户和群组,同时仍允许用户在不同网站上拥有不同的权限。在一个网站上,您可能是一名编辑,但在另一个网站上,您将成为一名作者。

答案 2 :(得分:0)

域模块看起来不错(虽然我没有使用它)。对你的需求来说可能有点过分了。

如果您想要一些非常简单的东西,您可以创建一个模块,根据域名设置$custom_theme中的全局hook_init()

答案 3 :(得分:0)

对我来说,如果这是网站的关键部分,我会创建一个自定义模块。有一些指南可以通过模块创建node_types。我碰巧喜欢this one

这样,您在自定义表格中拥有数据的基本结构,然后可以自定义显示数据的调用,以包含价格列。

同样,有些人可能会认为这工作太多,但如果您不熟悉Drupal模块开发,那么这是一种伟大的学习方式。如果您熟悉,它应该快速而简单。