2015-11-06 44 views
0

我们为各种客户提供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

从自定义模块或主题中,您可以实现hook_preprocess_HOOK()来更改任何模板的变量。可能您要为每个客户端自定义的变量都用于page.tpl.php模板中,因此这将是XYZ_preprocess_page()(其中XYZ是您的主题或模块的名称)。

相关问题