"Fossies" - the Fresh Open Source Software Archive

Member "ispconfig3_install/interface/web/client/client_template_edit.php" (8 Jun 2021, 4980 Bytes) of package /linux/privat/ISPConfig-3.2.5.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) PHP source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "client_template_edit.php" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 3.2.4_vs_3.2.5.

    1 <?php
    2 /*
    3 Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
    4 All rights reserved.
    5 
    6 Redistribution and use in source and binary forms, with or without modification,
    7 are permitted provided that the following conditions are met:
    8 
    9     * Redistributions of source code must retain the above copyright notice,
   10       this list of conditions and the following disclaimer.
   11     * Redistributions in binary form must reproduce the above copyright notice,
   12       this list of conditions and the following disclaimer in the documentation
   13       and/or other materials provided with the distribution.
   14     * Neither the name of ISPConfig nor the names of its contributors
   15       may be used to endorse or promote products derived from this software without
   16       specific prior written permission.
   17 
   18 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
   19 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   20 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   21 IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   22 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
   23 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   24 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
   25 OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   26 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
   27 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   28 */
   29 
   30 
   31 /******************************************
   32 * Begin Form configuration
   33 ******************************************/
   34 
   35 $tform_def_file = "form/client_template.tform.php";
   36 
   37 /******************************************
   38 * End Form configuration
   39 ******************************************/
   40 
   41 require_once '../../lib/config.inc.php';
   42 require_once '../../lib/app.inc.php';
   43 
   44 //* Check permissions for module
   45 $app->auth->check_module_permissions('client');
   46 if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) die('Client-Templates are for Admins and Resellers only.');
   47 
   48 // Loading classes
   49 $app->uses('tpl,tform,tform_actions');
   50 $app->load('tform_actions');
   51 
   52 class page_action extends tform_actions {
   53 
   54 
   55     function onSubmit() {
   56         global $app;
   57 
   58         //* Resellers shall not be able to create another reseller or set reseller specific settings
   59         if($_SESSION["s"]["user"]["typ"] == 'user') {
   60             $this->dataRecord['limit_client'] = 0;
   61             $this->dataRecord['limit_domainmodule'] = 0;
   62         }
   63 
   64         parent::onSubmit();
   65     }
   66 
   67     function onShowEnd() {
   68         global $app;
   69         // Check wether per domain relaying is enabled or not
   70         $global_config = $app->getconf->get_global_config('mail');
   71         if($global_config['show_per_domain_relay_options'] == 'y') {
   72             $app->tpl->setVar("show_per_domain_relay_options", 1);
   73         } else {
   74             $app->tpl->setVar("show_per_domain_relay_options", 0);
   75         }
   76         // APS is enabled or not
   77         $global_config = $app->getconf->get_global_config('sites');
   78         if($global_config['show_aps_menu'] == 'y') {
   79             $app->tpl->setVar("show_aps_menu", 1);
   80         } else {
   81             $app->tpl->setVar("show_aps_menu", 0);
   82         }
   83         parent::onShowEnd();
   84     }
   85 
   86     function onBeforeUpdate() {
   87         global $app;
   88 
   89         if(isset($this->dataRecord['template_type'])) {
   90             //* Check if the template_type has been changed
   91             $rec = $app->db->queryOneRecord("SELECT template_type from client_template WHERE template_id = ?", $this->id);
   92             if($rec['template_type'] != $this->dataRecord['template_type']) {
   93                 //* Add a error message and switch back to old server
   94                 $app->tform->errorMessage .= $app->lng('The template type can not be changed.');
   95                 $this->dataRecord['template_type'] = $rec['template_type'];
   96             }
   97             unset($rec);
   98         }
   99     }
  100 
  101 
  102     /*
  103      This function is called automatically right after
  104      the data was successful updated in the database.
  105     */
  106     function onAfterUpdate() {
  107         global $app;
  108 
  109         $app->uses('client_templates');
  110         if (isset($this->dataRecord["template_type"])) {
  111             $template_type = $this->dataRecord["template_type"];
  112         } else {
  113             $tmp = $app->tform->getDataRecord($this->id);
  114             $template_type = $tmp['template_type'];
  115         }
  116 
  117         /*
  118          * the template has changed. apply the new data to all clients
  119          */
  120         if ($template_type == 'm'){
  121             $sql = "SELECT client_id FROM client WHERE template_master = ?";
  122             $clients = $app->db->queryAllRecords($sql, $this->id);
  123         } else {
  124             $sql = "SELECT client_id FROM client WHERE template_additional LIKE ? OR template_additional LIKE ? OR template_additional LIKE ? UNION SELECT client_id FROM client_template_assigned WHERE client_template_id = ?";
  125             $clients = $app->db->queryAllRecords($sql, '%/' . $this->id . '/%', $this->id . '/%', '%/' . $this->id, $this->id);
  126         }
  127         if (is_array($clients)){
  128             foreach ($clients as $client){
  129                 $app->client_templates->apply_client_templates($client['client_id']);
  130             }
  131         }
  132     }
  133 
  134 }
  135 
  136 $page = new page_action;
  137 $page->onLoad();
  138 ?>