/**
  * Create a new module.
  *
  * @param string $directory Where is this module installed
  */
 public function __construct($directory)
 {
     parent::__construct($directory);
     // Create/update the database tables.
     // NOTE: if we want to set any module-settings, we'll need to move this.
     Database::updateSchema(self::SCHEMA_MIGRATION_PREFIX, self::SCHEMA_SETTING_NAME, self::SCHEMA_TARGET_VERSION);
 }
Example #2
0
 /**
  * {@inheritDoc}
  * @see \MyArtJaub\Webtrees\Module\DependentInterface::validatePrerequisites()
  */
 public function validatePrerequisites()
 {
     try {
         Database::updateSchema(self::SCHEMA_MIGRATION_PREFIX, self::SCHEMA_SETTING_NAME, self::SCHEMA_TARGET_VERSION);
         return true;
     } catch (\Exception $ex) {
     }
     return false;
 }
 /**
  * {@inhericDoc}
  * @see \MyArtJaub\Webtrees\Module\DependentInterface::validatePrerequisites()
  */
 public function validatePrerequisites()
 {
     try {
         Database::updateSchema(self::SCHEMA_MIGRATION_PREFIX, self::SCHEMA_SETTING_NAME, self::SCHEMA_TARGET_VERSION);
         return !is_null(Module::getModuleByName(Constants::MODULE_MAJ_SOSA_NAME));
     } catch (\Exception $ex) {
     }
     return false;
 }
