我对构建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的一个实例并完成其余的主题吗?使用功能和上下文?
任何帮助都会被贬低。
答案 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模块开发,那么这是一种伟大的学习方式。如果您熟悉,它应该快速而简单。