Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 为每个客户端定制_Drupal_Module_Themes_Customization - Fatal编程技术网

Drupal 为每个客户端定制

Drupal 为每个客户端定制,drupal,module,themes,customization,Drupal,Module,Themes,Customization,我们为各种客户提供SaaS产品。每个客户在虚拟机中都有自己的安装。我们的用户指南以Word/PDF格式发布。客户可以修改用户指南,在用户指南中添加品牌(徽标、产品名称) 现在我们想在Drupal中设置用户指南。将用户指南的内容移动到Drupal中很容易。挑战在于为每个客户进行定制。我们不希望在每个虚拟机中安装Drupal并复制内容 当有人点击我们产品中的“帮助”时,他们可以访问Drupal,我们可以在URL中添加“客户端”、“版本号”等参数。Drupal可以对此进行处理以自定义设置。我们还可以使

我们为各种客户提供SaaS产品。每个客户在虚拟机中都有自己的安装。我们的用户指南以Word/PDF格式发布。客户可以修改用户指南,在用户指南中添加品牌(徽标、产品名称)

现在我们想在Drupal中设置用户指南。将用户指南的内容移动到Drupal中很容易。挑战在于为每个客户进行定制。我们不希望在每个虚拟机中安装Drupal并复制内容

当有人点击我们产品中的“帮助”时,他们可以访问Drupal,我们可以在URL中添加“客户端”、“版本号”等参数。Drupal可以对此进行处理以自定义设置。我们还可以使用客户端信息为每个客户端进行唯一登录

我可以通过更改页面模板中的$logo来修改徽标。但是,它会在全球范围内更改所有客户的徽标。最新点击Drupal设置徽标

我不知道如何/在哪里设置一个逻辑来根据登录定制逻辑。因此,客户端A看到的徽标与客户端B在同一时间访问同一Drupal安装时看到的徽标不同。此外,我们希望能够以类似的方式自定义产品名称

我不需要任何程序代码(但我不介意模块)。只是一些关于如何开发的想法会很好

这是页面模板中的代码。但是,每次新客户访问指南时,徽标都会发生变化。有没有像会话或logoArray[client]这样的功能,我可以用来使每个客户端的徽标都是唯一的,即使许多客户端同时访问该页面

 <?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>
    ?>

$settings['logo_path']=$logo;
变量集($var\u name,$settings);

从自定义模块或主题,您可以实现更改任何模板的变量。每个客户机想要自定义的变量很可能都在
page.tpl.php
模板中使用,因此这将是
XYZ\u preprocess\u page()
(其中
XYZ
是主题或模块的名称)