我们为各种客户提供SaaS产品。每个客户在虚拟机中都有自己的安装。我们的用户指南已使用Word / PDF。客户已能够修改用户指南,以在用户指南中添加品牌(徽标,产品名称)。
现在我们要在Drupal中设置用户指南。将用户指南的内容移动到Drupal很容易。挑战在于为每个客户定制。我们不想在每台虚拟机中安装Drupal并复制内容。
当有人点击"帮助"在我们的产品中,他们可以访问Drupal,我们可以为'客户端'版本号'添加参数。等到URL。 Drupal可以处理这个以自定义设置。我们还可以使用客户端信息为每个客户端进行唯一登录。
我可以通过更改页面模板中的$徽标来修改徽标。但是,它会为所有客户全局更改徽标。最新点击Drupal设置徽标。
我不知道如何/在哪里可以设置逻辑来根据登录自定义逻辑。因此,客户端A看到的徽标与客户端B同时访问同一个Drupal安装的徽标不同。此外,我们希望能够以类似的方式自定义产品名称。
我不期待任何程序代码(但我不介意一个模块)。关于如何开发它的一些想法会很棒。
这是页面模板中的代码。但是,每次新客户转到指南时,徽标都会更改。是否有类似会话或logoArray [客户端]功能,即使许多客户端同时访问该页面,我可以使用该功能为每个客户端制作唯一的徽标?
<?php
$arglist = drupal_get_query_parameters();
if ( count( $arglist ) > 0 ):
$theme_name = 'bootstrap_ivs7';
$var_name = 'theme_' . $theme_name . '_settings';
$settings = variable_get($var_name, array());
if ( $arglist['logoflag'] == 'logoclient1' ): ?>
<?php if ($logo):
$logo='http://localhost/ivs7/sites/default/files/logo_client1.png';
$settings['logo_path'] = $logo;
variable_set($var_name, $settings);
<?php endif;
else:
if ( $arglist['logoflag'] == 'logoclient2' ):
$logo='http://localhost/ivs7/sites/default/files/logo_client2.png';
$settings['logo_path'] = $logo;
variable_set($var_name, $settings);
<?php
else:
$logo = 'http://localhost/ivs7/sites/all/images/logo_default.png'; ?>
$settings['logo_path'] = $logo;
variable_set($var_name, $settings);
<?php endif; ?>
<?php endif; ?>
<?php endif; ?>
<?php
<a class="logo navbar-btn pull-left" href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>">
<img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" />
</a>
?>
答案 0 :(得分:0)
从自定义模块或主题中,您可以实现hook_preprocess_HOOK()
来更改任何模板的变量。可能每个客户端要自定义的变量都在page.tpl.php
模板中使用,因此它是XYZ_preprocess_page()
(其中XYZ
是您的主题或模块的名称)。