Example #4
0
    echo '<h2>', I18N::translate('System settings'), '</h2>', '<h3>', I18N::translate('Administrator account'), '</h3>', '<p>', I18N::translate('You need to set up an administrator account.  This account can control all aspects of this webtrees installation.  Please choose a strong password.'), '</p>', '<fieldset><legend>', I18N::translate('Administrator account'), '</legend>', '<table border="0"><tr><td>', I18N::translate('Your name'), '</td><td>', '<input type="text" name="wtname" value="', Filter::escapeHtml($_POST['wtname']), '" autofocus></td><td>', I18N::translate('This is your real name, as you would like it displayed on screen.'), '</td></tr><tr><td>', I18N::translate('Login ID'), '</td><td>', '<input type="text" name="wtuser" value="', Filter::escapeHtml($_POST['wtuser']), '"></td><td>', I18N::translate('You will use this to login to webtrees.'), '</td></tr><tr><td>', I18N::translate('Password'), '</td><td>', '<input type="password" name="wtpass" value="', Filter::escapeHtml($_POST['wtpass']), '"></td><td>', I18N::translate('This must be at least six characters long.  It is case-sensitive.'), '</td></tr><tr><td>', '&nbsp;', '</td><td>', '<input type="password" name="wtpass2" value="', Filter::escapeHtml($_POST['wtpass2']), '"></td><td>', I18N::translate('Type your password again, to make sure you have typed it correctly.'), '</td></tr><tr><td>', I18N::translate('Email address'), '</td><td>', '<input type="email" name="wtemail" value="', Filter::escapeHtml($_POST['wtemail']), '"></td><td>', I18N::translate('This email address will be used to send password reminders, website notifications, and messages from other family members who are registered on the website.'), '</td></tr><tr><td>', '</td></tr></table>', '</fieldset>', '<br><hr><input type="submit" id="btncontinue" value="', I18N::translate('continue'), '">', '</form>', '</body></html>';
    return;
} else {
    // Copy these values through to the next step
    echo '<input type="hidden" name="wtname"  value="', Filter::escapeHtml($_POST['wtname']), '">';
    echo '<input type="hidden" name="wtuser"  value="', Filter::escapeHtml($_POST['wtuser']), '">';
    echo '<input type="hidden" name="wtpass"  value="', Filter::escapeHtml($_POST['wtpass']), '">';
    echo '<input type="hidden" name="wtpass2" value="', Filter::escapeHtml($_POST['wtpass2']), '">';
    echo '<input type="hidden" name="wtemail" value="', Filter::escapeHtml($_POST['wtemail']), '">';
}
////////////////////////////////////////////////////////////////////////////////
// Step six  We have a database connection and a writable folder.  Do it!
////////////////////////////////////////////////////////////////////////////////
try {
    // Create/update the database tables.
    Database::updateSchema('\\Fisharebest\\Webtrees\\Schema', 'WT_SCHEMA_VERSION', 30);
    // Create the admin user
    $admin = User::create($_POST['wtuser'], $_POST['wtname'], $_POST['wtemail'], $_POST['wtpass']);
    $admin->setPreference('canadmin', '1');
    $admin->setPreference('language', WT_LOCALE);
    $admin->setPreference('verified', '1');
    $admin->setPreference('verified_by_admin', '1');
    $admin->setPreference('auto_accept', '0');
    $admin->setPreference('visibleonline', '1');
    // Write the config file.  We already checked that this would work.
    $config_ini_php = '; <' . '?php exit; ?' . '> DO NOT DELETE THIS LINE' . PHP_EOL . 'dbhost="' . addcslashes($_POST['dbhost'], '"') . '"' . PHP_EOL . 'dbport="' . addcslashes($_POST['dbport'], '"') . '"' . PHP_EOL . 'dbuser="******"') . '"' . PHP_EOL . 'dbpass="******"') . '"' . PHP_EOL . 'dbname="' . addcslashes($_POST['dbname'], '"') . '"' . PHP_EOL . 'tblpfx="' . addcslashes($_POST['tblpfx'], '"') . '"' . PHP_EOL;
    file_put_contents(WT_DATA_DIR . 'config.ini.php', $config_ini_php);
    // Done - start using webtrees!
    echo '<script>document.location=document.location;</script>';
    echo '</form></body></html>';
} catch (PDOException $ex) {
Example #5
0
 /**
  * Create a new module.
  *
  * @param string $directory Where is this module installed
  */
 public function __construct($directory)
 {
     parent::__construct($directory);
     // Create/update the database tables.
     Database::updateSchema('\\Fisharebest\\Webtrees\\Module\\FamilyTreeNews\\Schema', 'NB_SCHEMA_VERSION', 3);
 }
Example #6
0
    /**
     * Called by placelist.php
     *
     * @param string $placelevels
     */
    public function createMap($placelevels)
    {
        global $level, $levelm, $plzoom, $controller, $WT_TREE;
        Database::updateSchema(self::SCHEMA_MIGRATION_PREFIX, self::SCHEMA_SETTING_NAME, self::SCHEMA_TARGET_VERSION);
        $STREETVIEW = $this->getSetting('GM_USE_STREETVIEW');
        $parent = Filter::getArray('parent');
        // create the map
        echo '<table style="margin:20px auto 0 auto;"><tr valign="top"><td>';
        //<!-- start of map display -->
        echo '<table><tr valign="top">';
        echo '<td class="center" width="200px">';
        $levelm = $this->setLevelMap($level, $parent);
        $latlng = Database::prepare("SELECT pl_place, pl_id, pl_lati, pl_long, pl_zoom, sv_long, sv_lati, sv_bearing, sv_elevation, sv_zoom FROM `##placelocation` WHERE pl_id=?")->execute(array($levelm))->fetch(PDO::FETCH_ASSOC);
        if ($STREETVIEW && $level != 0) {
            echo '<div id="place_map" style="margin-top:20px; border:1px solid gray; width: ', $this->getSetting('GM_PH_XSIZE'), 'px; height: ', $this->getSetting('GM_PH_YSIZE'), 'px; ';
        } else {
            echo '<div id="place_map" style="border:1px solid gray; width:', $this->getSetting('GM_PH_XSIZE'), 'px; height:', $this->getSetting('GM_PH_YSIZE'), 'px; ';
        }
        echo "\"><i class=\"icon-loading-large\"></i></div>";
        echo '</td>';
        echo '<script src="', $this->googleMapsScript(), '"></script>';
        $plzoom = $latlng['pl_zoom'];
        // Map zoom level
        if (Auth::isAdmin()) {
            $placecheck_url = 'module.php?mod=googlemap&amp;mod_action=admin_placecheck';
            if ($parent && isset($parent[0])) {
                $placecheck_url .= '&amp;country=' . $parent[0];
                if (isset($parent[1])) {
                    $placecheck_url .= '&amp;state=' . $parent[1];
                }
            }
            $adminplaces_url = 'module.php?mod=googlemap&amp;mod_action=admin_places';
            if ($latlng && isset($latlng['pl_id'])) {
                $adminplaces_url .= '&amp;parent=' . $latlng['pl_id'];
            }
            echo '</tr><tr><td>';
            echo '<a href="module.php?mod=googlemap&amp;mod_action=admin_config">', I18N::translate('Google Maps™ preferences'), '</a>';
            echo '&nbsp;|&nbsp;';
            echo '<a href="' . $adminplaces_url . '">', I18N::translate('Geographic data'), '</a>';
            echo '&nbsp;|&nbsp;';
            echo '<a href="' . $placecheck_url . '">', I18N::translate('Place check'), '</a>';
            if (Module::getModuleByName('batch_update')) {
                $placelevels = preg_replace('/, ' . I18N::translate('unknown') . '/', ', ', $placelevels);
                // replace ", unknown" with ", "
                $placelevels = substr($placelevels, 2);
                // remove the leading ", "
                if ($placelevels) {
                    $batchupdate_url = 'module.php?mod=batch_update&amp;mod_action=admin_batch_update&amp;plugin=BatchUpdateSearchReplacePlugin&amp;method=exact&amp;ged=' . $WT_TREE->getNameHtml() . '&amp;search=' . urlencode($placelevels);
                    // exact match
                    echo '&nbsp;|&nbsp;';
                    echo '<a href="' . $batchupdate_url . '">', I18N::translate('Batch update'), '</a>';
                }
            }
        }
        echo '</td></tr></table>';
        echo '</td>';
        echo '<td style="margin-left:15px; float:right;">';
        if ($STREETVIEW) {
            $controller->addInlineJavascript('
				function update_sv_params(placeid) {
					var svlati = document.getElementById("sv_latiText").value.slice(0, -1);
					var svlong = document.getElementById("sv_longText").value.slice(0, -1);
					var svbear = document.getElementById("sv_bearText").value.slice(0, -1);
					var svelev = document.getElementById("sv_elevText").value.slice(0, -1);
					var svzoom = document.getElementById("sv_zoomText").value;
					win03 = window.open("module.php?mod=googlemap&mod_action=places_edit&action=update_sv_params&placeid="+placeid+"&svlati="+svlati+"&svlong="+svlong+"&svbear="+svbear+"&svelev="+svelev+"&svzoom="+svzoom, "win03", indx_window_specs);
					if (window.focus) {win03.focus();}
				}
			');
            global $pl_lati, $pl_long;
            if ($level >= 1) {
                $pl_lati = str_replace(array('N', 'S', ','), array('', '-', '.'), $latlng['pl_lati']);
                // WT_placelocation lati
                $pl_long = str_replace(array('E', 'W', ','), array('', '-', '.'), $latlng['pl_long']);
                // WT_placelocation long
                // Check if Streetview location parameters are stored in database
                $placeid = $latlng['pl_id'];
                // Placelocation place id
                $sv_lat = $latlng['sv_lati'];
                // StreetView Point of View Latitude
                $sv_lng = $latlng['sv_long'];
                // StreetView Point of View Longitude
                $sv_dir = $latlng['sv_bearing'];
                // StreetView Point of View Direction (degrees from North)
                $sv_pitch = $latlng['sv_elevation'];
                // StreetView Point of View Elevation (+90 to -90 degrees (+=down, -=up)
                $sv_zoom = $latlng['sv_zoom'];
                // StreetView Point of View Zoom (0, 1, 2 or 3)
                // Check if Street View Lati/Long are the default of 0, if so use regular Place Lati/Long to set an initial location for the panda
                if ($latlng['sv_lati'] == 0 && $latlng['sv_long'] == 0) {
                    $sv_lat = $pl_lati;
                    $sv_lng = $pl_long;
                }
                ?>
				<div>
				<iframe style="background: transparent; margin-top: -3px; margin-left: 2px; width: 530px; height: 405px; padding: 0; border: 0;" src="module.php?mod=googlemap&amp;mod_action=wt_street_view&amp;x=<?php 
                echo $sv_lng;
                ?>
&amp;y=<?php 
                echo $sv_lat;
                ?>
&amp;z=18&amp;t=2&amp;c=1&amp;s=1&amp;b=<?php 
                echo $sv_dir;
                ?>
&amp;p=<?php 
                echo $sv_pitch;
                ?>
&amp;m=<?php 
                echo $sv_zoom;
                ?>
&amp;j=1&amp;k=1&amp;v=1" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe>
				</div>

				<?php 
                $list_latlon = GedcomTag::getLabel('LATI') . "<input name='sv_latiText' id='sv_latiText' type='text' style='width:42px; background:none; border:none;' value='" . $sv_lat . "'>" . GedcomTag::getLabel('LONG') . "<input name='sv_longText' id='sv_longText' type='text' style='width:42px; background:none; border:none;' value='" . $sv_lng . "'>" . I18N::translate('Bearing') . "<input name='sv_bearText' id='sv_bearText' type='text' style='width:46px; background:none; border:none;' value='" . $sv_dir . "'>" . I18N::translate('Elevation') . "<input name='sv_elevText' id='sv_elevText' type='text' style='width:30px; background:none; border:none;' value='" . $sv_pitch . "'>" . I18N::translate('Zoom') . "<input name='sv_zoomText' id='sv_zoomText' type='text' style='width:30px; background:none; border:none;' value='" . $sv_zoom . "'>\n\t\t\t\t";
                if (Auth::isAdmin()) {
                    echo "<table align=\"center\" style=\"margin-left:6px; border:solid 1px black; width:522px; margin-top:-28px; background:#cccccc; \">";
                } else {
                    echo "<table align=\"center\" style=\"display:none; \">";
                }
                echo "<tr><td>";
                echo "<form style=\"text-align:left; margin-left:5px; font:11px verdana; color:blue;\" method=\"post\" action=\"\">";
                echo $list_latlon;
                echo "<input type=\"submit\" name=\"Submit\" onclick=\"update_sv_params({$placeid});\" value=\"", I18N::translate('save'), "\">";
                echo "</form>";
                echo "</td></tr>";
                echo "</table>";
            }
            // Next line puts Place hierarchy on new row -----
            echo '</td></tr><tr>';
        }
        // End Streetview window ===================================================================
    }
Example #7
0
    /**
     * Called by placelist.php
     */
    public function createMap()
    {
        global $level, $levelm, $plzoom, $WT_TREE;
        Database::updateSchema(self::SCHEMA_MIGRATION_PREFIX, self::SCHEMA_SETTING_NAME, self::SCHEMA_TARGET_VERSION);
        $STREETVIEW = (bool) $this->getSetting('GM_USE_STREETVIEW');
        $parent = Filter::getArray('parent');
        $levelm = $this->setLevelMap($level, $parent);
        $latlng = Database::prepare("SELECT pl_place, pl_id, pl_lati, pl_long, pl_zoom, sv_long, sv_lati, sv_bearing, sv_elevation, sv_zoom FROM `##placelocation` WHERE pl_id=?")->execute(array($levelm))->fetch(PDO::FETCH_ASSOC);
        echo '<table style="margin:auto; border-collapse: collapse;">';
        echo '<tr style="vertical-align:top;"><td>';
        if ($STREETVIEW && $level != 0) {
            // Leave space for the Street View buttons, so that the maps align vertically
            echo '<div id="place_map" style="margin-top:25px; border:1px solid gray; width: ', $this->getSetting('GM_PH_XSIZE'), 'px; height: ', $this->getSetting('GM_PH_YSIZE'), 'px; ';
        } else {
            echo '<div id="place_map" style="border:1px solid gray; width:', $this->getSetting('GM_PH_XSIZE'), 'px; height:', $this->getSetting('GM_PH_YSIZE'), 'px; ';
        }
        echo '"><i class="icon-loading-large"></i></div>';
        echo '<script src="', $this->googleMapsScript(), '"></script>';
        $plzoom = $latlng['pl_zoom'];
        // Map zoom level
        if (Auth::isAdmin()) {
            $placecheck_url = 'module.php?mod=googlemap&amp;mod_action=admin_placecheck';
            if ($parent && isset($parent[0])) {
                $placecheck_url .= '&amp;country=' . $parent[0];
                if (isset($parent[1])) {
                    $placecheck_url .= '&amp;state=' . $parent[1];
                }
            }
            $adminplaces_url = 'module.php?mod=googlemap&amp;mod_action=admin_places';
            if ($latlng && isset($latlng['pl_id'])) {
                $adminplaces_url .= '&amp;parent=' . $latlng['pl_id'];
            }
            $update_places_url = 'admin_trees_places.php?ged=' . $WT_TREE->getNameHtml() . '&amp;search=' . urlencode(implode(', ', array_reverse($parent)));
            echo '<div class="gm-options">';
            echo '<a href="module.php?mod=googlemap&amp;mod_action=admin_config">', I18N::translate('Google Maps™ preferences'), '</a>';
            echo ' | <a href="' . $adminplaces_url . '">' . I18N::translate('Geographic data') . '</a>';
            echo ' | <a href="' . $placecheck_url . '">' . I18N::translate('Place check') . '</a>';
            echo ' | <a href="' . $update_places_url . '">' . I18N::translate('Update place names') . '</a>';
            echo '</div>';
        }
        echo '</td>';
        if ($STREETVIEW) {
            echo '<td>';
            global $pl_lati, $pl_long;
            if ($level >= 1) {
                $pl_lati = strtr($latlng['pl_lati'], array('N' => '', 'S' => '-', ',' => '.'));
                // WT_placelocation lati
                $pl_long = strtr($latlng['pl_long'], array('E' => '', 'W' => '-', ',' => '.'));
                // WT_placelocation long
                // Check if Streetview location parameters are stored in database
                $placeid = $latlng['pl_id'];
                // Placelocation place id
                $sv_lat = $latlng['sv_lati'];
                // StreetView Point of View Latitude
                $sv_lng = $latlng['sv_long'];
                // StreetView Point of View Longitude
                $sv_dir = $latlng['sv_bearing'];
                // StreetView Point of View Direction (degrees from North)
                $sv_pitch = $latlng['sv_elevation'];
                // StreetView Point of View Elevation (+90 to -90 degrees (+=down, -=up)
                $sv_zoom = $latlng['sv_zoom'];
                // StreetView Point of View Zoom (0, 1, 2 or 3)
                // Check if Street View Lati/Long are the default of 0, if so use regular Place Lati/Long to set an initial location for the panda
                if ($latlng['sv_lati'] == 0 && $latlng['sv_long'] == 0) {
                    $sv_lat = $pl_lati;
                    $sv_lng = $pl_long;
                }
                $frameheight = $this->getSetting('GM_PH_YSIZE') + 35;
                // Add height of buttons
                ?>
				<iframe class="gm-streetview-frame" style="height: <?php 
                echo $frameheight;
                ?>
px;" src="module.php?mod=googlemap&amp;mod_action=wt_street_view&amp;x=<?php 
                echo $sv_lng;
                ?>
&amp;y=<?php 
                echo $sv_lat;
                ?>
&amp;z=18&amp;t=2&amp;c=1&amp;s=1&amp;b=<?php 
                echo $sv_dir;
                ?>
&amp;p=<?php 
                echo $sv_pitch;
                ?>
&amp;m=<?php 
                echo $sv_zoom;
                ?>
&amp;j=1&amp;k=1&amp;v=1"></iframe>
				<?php 
                if (Auth::isAdmin()) {
                    ?>
					<div class="gm-streetview-parameters">
						<form method="post" action="module.php?mod=googlemap&amp;mod_action=places_edit">
							<?php 
                    echo Filter::getCsrf();
                    ?>
							<input type='hidden' name='placeid' value='<?php 
                    echo $placeid;
                    ?>
'>
							<input type='hidden' name='action' value='update_sv_params'>
							<input type='hidden' name='destination' value='<?php 
                    echo Filter::server("REQUEST_URI");
                    ?>
'>
							<label for='sv_latiText'><?php 
                    echo GedcomTag::getLabel('LATI');
                    ?>
</label>
							<input name='sv_latiText' id='sv_latiText' type='text' title="<?php 
                    echo $sv_lat;
                    ?>
" style='width:42px;' value='<?php 
                    echo $sv_lat;
                    ?>
'>
							<label for='sv_longText'><?php 
                    echo GedcomTag::getLabel('LONG');
                    ?>
</label>
							<input name='sv_longText' id='sv_longText' type='text' title="<?php 
                    echo $sv_lng;
                    ?>
" style='width:42px;' value='<?php 
                    echo $sv_lng;
                    ?>
'>
							<label for='sv_bearText'><?php 
                    echo I18N::translate('Bearing');
                    ?>
</label>
							<input name='sv_bearText' id='sv_bearText' type='text' style='width:30px;' value='<?php 
                    echo $sv_dir;
                    ?>
'>
							<label for='sv_elevText'><?php 
                    echo I18N::translate('Elevation');
                    ?>
</label>
							<input name='sv_elevText' id='sv_elevText' type='text' style='width:30px;' value='<?php 
                    echo $sv_pitch;
                    ?>
'>
							<label for='sv_zoomText'><?php 
                    echo I18N::translate('Zoom');
                    ?>
</label>
							<input name='sv_zoomText' id='sv_zoomText' type='text' style='width:30px;' value='<?php 
                    echo $sv_zoom;
                    ?>
'>
							<input type="submit" name="Submit" value="<?php 
                    echo I18N::translate('save');
                    ?>
">
						</form>
					</div>
					<?php 
                }
            }
            echo '</td>';
        }
        echo '</tr></table>';
    }
Example #8
0
 /** {@inheritdoc} */
 public function getMenu()
 {
     global $controller;
     if (!Auth::isSearchEngine()) {
         Database::updateSchema(self::SCHEMA_MIGRATION_PREFIX, self::SCHEMA_SETTING_NAME, self::SCHEMA_TARGET_VERSION);
         static $menu;
         // Function has already run
         if ($menu !== null && count($menu->getSubmenus()) > 0) {
             return $menu;
         }
         $FTV_SETTINGS = unserialize($this->getSetting('FTV_SETTINGS'));
         if (!empty($FTV_SETTINGS)) {
             foreach ($FTV_SETTINGS as $FTV_ITEM) {
                 if ($FTV_ITEM['TREE'] == $this->tree_id && !empty($FTV_ITEM['PID']) && $FTV_ITEM['ACCESS_LEVEL'] >= Auth::accessLevel($this->tree)) {
                     $FTV_GED_SETTINGS[] = $FTV_ITEM;
                 }
             }
             if (!empty($FTV_GED_SETTINGS)) {
                 if (Theme::theme()->themeId() !== '_administration') {
                     // load the module stylesheets
                     echo $this->module()->getStylesheet();
                     // add javascript files and scripts
                     $this->module()->includeJs($controller, 'menu');
                     if (WT_SCRIPT_NAME === 'individual.php') {
                         $this->module()->includeJs($controller, 'tab');
                     }
                 }
                 $tree_name = Filter::escapeUrl($this->tree->getName());
                 $menu = new Menu(I18N::translate('Family tree overview'), 'module.php?mod=' . $this->getName() . '&amp;mod_action=page&amp;rootid=' . $FTV_GED_SETTINGS[0]['PID'] . '&amp;ged=' . $tree_name, 'menu-fancy_treeview');
                 foreach ($FTV_GED_SETTINGS as $FTV_ITEM) {
                     $record = Individual::getInstance($FTV_ITEM['PID'], $this->tree);
                     if ($record && $record->canShowName()) {
                         if ($this->module()->options('use_fullname') == true) {
                             $submenu = new Menu(I18N::translate('Descendants of %s', $record->getFullName()), 'module.php?mod=' . $this->getName() . '&amp;mod_action=page&amp;rootid=' . $FTV_ITEM['PID'] . '&amp;ged=' . $tree_name, 'menu-fancy_treeview-' . $FTV_ITEM['PID']);
                         } else {
                             $submenu = new Menu(I18N::translate('Descendants of the %s family', $FTV_ITEM['SURNAME']), 'module.php?mod=' . $this->getName() . '&amp;mod_action=page&amp;rootid=' . $FTV_ITEM['PID'] . '&amp;ged=' . $tree_name, 'menu-fancy_treeview-' . $FTV_ITEM['PID']);
                         }
                         $menu->addSubmenu($submenu);
                     }
                 }
                 if (count($menu->getSubmenus()) > 0) {
                     return $menu;
                 }
             }
         }
     }
 }
Example #9
0
 /**
  * {@inheritDoc}
  * @see \Fisharebest\Webtrees\Module\ModuleConfigInterface::getConfigLink()
  */
 public function getConfigLink()
 {
     Database::updateSchema(self::SCHEMA_MIGRATION_PREFIX, self::SCHEMA_SETTING_NAME, self::SCHEMA_TARGET_VERSION);
     return 'module.php?mod=' . $this->getName() . '&amp;mod_action=AdminConfig';
 }