Index: branches/2.8.x/CHANGELOG
===================================================================
--- branches/2.8.x/CHANGELOG	(revision 1938)
+++ branches/2.8.x/CHANGELOG	(revision 1939)
@@ -11,6 +11,8 @@
 ! = Update/Change
 ===============================================================================
 
+25 Jul-2013 Build 1939 M.v.d.Decken(DarkViper)
++ added module MultiLingual to basic packet
 25 Jul-2013 Build 1938 M.v.d.Decken(DarkViper)
 ! update Twig template engine to version 1.13.1
 25 Jul-2013 Build 1937 M.v.d.Decken(DarkViper)
Index: branches/2.8.x/wb/admin/interface/version.php
===================================================================
--- branches/2.8.x/wb/admin/interface/version.php	(revision 1938)
+++ branches/2.8.x/wb/admin/interface/version.php	(revision 1939)
@@ -51,5 +51,5 @@
 
 // check if defined to avoid errors during installation (redirect to admin panel fails if PHP error/warnings are enabled)
 if(!defined('VERSION')) define('VERSION', '2.8.3');
-if(!defined('REVISION')) define('REVISION', '1938');
+if(!defined('REVISION')) define('REVISION', '1939');
 if(!defined('SP')) define('SP', '');
Index: branches/2.8.x/wb/modules/MultiLingual/htt/lang.htt
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/htt/lang.htt	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/htt/lang.htt	(revision 1939)
@@ -0,0 +1,36 @@
+{#
+/**
+ *
+ * @category        modules
+ * @package         multilingial
+ * @author          WebsiteBaker Project, Luisehahne
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
+ * @link            http://www.websitebaker2.org/
+ * @license         http://www.gnu.org/licenses/gpl.html
+ * @platform        WebsiteBaker 2.8.x
+ * @requirements    PHP 5.2.2 and higher
+ * @version         $Id:  $
+ * @filesource      $HeadURL:  $
+ * @lastmodified    $Date:  $
+ *
+ */
+#}
+ 
+<div id="langmenu">
+
+<table style="background: transparent;">
+    <tbody>
+    <tr style="background: transparent;">
+{% for file in lang.FILES %}
+    <td style="width:{{ file.LANG_ICON_WIDTH }};vertical-align:middle;">
+    <a class="{{ file.LANG_ICON_CLASS }}" href="{{ file.LANG_PAGE_URL }}" title="{{ file.TEXT_PAGE_TITLE }}">
+    <span>
+    	<img style="border: none;" src="{{ file.URL_ICON_FOLDER }}/{{ file.LANG_ICON }}.{{ file.LANG_ICON_EXT }}" title="{{ file.TEXT_PAGE_TITLE }}" alt="{{ file.TEXT_PAGE_TITLE }}" />
+    </span>
+    </a>
+    </td>
+{% endfor %}
+    </tr>
+    </tbody>
+</table>
+</div>
Index: branches/2.8.x/wb/modules/MultiLingual/htt/index.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/htt/index.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/htt/index.php	(revision 1939)
@@ -0,0 +1,9 @@
+<?php
+// *** This file is generated by WebsiteBaker Ver.2.8.3
+// *** Creation date: 2013-05-26T05:26:07+00:00
+// *** Do not modify this file manually
+// *** WB will rebuild this file from time to time!!
+// *************************************************
+	header('HTTP/1.1 301 Moved Permanently');
+	header('Location: ../../../index.php');
+// *************************************************
Index: branches/2.8.x/wb/modules/MultiLingual/tpl/lang.tpl
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/tpl/lang.tpl	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/tpl/lang.tpl	(revision 1939)
@@ -0,0 +1,29 @@
+{#
+/**
+ *
+ * @category        modules
+ * @package         MultiLingial
+ * @author          WebsiteBaker Project, Luisehahne
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
+ * @link            http://www.websitebaker2.org/
+ * @license         http://www.gnu.org/licenses/gpl.html
+ * @platform        WebsiteBaker 2.8.x
+ * @requirements    PHP 5.2.2 and higher
+ * @version         $Id:  $
+ * @filesource      $HeadURL:  $
+ * @lastmodified    $Date:  $
+ *
+ */
+#}
+ 
+<div id="langmenu">
+{% for file in lang.FILES %}
+    <span style="width:{{ file.LANG_ICON_WIDTH }};vertical-align:middle;">
+    <a class="{{ file.LANG_ICON_CLASS }}" href="{{ file.LANG_PAGE_URL }}" title="{{ file.TEXT_PAGE_TITLE }}">
+    <span>
+    	<img style="border: none;" src="{{ file.URL_ICON_FOLDER }}/{{ file.LANG_ICON }}.{{ file.LANG_ICON_EXT }}" title="{{ file.TEXT_PAGE_TITLE }}" alt="{{ file.TEXT_PAGE_TITLE }}" />
+    </span>
+    </a>
+    </span>
+{% endfor %}
+</div>
Index: branches/2.8.x/wb/modules/MultiLingual/tpl/index.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/tpl/index.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/tpl/index.php	(revision 1939)
@@ -0,0 +1,9 @@
+<?php
+// *** This file is generated by WebsiteBaker Ver.2.8.3
+// *** Creation date: 2013-05-26T05:26:07+00:00
+// *** Do not modify this file manually
+// *** WB will rebuild this file from time to time!!
+// *************************************************
+	header('HTTP/1.1 301 Moved Permanently');
+	header('Location: ../../../index.php');
+// *************************************************
Index: branches/2.8.x/wb/modules/MultiLingual/tpl/lang.html.twig
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/tpl/lang.html.twig	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/tpl/lang.html.twig	(revision 1939)
@@ -0,0 +1,45 @@
+{#
+/**
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * lang.twig
+ *
+ * @category     Modules
+ * @package      Modules_MultiLingual
+ * @author       Werner v.d.Decken <wkl@isteam.de>
+ * @author       Dietmar Wöllbrink <dietmar.woellbrink@websiteBaker.org>
+ * @copyright    Werner v.d.Decken <wkl@isteam.de>
+ * @license      http://www.gnu.org/licenses/gpl.html   GPL License
+ * @version      1.6.8
+ * @revision     $Revision: $
+ * @link         $HeadURL: $
+ * @lastmodified $Date: $
+ * @since        File available since 09.01.2013
+ * @description  xyz
+ */
+#}
+<div id="langmenu">
+{% for aTarget in aTargetList %}
+ <a href="{{ aTarget.sUrl }}" {% if aTarget.bCurrent %}class="current" {% endif %}title="{{ aTarget.sTitle }}">
+<span>
+  <img src="{{ aTarget.sIconUrl }}/flags/{{ aTarget.FilePrefix }}.png" class="width: 32px; height: 32px" 
+     title="{{ aTarget.sTitle }}" alt="{{ aTarget.sLongTitle }}" />
+    </span>
+ </a>
+{% endfor %}
+</div>
\ No newline at end of file
Index: branches/2.8.x/wb/modules/MultiLingual/uninstall.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/uninstall.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/uninstall.php	(revision 1939)
@@ -0,0 +1,43 @@
+<?php
+/**
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * uninstall.php
+ *
+ * @category     Modules
+ * @package      Modules_MultiLingual
+ * @author       Werner v.d.Decken <wkl@isteam.de>
+ * @author       Dietmar Wöllbrink <dietmar.woellbrink@websiteBaker.org>
+ * @copyright    Werner v.d.Decken <wkl@isteam.de>
+ * @license      http://www.gnu.org/licenses/gpl.html   GPL License
+ * @version      1.6.8
+ * @revision     $Revision: $
+ * @link         $HeadURL: $
+ * @lastmodified $Date: $
+ * @since        File available since 09.01.2013
+ * @description  xyz
+ */
+
+/* -------------------------------------------------------- */
+// Must include code to stop this file being accessed directly
+if(!defined('WB_URL')) {
+	require_once(dirname(dirname(dirname(__FILE__))).'/framework/globalExceptionHandler.php');
+	throw new IllegalFileException();
+}
+/* -------------------------------------------------------- */
+
Index: branches/2.8.x/wb/modules/MultiLingual/info.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/info.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/info.php	(revision 1939)
@@ -0,0 +1,45 @@
+<?php
+/**
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * info.php
+ *
+ * @category     Modules
+ * @package      Modules_MultiLingual
+ * @author       Werner v.d.Decken <wkl@isteam.de>
+ * @author       Dietmar Wöllbrink <dietmar.woellbrink@websiteBaker.org>
+ * @copyright    Werner v.d.Decken <wkl@isteam.de>
+ * @license      http://www.gnu.org/licenses/gpl.html   GPL License
+ * @version      1.6.8
+ * @revision     $Revision: $
+ * @link         $HeadURL: $
+ * @lastmodified $Date: $
+ * @since        File available since 09.01.2013
+ * @description  provides a flexible posibility for changeing to a translated page
+ */
+
+$module_directory = 'MultiLingual';
+$module_name = 'MultiLingual Switcher 1.6.8';
+$module_function = 'snippet';
+$module_version = '1.6.8';
+$module_status	= 'alpha';
+$module_platform = '2.8.4';
+$module_author = 'Luisehahne';
+$module_license = 'GNU General Public License';
+$module_requirements = 'min. PHP 5.2.2 and WB 2.8.4 or higher';
+$module_description = 'This snippet switches between different languages';
Index: branches/2.8.x/wb/modules/MultiLingual/default.ini
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/default.ini	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/default.ini	(revision 1939)
@@ -0,0 +1,21 @@
+;<?php exit(); ?>
+;###############################################################################
+;###                                                                         ###
+;###   configurable settings for MultiLanguage                               ###
+;###                                                                         ###
+;###############################################################################
+;
+[twig-loader-file]
+; settings for Twig_Loader_Filesystem
+templates_dir    = "/tpl"
+default_template = "lang.html.twig"
+;
+[twig-environment]
+; settings for the Twig_Environment
+autoescape          = false
+cache               = false
+strict_variables    = false
+debug               = true
+auto_reload         = false
+base_template_class = false
+;
\ No newline at end of file
Index: branches/2.8.x/wb/modules/MultiLingual/update_keys.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/update_keys.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/update_keys.php	(revision 1939)
@@ -0,0 +1,68 @@
+<?php
+/**
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * update_keys.php
+ *
+ * @category     Modules
+ * @package      Modules_MultiLingual
+ * @author       Werner v.d.Decken <wkl@isteam.de>
+ * @author       Dietmar Wöllbrink <dietmar.woellbrink@websiteBaker.org>
+ * @copyright    Werner v.d.Decken <wkl@isteam.de>
+ * @license      http://www.gnu.org/licenses/gpl.html   GPL License
+ * @version      1.6.8
+ * @revision     $Revision: $
+ * @link         $HeadURL: $
+ * @lastmodified $Date: $
+ * @since        File available since 09.01.2013
+ * @description  xyz
+ */
+
+// Create new admin object
+if(!defined('WB_URL'))
+{
+    $config_file = realpath('../../config.php');
+    if(file_exists($config_file) && !defined('WB_URL'))
+    {
+    	require($config_file);
+    }
+}
+
+$mod_path = dirname(__FILE__);
+//$mod_rel = str_replace($_SERVER['DOCUMENT_ROOT'],'',str_replace('\\', '/', $mod_path ));
+$mod_name = basename($mod_path);
+
+// Get page id
+// Include WB admin wrapper script
+// Tells script to update when this page was last updated
+$update_when_modified = false; 
+require(WB_PATH.'/modules/admin.php');
+$temp_page_id =  intval( htmlentities($page_id ) );
+
+$mLang = ModLanguage::getInstance();
+$mLang->setLanguage(dirname(__FILE__).'/languages/', LANGUAGE, DEFAULT_LANGUAGE);
+
+// check for page languages
+$oPageLang = new m_MultiLingual_Lib();
+$Result = $oPageLang->updateDefaultPagesCode(); 
+if($database->is_error())
+{
+	$admin->print_error($database->get_error(), ADMIN_URL.'/pages/settings.php?page_id='.$temp_page_id );
+} else {
+	$admin->print_success($mLang->MESSAGE_PAGES_UPDATE_SETTINGS, ADMIN_URL.'/pages/settings.php?page_id='.$temp_page_id );
+}
Index: branches/2.8.x/wb/modules/MultiLingual/frontend.css
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/frontend.css	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/frontend.css	(revision 1939)
@@ -0,0 +1,28 @@
+.anchor { margin :3px auto; }
+div#langmenu {
+   display :block;
+   float :right;
+   margin : 1px auto;
+   min-height : 25px;
+   padding :2px;
+   position : relative;
+   text-align :center;
+   width :100%;
+}
+div#langmenu img { border :0; }
+div#langmenu a.default span img {
+   filter :alpha(opacity=100);
+   -moz-opacity :1.0;
+   -khtml-opacity :1.0;
+   opacity :1.0;
+   vertical-align : baseline;
+}
+div#langmenu a:hover span img, 
+div#langmenu a.current span img {
+   background :transparent;
+   filter :alpha(opacity=30);
+   -khtml-opacity :0.3;
+   -moz-opacity :.3;
+   opacity :.3;
+   vertical-align : baseline;
+}
Index: branches/2.8.x/wb/modules/MultiLingual/languages/NL.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/languages/NL.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/languages/NL.php	(revision 1939)
@@ -0,0 +1,28 @@
+<?php
+/**
+ *
+ * @category        modules
+ * @package         multilingial
+ * @author          WebsiteBaker Project, Luisehahne
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
+ * @link			http://www.websitebaker2.org/
+ * @license         http://www.gnu.org/licenses/gpl.html
+ * @platform        WebsiteBaker 2.8.x
+ * @requirements    PHP 5.2.2 and higher
+ * @version         $Id:  $
+ * @filesource		$HeadURL:  $
+ * @lastmodified    $Date:  $
+ *
+ */
+
+// Set the language information
+$language_code = 'NL';
+$language_name = 'Nederlands';
+$language_version = '2.8.4';
+$language_platform = '2.8.x';
+$language_author = 'Stefan Braunewell, Matthias Gallas';
+$language_license = 'GNU General Public License';
+
+$MENU['LANG_PAGES'] = 'Taal Pages';
+$LANG['NL'] = 'Nederlands';
+$MESSAGE['PAGES_UPDATE_SETTINGS'] = 'Tags zijn bijgewerkt ';
Index: branches/2.8.x/wb/modules/MultiLingual/languages/EN.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/languages/EN.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/languages/EN.php	(revision 1939)
@@ -0,0 +1,28 @@
+<?php
+/**
+ *
+ * @category        modules
+ * @package         multilingial
+ * @author          WebsiteBaker Project, Luisehahne
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
+ * @link			http://www.websitebaker2.org/
+ * @license         http://www.gnu.org/licenses/gpl.html
+ * @platform        WebsiteBaker 2.8.x
+ * @requirements    PHP 5.2.2 and higher
+ * @version         $Id:  $
+ * @filesource		$HeadURL:  $
+ * @lastmodified    $Date:  $
+ *
+ */
+
+// Set the language information
+$language_code = 'EN';
+$language_name = 'English';
+$language_version = '2.8.4';
+$language_platform = '2.8.x';
+$language_author = 'Stefan Braunewell, Matthias Gallas';
+$language_license = 'GNU General Public License';
+
+$MENU['LANG_PAGES'] = 'Languagepages';
+$LANG['EN'] = 'english';
+$MESSAGE['PAGES_UPDATE_SETTINGS'] = 'Catchwords were updated';
Index: branches/2.8.x/wb/modules/MultiLingual/languages/FR.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/languages/FR.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/languages/FR.php	(revision 1939)
@@ -0,0 +1,28 @@
+<?php
+/**
+ *
+ * @category        modules
+ * @package         multilingial
+ * @author          WebsiteBaker Project, Luisehahne
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
+ * @link			http://www.websitebaker2.org/
+ * @license         http://www.gnu.org/licenses/gpl.html
+ * @platform        WebsiteBaker 2.8.x
+ * @requirements    PHP 5.2.2 and higher
+ * @version         $Id:  $
+ * @filesource		$HeadURL:  $
+ * @lastmodified    $Date:  $
+ *
+ */
+
+// Set the language information
+$language_code = 'FR';
+$language_name = 'Fran&ccedil;ais';
+$language_version = '2.8';
+$language_platform = '2.8.x';
+$language_author = 'Stefan Braunewell, Matthias Gallas';
+$language_license = 'GNU General Public License';
+
+$MENU['LANG_PAGES'] = 'Pages linguistiques';
+$LANG['FR'] = 'Fran&ccedil;ais';
+$MESSAGE['PAGES_UPDATE_SETTINGS'] = 'Des balises ont &eacute;t&eacute; mis &agrave; jour';
Index: branches/2.8.x/wb/modules/MultiLingual/languages/index.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/languages/index.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/languages/index.php	(revision 1939)
@@ -0,0 +1,9 @@
+<?php
+// *** This file is generated by WebsiteBaker Ver.2.8.3
+// *** Creation date: 2013-05-26T05:26:07+00:00
+// *** Do not modify this file manually
+// *** WB will rebuild this file from time to time!!
+// *************************************************
+	header('HTTP/1.1 301 Moved Permanently');
+	header('Location: ../../../index.php');
+// *************************************************
Index: branches/2.8.x/wb/modules/MultiLingual/languages/DE.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/languages/DE.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/languages/DE.php	(revision 1939)
@@ -0,0 +1,29 @@
+<?php
+/**
+ *
+ * @category        modules
+ * @package         multilingial
+ * @author          WebsiteBaker Project, Luisehahne
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
+ * @link			http://www.websitebaker2.org/
+ * @license         http://www.gnu.org/licenses/gpl.html
+ * @platform        WebsiteBaker 2.8.x
+ * @requirements    PHP 5.2.2 and higher
+ * @version         $Id:  $
+ * @filesource		$HeadURL:  $
+ * @lastmodified    $Date:  $
+ *
+ */
+
+// Set the language information
+$language_code = 'DE';
+$language_name = 'Deutsch';
+$language_version = '2.8.4';
+$language_platform = '2.8.x';
+$language_author = 'Stefan Braunewell, Matthias Gallas';
+$language_license = 'GNU General Public License';
+
+$MENU['LANG_PAGES'] = 'Sprachseiten';
+$LANG['DE'] = 'deutsch';
+$MESSAGE['PAGES_UPDATE_SETTINGS'] = 'Schlagwörter wurden aktualisiert';
+$TEXT['PAGE_TITLE'] = 'Sprachseiten';
Index: branches/2.8.x/wb/modules/MultiLingual/include.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/include.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/include.php	(revision 1939)
@@ -0,0 +1,46 @@
+<?php
+/**
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * include.php
+ *
+ * @category     Modules
+ * @package      Modules_MultiLingual
+ * @author       Werner v.d.Decken <wkl@isteam.de>
+ * @author       Dietmar Wöllbrink <dietmar.woellbrink@websiteBaker.org>
+ * @copyright    Werner v.d.Decken <wkl@isteam.de>
+ * @license      http://www.gnu.org/licenses/gpl.html   GPL License
+ * @version      0.0.1
+ * @revision     $Revision: $
+ * @link         $HeadURL: $
+ * @lastmodified $Date: $
+ * @since        File available since 09.01.2013
+ * @description  provides a flexible posibility for changeing to a translated page
+ */
+
+if(!function_exists('language_menu'))
+{
+	function language_menu()
+	{
+		global $wb;
+		if ( $wb->page_id  < 1){ return false; }
+		$oPageLang = new m_MultiLingual_Lib();
+		$sRetVal = $oPageLang->getLangMenu();
+		return $sRetVal;
+	}
+}
Index: branches/2.8.x/wb/modules/MultiLingual/readme.txt
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/readme.txt	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/readme.txt	(revision 1939)
@@ -0,0 +1,21 @@
+If you wish to modify the template, just open the file /modules/MultiLingual/tpl/lang.html.twig
+
+##########################################################################
+
+Simple usage:
+<?php if(function_exists('language_menu')){ echo language_menu(); } ?>
+
+##########################################################################
+
+advanced usage:
+<?php
+$langFunction = '';
+// check if multiligual module is installed, default is off,
+if(function_exists('language_menu')){ $langFunction = language_menu(); }
+$multilang_flag = intval(($langFunction)!='');
+$aStart       = SM2_ROOT+$multilang_flag;
+echo $langFunction;
+
+?>
+$aStart defines the start level from show_menu2
+
Index: branches/2.8.x/wb/modules/MultiLingual/Lib.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/Lib.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/Lib.php	(revision 1939)
@@ -0,0 +1,299 @@
+<?php
+/**
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Lib.php
+ *
+ * @category     Modules
+ * @package      Modules_MultiLingual
+ * @author       Werner v.d.Decken <wkl@isteam.de>
+ * @author       Dietmar Wöllbrink <dietmar.woellbrink@websiteBaker.org>
+ * @copyright    Werner v.d.Decken <wkl@isteam.de>
+ * @license      http://www.gnu.org/licenses/gpl.html   GPL License
+ * @version      1.6.8
+ * @revision     $Revision: $
+ * @link         $HeadURL: $
+ * @lastmodified $Date: $
+ * @since        File available since 09.01.2013
+ * @description  provides a flexible posibility for changeing to a translated page
+ */
+
+class m_MultiLingual_Lib {
+/** @var object instance of the WbAdaptor object */
+	protected $_oReg = null;
+/** @var object instance of the application object */
+	private $_oApp     = null;
+/** @var object instance of the database object */
+	private $_oDb      = null;
+
+	private $_defaultPageId = 0;
+
+
+/** @var array holds several values from the default.ini */	
+	private $_config     = array();
+/** @var array set several values for Twig_Environment */	
+	private $_aTwigEnv = array();
+/** @var array set several values for Twig_Loader */	
+	private $_aTwigLoader = array();
+/**
+ * constructor used to import some application constants and objects
+ */	
+	public function __construct() 
+	{
+		// import global vars and objects
+		$this->_wbAdaptor();
+	}
+
+	/**
+	 * used to import some WB-constants and objects
+	 */	
+	private function _wbAdaptor()
+	{
+		if(!defined('ADMIN_REL')) { define('ADMIN_REL', WB_REL.'/'.ADMIN_DIRECTORY); }
+
+		$this->_oApp   = (isset($GLOBALS['admin']) ? $GLOBALS['admin'] : $GLOBALS['wb']);
+		$this->_oDb    = WbDatabase::getInstance();
+		$this->_oReg = WbAdaptor::getInstance();
+
+		$this->_config = parse_ini_file(dirname(__FILE__).'/default.ini',true);
+		$this->_aTwigEnv = $this->_config['twig-environment'];
+		$this->_aTwigLoader = $this->_config['twig-loader-file'];
+
+	}
+
+	/**
+	 * methode to update a var/value-pair into table
+	 * @param integer $iPageId which page shall be updated
+	 * @param string $sTable the pages table
+	 * @param integer $iEntry 
+	 * @return bool
+	 */ 
+	private function _updatePageCode($iPageId, $sTable, $iNewPageCode = null)
+	{
+		// if new Pagecode is missing then set the own page ID
+		$entry = ( !isset($iNewPageCode) ? $iPageId : $iNewPageCode);
+		$sql = 'UPDATE `'.$this->_oReg->TablePrefix.$sTable.'` '
+		     . 'SET `page_code`='.$entry.', '
+		     .     '`modified_when` = '.time().' '
+		     . 'WHERE `page_id` = '.$iPageId;
+		return (bool)$this->_oDb->query($sql);
+	}
+
+	/**
+	 * compose the needed SQL statement
+	 * @param integer $sLangKey
+	 * @return database object with given SQL statement
+	 */			
+	private function _getLangInUsedDbResult ( $sLangKey='' ) 
+	{
+		$sql = 'SELECT DISTINCT `language`,'
+		     .                 '`page_id`,`level`,`parent`,`root_parent`,`page_code`,`link`,'
+		     .                 '`visibility`,`viewing_groups`,`viewing_users`,`position`,`page_title` '
+		     . 'FROM `'.$this->_oReg->TablePrefix.'pages` '
+		     . 'WHERE `level`= \'0\' '
+		     .   'AND `root_parent`=`page_id` '
+		     .   'AND `visibility`!=\'none\' '
+		     .   'AND `visibility`!=\'hidden\' '
+		     .   ( ($sLangKey!='') ? ' AND `language` = \''.$sLangKey.'\'' : '')
+		     .   'GROUP BY `language` '
+		     .   'ORDER BY `position`';
+		return $this->_oDb->query($sql);
+	}
+
+	/**
+	* 
+	* search for pages with given page code and create a DB result object
+	* @param integer Pagecode to search for
+	* @return object result object or null on error
+	*/
+	private function _getPageCodeDbResult( $iPageCode )
+	{
+		$sql = 'SELECT `language`,'
+		     .        '`page_id`,`level`,`parent`,`root_parent`,`page_code`,`link`,'
+		     .        '`visibility`,`viewing_groups`,`viewing_users`,`position`,`page_title` '
+		     .  'FROM `'.$this->_oReg->TablePrefix.'pages`'
+		     .  'WHERE `page_code` = '.$iPageCode.' '
+		     .  'ORDER BY `position`';
+		return $this->_oDb->query($sql);
+	}
+
+	/**
+	 * compose the needed SQL statement
+	 * @param integer $sLangKey
+	 * @return database object with given SQL statementt
+	 */
+	private function _getLangAddonsDbResult ( $sLangKey='' ) 
+	{
+		$sql = 'SELECT `directory`,`name`  FROM `'.$this->_oReg->TablePrefix.'addons` '
+		     . 'WHERE `type` = \'language\' '
+		     . ( ($sLangKey!='') ? ' AND `directory` = \''.$langKey.'\' ' : '')
+		     . 'ORDER BY `directory`';
+		return $this->_oDb->query($sql);
+	}
+
+	/**
+	 * 
+	 * @param integer $parent
+	 * @return database object with given SQL statement
+	 */
+	private function _getPageListDbResult ( $parent ) 
+	{
+	    $sql = 'SELECT `language`,'
+		     .        '`page_id`,`page_title`,`menu_title`, `page_code`, `parent` '
+		     . 'FROM `'.$this->_oReg->TablePrefix.'pages` '
+		     . 'WHERE `parent` = '.$parent. ' '
+		     . 'ORDER BY `position`';
+		return $this->_oDb->query($sql);
+	}
+
+	private function _getPageCodeValues(  $iPageCode=0 )
+	{
+		$aRetval = array();
+		if( ($oRes = $this->_getPageCodeDbResult($iPageCode)) )
+		{
+			while($page = $oRes->fetchRow(MYSQL_ASSOC))
+			{
+			if(!$this->_oApp->page_is_visible($page)) {continue;}
+			$aRetval[$page['language']] = $page;
+			}
+		}
+		return $aRetval;
+	}
+
+	private function _getPageList($parent, $this_page=0 )
+	{
+		static $entries = array();
+		if( ($oLang = $this->_getPageListDbResult($parent)) )
+		{
+			while($value = $oLang->fetchRow(MYSQL_ASSOC))
+			{
+				if (( $value['page_id'] != $this_page ) )
+				{
+				$entries [$value['page_id']]['language'] = $value['language'];
+				$entries [$value['page_id']]['menu_title'] = $value['menu_title'];
+				$this->_getPageList($value['page_id'], $this_page );
+				}
+			}
+		}
+		return $entries;
+	}
+
+
+
+	private function _getAllowedLanguagesFromAddons($sLangKey='')
+	{
+		$aLangAddons = array();
+		if( ($oLang = $this->_getLangAddonsDbResult($sLangKey)) )
+		{
+			while( $aLang = $oLang->fetchRow(MYSQL_ASSOC) )
+			{
+				$aLangAddons[$aLang['directory']] = $aLang['name'];
+			}
+		}
+		return $aLangAddons;
+	}
+
+	/**
+	 * 
+	 * 
+	 * @param 
+	 * @return array of first visible language pages with defined fields
+	 */
+	private function _getLanguagesDetailsInUsed ( $sLangKey='' ) 
+	{
+		$aRetval = array();
+		if( ($oRes = $this->_getLangInUsedDbResult($sLangKey)) ) 
+		{
+			while($page = $oRes->fetchRow(MYSQL_ASSOC))
+			{
+				if(!$this->_oApp->page_is_visible($page)) {continue;}
+				$aRetval[$page['language']] = $page;
+			}
+		}
+		return $aRetval;
+	}
+	
+	/**
+	* m_MultiLingual_Lib::getLangMenuData()
+	* 
+	* @param mixed $config
+	* @param mixed $oApp
+	* @return
+	*/
+	private function _getLangMenuData ( ) 
+	{
+		$data = array();
+		$SetLanguageUrl = array();
+		$SetLanguageIcons = array();
+		$SetLanguageIcons = $this->_getLanguagesDetailsInUsed( );
+		if(sizeof($SetLanguageIcons)>1) 
+		{
+			$pages = $this->_getPageCodeValues( $this->_oApp->page_code );
+			$tmppage = array_intersect_key($pages,$SetLanguageIcons);
+			$pages = array_merge($SetLanguageIcons,$tmppage);
+			foreach ( $SetLanguageIcons AS $value) 
+			{
+				$data[] = array(
+				      'sIconUrl' => rtrim($this->_oReg->AppRel,'/').str_replace(rtrim($this->_oReg->DocumentRoot,'/'),'',str_replace('\\','/',dirname(__FILE__))),
+				      'bCurrent' => ( ($value['language'] == $this->_oReg->Language ) ? true : false),
+				      'sUrl' => $this->_oReg->AppRel.$this->_oReg->PagesDir.trim($pages[$value['language']]['link'],'/').$this->_oReg->PageExtension,
+				      'sTitle' => $pages[$value['language']]['page_title'],
+				      'FilePrefix' => strtolower($pages[$value['language']]['language']),
+				);
+			}
+		}
+		return $data;
+	}
+
+	/**
+	* m_MultiLingual_Lib::getLangMenu()
+	* 
+	* @param mixed $config
+	* @param mixed $oApp
+	* @return
+	*/
+	private function _getLangMenuTwig ( ) 
+	{
+		$loader = new Twig_Loader_Filesystem( dirname(__FILE__).$this->_aTwigLoader['templates_dir'] );
+		$twig   = new Twig_Environment( $loader );
+		$data['aTargetList']   = $this->_getLangMenuData( );
+		return $twig->render($this->_aTwigLoader['default_template'], $data);
+	}
+
+
+	public function getLangMenu() 
+	{
+		return $this->_getLangMenuTwig ( );
+	}
+
+	public function updateDefaultPagesCode (  ) 
+	{
+		$retVal  = false;
+		$aLangs  = $this->_getLanguagesDetailsInUsed(  );
+		$entries = $this->_getPageList( 0 );
+// fill page_code with page_id for default_language
+		while( list( $page_id, $val ) = each ( $entries ) )
+		{
+			if( $val['language'] == $this->_oReg->DefaultLangauage ) {
+				if( ($retVal = $this->_updatePageCode((int)$page_id, 'pages', (int)$page_id ))==false ){ break;  }
+			}
+		}
+		return $retVal;
+	}
+	
+}
Index: branches/2.8.x/wb/modules/MultiLingual/flags/it.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/it.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/fi.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/fi.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/sk.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/sk.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/da.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/da.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/fr.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/fr.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/nl.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/nl.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/hr.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/hr.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/bg.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/bg.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/de.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/de.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/pl.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/pl.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/hu.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/hu.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/no.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/no.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/fi.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/fi.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/lv.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/lv.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/ca.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/ca.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/pt.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/pt.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/tr.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/tr.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/ru.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/ru.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/fr.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/fr.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/hr.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/hr.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/nl.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/nl.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/pl.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/pl.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/hu.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/hu.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/no.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/no.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/en.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/en.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/lv.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/lv.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/pt.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/pt.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/ca.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/ca.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/cs.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/cs.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/tr.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/tr.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/ru.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/ru.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/es.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/es.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/se.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/se.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/et.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/et.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/index.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/flags/index.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/flags/index.php	(revision 1939)
@@ -0,0 +1,9 @@
+<?php
+// *** This file is generated by WebsiteBaker Ver.2.8.3
+// *** Creation date: 2013-05-26T05:26:07+00:00
+// *** Do not modify this file manually
+// *** WB will rebuild this file from time to time!!
+// *************************************************
+	header('HTTP/1.1 301 Moved Permanently');
+	header('Location: ../../../index.php');
+// *************************************************
Index: branches/2.8.x/wb/modules/MultiLingual/flags/it.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/it.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/sk.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/sk.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/en.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/en.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/da.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/da.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/cs.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/cs.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/bg.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/bg.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/de.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/de.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/es.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/es.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/se.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/se.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/flags/et.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/modules/MultiLingual/flags/et.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/modules/MultiLingual/install.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/install.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/install.php	(revision 1939)
@@ -0,0 +1,42 @@
+<?php
+/**
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * install.php
+ *
+ * @category     Modules
+ * @package      Modules_MultiLingual
+ * @author       Werner v.d.Decken <wkl@isteam.de>
+ * @author       Dietmar Wöllbrink <dietmar.woellbrink@websiteBaker.org>
+ * @copyright    Werner v.d.Decken <wkl@isteam.de>
+ * @license      http://www.gnu.org/licenses/gpl.html   GPL License
+ * @version      1.6.8
+ * @revision     $Revision: $
+ * @link         $HeadURL: $
+ * @lastmodified $Date: $
+ * @since        File available since 09.01.2013
+ * @description  xyz
+ */
+
+/* -------------------------------------------------------- */
+// Must include code to stop this file being accessed directly
+if(!defined('WB_URL')) {
+	require_once(dirname(dirname(dirname(__FILE__))).'/framework/globalExceptionHandler.php');
+	throw new IllegalFileException();
+}
+/* -------------------------------------------------------- */
Index: branches/2.8.x/wb/modules/MultiLingual/index.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/index.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/index.php	(revision 1939)
@@ -0,0 +1,9 @@
+<?php
+// *** This file is generated by WebsiteBaker Ver.2.8.3
+// *** Creation date: 2013-05-26T05:26:07+00:00
+// *** Do not modify this file manually
+// *** WB will rebuild this file from time to time!!
+// *************************************************
+	header('HTTP/1.1 301 Moved Permanently');
+	header('Location: ../../index.php');
+// *************************************************
Index: branches/2.8.x/wb/modules/MultiLingual/upgrade.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/upgrade.php	(nonexistent)
+++ branches/2.8.x/wb/modules/MultiLingual/upgrade.php	(revision 1939)
@@ -0,0 +1,75 @@
+<?php
+/**
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * uprade.php
+ *
+ * @category     Modules
+ * @package      Modules_MultiLingual
+ * @author       Werner v.d.Decken <wkl@isteam.de>
+ * @author       Dietmar Wöllbrink <dietmar.woellbrink@websiteBaker.org>
+ * @copyright    Werner v.d.Decken <wkl@isteam.de>
+ * @license      http://www.gnu.org/licenses/gpl.html   GPL License
+ * @version      1.6.8
+ * @revision     $Revision: $
+ * @link         $HeadURL: $
+ * @lastmodified $Date: $
+ * @since        File available since 09.01.2013
+ * @description  provides a flexible posibility for changeing to a translated page
+ */
+
+/* -------------------------------------------------------- */
+// Must include code to stop this file being accessed directly
+if(!defined('WB_URL')) {
+	require_once(dirname(dirname(dirname(__FILE__))).'/framework/globalExceptionHandler.php');
+	throw new IllegalFileException();
+}
+/* -------------------------------------------------------- */
+
+// Work-out if we should check for existing page_code
+$sql = 'DESCRIBE `'.$database->TablePrefix.'pages` `page_code`';
+$field_sql = $database->query($sql);
+$field_set = $field_sql->numRows();
+$format = $field_sql->fetchRow(MYSQL_ASSOC) ;
+// upgrade only if old format
+if($format['Type'] == 'varchar(255)' )
+{
+    $sql = 'SELECT `page_code`,`page_id` FROM `'.$database->TablePrefix.'pages` ORDER BY `page_id`';
+    if($query_code = $database->query($sql))
+    {
+      // extract page_id from old format
+      $pattern = '/(?<=_)([0-9]{1,11})/s';
+      while( $page  = $query_code->fetchRow(MYSQL_ASSOC))
+      {
+          preg_match($pattern, $page['page_code'], $array);
+          $page_code = $array[0];
+          $page_id =  $page['page_id'];
+          $sql  = 'UPDATE `'.$database->TablePrefix.'pages` SET ';
+          $sql .= ((empty($array[0])) ? '`page_code` = 0 ' : '`page_code` = '.$page_code.' ');
+          $sql .= 'WHERE `page_id` = '.$page_id;
+          $database->query($sql);
+      }
+      $field_set = $database->field_modify('page_code', 'pages', 'INT(11) NOT NULL AFTER `modified_by`');
+//      $sql = 'ALTER TABLE `'.$database->TablePrefix.'pages` MODIFY COLUMN `page_code` INT(11) NOT NULL';
+//      $database->query($sql);
+  }   
+}
+//
+$directory = dirname(__FILE__).'/'.'info.php';
+// update entry in table addons to new version
+load_module($directory, $install = false);
