diff --git a/ChangeLog b/ChangeLog
index 443851dd7..eaa34a4c5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -17,6 +17,7 @@ $HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyA
+ [export] new plugin "codegen" for NHibernate, thanks to caocao; I'm
looking for a name more descriptive than codegen, taking into account
that it might later support other formats like JSON in the same plugin
++ [export] new export to Texy! markup
+ [lang] Finnish update, thanks to Jouni Kahkonen
+ [config] new parameter $cfg['CheckConfigurationPermissions']
+ rfe #1775288 [transformation] proper display if IP-address stored as INT
diff --git a/lang/afrikaans-utf-8.inc.php b/lang/afrikaans-utf-8.inc.php
index b209d7b8c..484fece2e 100644
--- a/lang/afrikaans-utf-8.inc.php
+++ b/lang/afrikaans-utf-8.inc.php
@@ -1063,4 +1063,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/albanian-utf-8.inc.php b/lang/albanian-utf-8.inc.php
index 07c81590b..d45443bd1 100644
--- a/lang/albanian-utf-8.inc.php
+++ b/lang/albanian-utf-8.inc.php
@@ -1062,4 +1062,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/arabic-utf-8.inc.php b/lang/arabic-utf-8.inc.php
index 0e7c38046..538f13fd3 100644
--- a/lang/arabic-utf-8.inc.php
+++ b/lang/arabic-utf-8.inc.php
@@ -1064,4 +1064,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/azerbaijani-utf-8.inc.php b/lang/azerbaijani-utf-8.inc.php
index 4c76f0e72..bb5bd6263 100644
--- a/lang/azerbaijani-utf-8.inc.php
+++ b/lang/azerbaijani-utf-8.inc.php
@@ -1059,4 +1059,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/basque-utf-8.inc.php b/lang/basque-utf-8.inc.php
index b97cf87fa..300f5a534 100644
--- a/lang/basque-utf-8.inc.php
+++ b/lang/basque-utf-8.inc.php
@@ -1056,4 +1056,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/belarusian_cyrillic-utf-8.inc.php b/lang/belarusian_cyrillic-utf-8.inc.php
index 2a4ce4ce7..63a69fef9 100644
--- a/lang/belarusian_cyrillic-utf-8.inc.php
+++ b/lang/belarusian_cyrillic-utf-8.inc.php
@@ -1039,4 +1039,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/belarusian_latin-utf-8.inc.php b/lang/belarusian_latin-utf-8.inc.php
index 2e0b83412..f7ceb8062 100644
--- a/lang/belarusian_latin-utf-8.inc.php
+++ b/lang/belarusian_latin-utf-8.inc.php
@@ -1038,4 +1038,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/bosnian-utf-8.inc.php b/lang/bosnian-utf-8.inc.php
index 31495cd7d..df9dc1256 100644
--- a/lang/bosnian-utf-8.inc.php
+++ b/lang/bosnian-utf-8.inc.php
@@ -1062,4 +1062,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/brazilian_portuguese-utf-8.inc.php b/lang/brazilian_portuguese-utf-8.inc.php
index 15049a5c6..c21292d16 100644
--- a/lang/brazilian_portuguese-utf-8.inc.php
+++ b/lang/brazilian_portuguese-utf-8.inc.php
@@ -1036,4 +1036,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/bulgarian-utf-8.inc.php b/lang/bulgarian-utf-8.inc.php
index f7d86a13c..4b16619c0 100644
--- a/lang/bulgarian-utf-8.inc.php
+++ b/lang/bulgarian-utf-8.inc.php
@@ -1059,4 +1059,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/catalan-utf-8.inc.php b/lang/catalan-utf-8.inc.php
index 12a812529..83f1d50cc 100644
--- a/lang/catalan-utf-8.inc.php
+++ b/lang/catalan-utf-8.inc.php
@@ -1032,4 +1032,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/chinese_simplified-utf-8.inc.php b/lang/chinese_simplified-utf-8.inc.php
index d12aeb890..c62276305 100644
--- a/lang/chinese_simplified-utf-8.inc.php
+++ b/lang/chinese_simplified-utf-8.inc.php
@@ -1064,4 +1064,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/chinese_traditional-utf-8.inc.php b/lang/chinese_traditional-utf-8.inc.php
index e6eda31c6..197233ab1 100644
--- a/lang/chinese_traditional-utf-8.inc.php
+++ b/lang/chinese_traditional-utf-8.inc.php
@@ -1043,4 +1043,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/croatian-utf-8.inc.php b/lang/croatian-utf-8.inc.php
index 5ca5ebfeb..5c3fc2e64 100644
--- a/lang/croatian-utf-8.inc.php
+++ b/lang/croatian-utf-8.inc.php
@@ -1037,4 +1037,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/czech-utf-8.inc.php b/lang/czech-utf-8.inc.php
index 47c8509bd..2ce438752 100644
--- a/lang/czech-utf-8.inc.php
+++ b/lang/czech-utf-8.inc.php
@@ -499,8 +499,8 @@ $strNoDropDatabases = 'Příkaz „DROP DATABASE“ je vypnutý.';
$strNoExplain = 'Bez vysvětlení (EXPLAIN) SQL';
$strNoFilesFoundInZip = 'V ZIP archívu nebyly nalezeny žádné soubory!';
$strNoFrames = 'phpMyAdmin se lépe používá v prohlížeči podporujícím rámy („FRAME“).';
-$strNoIndexPartsDefined = 'Nebyla zadána žádná část indexu!';
$strNoIndex = 'Není definován žádný index!';
+$strNoIndexPartsDefined = 'Nebyla zadána žádná část indexu!';
$strNoModification = 'Žádná změna';
$strNo = 'Ne';
$strNone = 'Žádná';
@@ -700,6 +700,7 @@ $strSavePosition = 'Uložit rozmístění';
$strSave = 'Ulož';
$strScaleFactorSmall = 'Měřítko je příliš malé, aby se schéma vešlo na jednu stránku';
$strSearchFormTitle = 'Vyhledávání v databázi';
+$strSearchInField = 'Uvnitř pole:';
$strSearchInTables = 'V tabulkách:';
$strSearchNeedle = 'Slova nebo hodnoty, které chcete vyhledat (zástupný znak: „%“):';
$strSearchOption1 = 'alespoň jedno ze slov';
@@ -928,6 +929,7 @@ $strTakeIt = 'zvolit';
$strTblPrivileges = 'Oprávnění pro jednotlivé tabulky';
$strTempData = 'Dočasná data';
$strTextAreaLength = 'Tento sloupec možná nepůjde
(kvůli délce) upravit ';
+$strTexyText = 'Texy! text';
$strThai = 'Thajština';
$strThemeDefaultNotFound = 'Výchozí vzhled %s nebyl nalezen!';
$strThemeNoPreviewAvailable = 'Náhled není k dispozici.';
@@ -1037,5 +1039,4 @@ $strYes = 'Ano';
$strZeroRemovesTheLimit = 'Poznámka: Nastavení těchto parametrů na 0 (nulu) odstraní omezení.';
$strZip = '„zazipováno“';
-$strSearchInField = 'Inside field:'; //to translate
?>
diff --git a/lang/danish-utf-8.inc.php b/lang/danish-utf-8.inc.php
index 28db96364..c5722f5a9 100644
--- a/lang/danish-utf-8.inc.php
+++ b/lang/danish-utf-8.inc.php
@@ -1038,4 +1038,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/dutch-utf-8.inc.php b/lang/dutch-utf-8.inc.php
index a651f4b21..f81efaf89 100644
--- a/lang/dutch-utf-8.inc.php
+++ b/lang/dutch-utf-8.inc.php
@@ -1060,4 +1060,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/english-utf-8.inc.php b/lang/english-utf-8.inc.php
index 0c42ca596..1670ae401 100644
--- a/lang/english-utf-8.inc.php
+++ b/lang/english-utf-8.inc.php
@@ -929,6 +929,7 @@ $strTakeIt = 'take it';
$strTblPrivileges = 'Table-specific privileges';
$strTempData = 'Temporary data';
$strTextAreaLength = ' Because of its length,
this field might not be editable ';
+$strTexyText = 'Texy! text';
$strThai = 'Thai';
$strThemeDefaultNotFound = 'Default theme %s not found!';
$strThemeNoPreviewAvailable = 'No preview available.';
diff --git a/lang/estonian-utf-8.inc.php b/lang/estonian-utf-8.inc.php
index 19b01535f..062f95810 100644
--- a/lang/estonian-utf-8.inc.php
+++ b/lang/estonian-utf-8.inc.php
@@ -1044,4 +1044,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/finnish-utf-8.inc.php b/lang/finnish-utf-8.inc.php
index 8b2f0eae4..5429f43b6 100644
--- a/lang/finnish-utf-8.inc.php
+++ b/lang/finnish-utf-8.inc.php
@@ -1038,4 +1038,5 @@ $strZeroRemovesTheLimit = 'Huom: Näiden valintojen asettaminen nollaksi (0) poi
$strZip = '"zip-pakattu"';
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/french-utf-8.inc.php b/lang/french-utf-8.inc.php
index 95b5784cc..f126dbf7a 100644
--- a/lang/french-utf-8.inc.php
+++ b/lang/french-utf-8.inc.php
@@ -1035,4 +1035,5 @@ $strRebuild = 'Reconstruire';
$strRepair = 'Réparer';
$strRemovePartitioning = 'Supprimer le partitionnement';
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/galician-utf-8.inc.php b/lang/galician-utf-8.inc.php
index 1eb78be93..0a9584973 100644
--- a/lang/galician-utf-8.inc.php
+++ b/lang/galician-utf-8.inc.php
@@ -1037,4 +1037,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/georgian-utf-8.inc.php b/lang/georgian-utf-8.inc.php
index 0967a77a3..33a15b054 100644
--- a/lang/georgian-utf-8.inc.php
+++ b/lang/georgian-utf-8.inc.php
@@ -1064,4 +1064,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/german-utf-8.inc.php b/lang/german-utf-8.inc.php
index 5c3825807..5f3d1ff30 100644
--- a/lang/german-utf-8.inc.php
+++ b/lang/german-utf-8.inc.php
@@ -1044,4 +1044,5 @@ $strZip = 'Zip-komprimiert';
$strExportImportToScale = 'Export/Import to scale'; // to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/greek-utf-8.inc.php b/lang/greek-utf-8.inc.php
index 17375da61..54bd8458d 100644
--- a/lang/greek-utf-8.inc.php
+++ b/lang/greek-utf-8.inc.php
@@ -1061,4 +1061,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/hebrew-utf-8.inc.php b/lang/hebrew-utf-8.inc.php
index 8dd704781..0ba07c0da 100644
--- a/lang/hebrew-utf-8.inc.php
+++ b/lang/hebrew-utf-8.inc.php
@@ -1056,4 +1056,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/hindi-utf-8.inc.php b/lang/hindi-utf-8.inc.php
index bc9964d38..84f54866e 100644
--- a/lang/hindi-utf-8.inc.php
+++ b/lang/hindi-utf-8.inc.php
@@ -1064,4 +1064,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/hungarian-utf-8.inc.php b/lang/hungarian-utf-8.inc.php
index 487d2b44c..519eb16da 100644
--- a/lang/hungarian-utf-8.inc.php
+++ b/lang/hungarian-utf-8.inc.php
@@ -1055,4 +1055,5 @@ $strUploadLimit = 'You probably tried to upload too large file. Please refer to
$strUploadsNotAllowed = 'File uploads are not allowed on this server.';//to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/indonesian-utf-8.inc.php b/lang/indonesian-utf-8.inc.php
index aee2188a8..6468f547a 100644
--- a/lang/indonesian-utf-8.inc.php
+++ b/lang/indonesian-utf-8.inc.php
@@ -1054,4 +1054,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/italian-utf-8.inc.php b/lang/italian-utf-8.inc.php
index d5fb05800..0e410ff9f 100644
--- a/lang/italian-utf-8.inc.php
+++ b/lang/italian-utf-8.inc.php
@@ -1038,4 +1038,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/japanese-utf-8.inc.php b/lang/japanese-utf-8.inc.php
index 15cacf337..ed987b068 100644
--- a/lang/japanese-utf-8.inc.php
+++ b/lang/japanese-utf-8.inc.php
@@ -1042,4 +1042,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/korean-utf-8.inc.php b/lang/korean-utf-8.inc.php
index 9e18b9822..2fe0c40c2 100644
--- a/lang/korean-utf-8.inc.php
+++ b/lang/korean-utf-8.inc.php
@@ -1059,4 +1059,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/latvian-utf-8.inc.php b/lang/latvian-utf-8.inc.php
index 1f23f7fc0..c04b2f5e9 100644
--- a/lang/latvian-utf-8.inc.php
+++ b/lang/latvian-utf-8.inc.php
@@ -1061,4 +1061,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/lithuanian-utf-8.inc.php b/lang/lithuanian-utf-8.inc.php
index 83fd96598..9aef7624a 100644
--- a/lang/lithuanian-utf-8.inc.php
+++ b/lang/lithuanian-utf-8.inc.php
@@ -1054,4 +1054,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/macedonian_cyrillic-utf-8.inc.php b/lang/macedonian_cyrillic-utf-8.inc.php
index 610c01ffc..f2ffba619 100644
--- a/lang/macedonian_cyrillic-utf-8.inc.php
+++ b/lang/macedonian_cyrillic-utf-8.inc.php
@@ -1039,4 +1039,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/malay-utf-8.inc.php b/lang/malay-utf-8.inc.php
index afa9b802e..354e6ef38 100644
--- a/lang/malay-utf-8.inc.php
+++ b/lang/malay-utf-8.inc.php
@@ -1076,4 +1076,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/mongolian-utf-8.inc.php b/lang/mongolian-utf-8.inc.php
index b423adc03..b07f672c6 100644
--- a/lang/mongolian-utf-8.inc.php
+++ b/lang/mongolian-utf-8.inc.php
@@ -1059,4 +1059,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/norwegian-utf-8.inc.php b/lang/norwegian-utf-8.inc.php
index ca0b31438..d36c3852c 100644
--- a/lang/norwegian-utf-8.inc.php
+++ b/lang/norwegian-utf-8.inc.php
@@ -1036,4 +1036,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/persian-utf-8.inc.php b/lang/persian-utf-8.inc.php
index 513a8fc39..223df5f0c 100644
--- a/lang/persian-utf-8.inc.php
+++ b/lang/persian-utf-8.inc.php
@@ -1061,4 +1061,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/polish-utf-8.inc.php b/lang/polish-utf-8.inc.php
index 102305a47..312ee2dc3 100644
--- a/lang/polish-utf-8.inc.php
+++ b/lang/polish-utf-8.inc.php
@@ -1032,4 +1032,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/portuguese-utf-8.inc.php b/lang/portuguese-utf-8.inc.php
index 1c19ae23f..42abdc8c3 100644
--- a/lang/portuguese-utf-8.inc.php
+++ b/lang/portuguese-utf-8.inc.php
@@ -1065,4 +1065,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/romanian-utf-8.inc.php b/lang/romanian-utf-8.inc.php
index 86c79be44..5b00cd211 100644
--- a/lang/romanian-utf-8.inc.php
+++ b/lang/romanian-utf-8.inc.php
@@ -1057,4 +1057,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/russian-utf-8.inc.php b/lang/russian-utf-8.inc.php
index d55afd117..a0d537e6e 100644
--- a/lang/russian-utf-8.inc.php
+++ b/lang/russian-utf-8.inc.php
@@ -1039,4 +1039,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/serbian_cyrillic-utf-8.inc.php b/lang/serbian_cyrillic-utf-8.inc.php
index c9a194505..b0541a78a 100644
--- a/lang/serbian_cyrillic-utf-8.inc.php
+++ b/lang/serbian_cyrillic-utf-8.inc.php
@@ -1038,4 +1038,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/serbian_latin-utf-8.inc.php b/lang/serbian_latin-utf-8.inc.php
index 601124127..b99169069 100644
--- a/lang/serbian_latin-utf-8.inc.php
+++ b/lang/serbian_latin-utf-8.inc.php
@@ -1038,4 +1038,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/sinhala-utf-8.inc.php b/lang/sinhala-utf-8.inc.php
index 458489424..c39a5aa0d 100644
--- a/lang/sinhala-utf-8.inc.php
+++ b/lang/sinhala-utf-8.inc.php
@@ -1041,4 +1041,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/slovak-utf-8.inc.php b/lang/slovak-utf-8.inc.php
index 10b28e545..885a7a003 100644
--- a/lang/slovak-utf-8.inc.php
+++ b/lang/slovak-utf-8.inc.php
@@ -1039,4 +1039,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/slovenian-utf-8.inc.php b/lang/slovenian-utf-8.inc.php
index d33b40c0d..f0e8630dd 100644
--- a/lang/slovenian-utf-8.inc.php
+++ b/lang/slovenian-utf-8.inc.php
@@ -1058,4 +1058,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/spanish-utf-8.inc.php b/lang/spanish-utf-8.inc.php
index 95bf96904..77a883b4f 100644
--- a/lang/spanish-utf-8.inc.php
+++ b/lang/spanish-utf-8.inc.php
@@ -1034,4 +1034,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/swedish-utf-8.inc.php b/lang/swedish-utf-8.inc.php
index d5283b0b0..a3c8e6f50 100644
--- a/lang/swedish-utf-8.inc.php
+++ b/lang/swedish-utf-8.inc.php
@@ -1037,4 +1037,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/tatarish-utf-8.inc.php b/lang/tatarish-utf-8.inc.php
index 3e13a4dfb..42f8adac8 100644
--- a/lang/tatarish-utf-8.inc.php
+++ b/lang/tatarish-utf-8.inc.php
@@ -1050,4 +1050,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/thai-utf-8.inc.php b/lang/thai-utf-8.inc.php
index 4fd6e7576..f1042ac6e 100644
--- a/lang/thai-utf-8.inc.php
+++ b/lang/thai-utf-8.inc.php
@@ -1060,4 +1060,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/turkish-utf-8.inc.php b/lang/turkish-utf-8.inc.php
index 78145dc3a..0c68f2f75 100644
--- a/lang/turkish-utf-8.inc.php
+++ b/lang/turkish-utf-8.inc.php
@@ -1044,4 +1044,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/lang/ukrainian-utf-8.inc.php b/lang/ukrainian-utf-8.inc.php
index 67e2f027a..f568054a2 100644
--- a/lang/ukrainian-utf-8.inc.php
+++ b/lang/ukrainian-utf-8.inc.php
@@ -1058,4 +1058,5 @@ $strRebuild = 'Rebuild'; //to translate
$strRepair = 'Repair'; //to translate
$strRemovePartitioning = 'Remove partitioning'; //to translate
$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
?>
diff --git a/libraries/export/texytext.php b/libraries/export/texytext.php
new file mode 100644
index 000000000..46ff35a2e
--- /dev/null
+++ b/libraries/export/texytext.php
@@ -0,0 +1,333 @@
+ 'strTexyText',
+ 'extension' => 'txt',
+ 'mime_type' => 'text/plain',
+ 'options' => array(
+ array('type' => 'bool',
+ 'name' => 'structure',
+ 'text' => 'strStructure',
+ 'force' => 'data'),
+ array('type' => 'bgroup',
+ 'name' => 'data',
+ 'text' => 'strData',
+ 'force' => 'structure'),
+ array('type' => 'text',
+ 'name' => 'null',
+ 'text' => 'strReplaceNULLBy'),
+ array('type' => 'bool',
+ 'name' => 'columns',
+ 'text' => 'strPutColNames'),
+ array('type' => 'egroup'),
+ ),
+ 'options_text' => 'strOptions',
+ );
+} else {
+
+/**
+ * Outputs comment
+ *
+ * @param string Text of comment
+ *
+ * @return bool Whether it suceeded
+ */
+function PMA_exportComment($text) {
+ return TRUE;
+}
+
+/**
+ * Outputs export footer
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportFooter() {
+ return true;
+}
+
+/**
+ * Outputs export header
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportHeader() {
+ return true;
+}
+
+/**
+ * Outputs database header
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBHeader($db) {
+ return PMA_exportOutputHandler('===' . $GLOBALS['strDatabase'] . ' ' . $db . "\n\n");
+}
+
+/**
+ * Outputs database footer
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBFooter($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs create database database
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBCreate($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs the content of a table in CSV format
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param string SQL query for obtaining data
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
+{
+ global $what;
+
+ if (!PMA_exportOutputHandler('== ' . $GLOBALS['strDumpingData'] . ' ' . $table . "\n\n")) {
+ return FALSE;
+ }
+
+ // Gets the data from the database
+ $result = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+ $fields_cnt = PMA_DBI_num_fields($result);
+
+ // If required, get fields name at the first line
+ if (isset($GLOBALS[$what . '_columns'])) {
+ $text_output = "|------\n";
+ for ($i = 0; $i < $fields_cnt; $i++) {
+ $text_output .= '|' . htmlspecialchars(stripslashes(PMA_DBI_field_name($result, $i)));
+ } // end for
+ $text_output .= "\n|------\n";
+ if (!PMA_exportOutputHandler($text_output)) {
+ return FALSE;
+ }
+ } // end if
+
+ // Format the data
+ while ($row = PMA_DBI_fetch_row($result)) {
+ $text_output = '';
+ for ($j = 0; $j < $fields_cnt; $j++) {
+ if (!isset($row[$j]) || is_null($row[$j])) {
+ $value = $GLOBALS[$what . '_null'];
+ } elseif ($row[$j] == '0' || $row[$j] != '') {
+ $value = $row[$j];
+ } else {
+ $value = ' ';
+ }
+ $text_output .= '|' . htmlspecialchars($value);
+ } // end for
+ $text_output .= "\n";
+ if (!PMA_exportOutputHandler($text_output)) {
+ return FALSE;
+ }
+ } // end while
+ PMA_DBI_free_result($result);
+
+ return TRUE;
+}
+
+function PMA_exportStructure($db, $table, $crlf, $error_url, $do_relation = false, $do_comments = false, $do_mime = false, $dates = false, $dummy)
+{
+ global $cfgRelation;
+
+ if (!PMA_exportOutputHandler('== ' . $GLOBALS['strTableStructure'] . ' ' .$table . "\n\n")) {
+ return FALSE;
+ }
+
+ /**
+ * Get the unique keys in the table
+ */
+ $keys_query = 'SHOW KEYS FROM ' . PMA_backquote($table) . ' FROM '. PMA_backquote($db);
+ $keys_result = PMA_DBI_query($keys_query);
+ $unique_keys = array();
+ while ($key = PMA_DBI_fetch_assoc($keys_result)) {
+ if ($key['Non_unique'] == 0) {
+ $unique_keys[] = $key['Column_name'];
+ }
+ }
+ PMA_DBI_free_result($keys_result);
+
+ /**
+ * Gets fields properties
+ */
+ PMA_DBI_select_db($db);
+ $local_query = 'SHOW FIELDS FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table);
+ $result = PMA_DBI_query($local_query);
+ $fields_cnt = PMA_DBI_num_rows($result);
+
+ // Check if we can use Relations (Mike Beck)
+ if ($do_relation && !empty($cfgRelation['relation'])) {
+ // Find which tables are related with the current one and write it in
+ // an array
+ $res_rel = PMA_getForeigners($db, $table);
+
+ if ($res_rel && count($res_rel) > 0) {
+ $have_rel = TRUE;
+ } else {
+ $have_rel = FALSE;
+ }
+ } else {
+ $have_rel = FALSE;
+ } // end if
+
+ /**
+ * Displays the table structure
+ */
+
+ $columns_cnt = 4;
+ if ($do_relation && $have_rel) {
+ $columns_cnt++;
+ }
+ if ($do_comments && $cfgRelation['commwork']) {
+ $columns_cnt++;
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ $columns_cnt++;
+ }
+
+ $text_output = "|------\n";
+ $text_output .= '|' . htmlspecialchars($GLOBALS['strField']);
+ $text_output .= '|' . htmlspecialchars($GLOBALS['strType']);
+ $text_output .= '|' . htmlspecialchars($GLOBALS['strNull']);
+ $text_output .= '|' . htmlspecialchars($GLOBALS['strDefault']);
+ if ($do_relation && $have_rel) {
+ $text_output .= '|' . htmlspecialchars($GLOBALS['strLinksTo']);
+ }
+ if ($do_comments) {
+ $text_output .= '|' . htmlspecialchars($GLOBALS['strComments']);
+ $comments = PMA_getComments($db, $table);
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ $text_output .= '|' . htmlspecialchars('MIME');
+ $mime_map = PMA_getMIME($db, $table, true);
+ }
+ $text_output .= "\n|------\n";
+
+ if (!PMA_exportOutputHandler($text_output)) {
+ return FALSE;
+ }
+
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+
+ $text_output = '';
+ $type = $row['Type'];
+ // reformat mysql query output - staybyte - 9. June 2001
+ // loic1: set or enum types: slashes single quotes inside options
+ if (eregi('^(set|enum)\((.+)\)$', $type, $tmp)) {
+ $tmp[2] = substr(ereg_replace('([^,])\'\'', '\\1\\\'', ',' . $tmp[2]), 1);
+ $type = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
+ $type_nowrap = '';
+
+ $binary = 0;
+ $unsigned = 0;
+ $zerofill = 0;
+ } else {
+ $type_nowrap = ' nowrap="nowrap"';
+ $type = eregi_replace('BINARY', '', $type);
+ $type = eregi_replace('ZEROFILL', '', $type);
+ $type = eregi_replace('UNSIGNED', '', $type);
+ if (empty($type)) {
+ $type = ' ';
+ }
+
+ $binary = eregi('BINARY', $row['Type']);
+ $unsigned = eregi('UNSIGNED', $row['Type']);
+ $zerofill = eregi('ZEROFILL', $row['Type']);
+ }
+ $strAttribute = ' ';
+ if ($binary) {
+ $strAttribute = 'BINARY';
+ }
+ if ($unsigned) {
+ $strAttribute = 'UNSIGNED';
+ }
+ if ($zerofill) {
+ $strAttribute = 'UNSIGNED ZEROFILL';
+ }
+ if (!isset($row['Default'])) {
+ if ($row['Null'] != '') {
+ $row['Default'] = 'NULL';
+ }
+ } else {
+ $row['Default'] = $row['Default'];
+ }
+
+ $fmt_pre = '';
+ $fmt_post = '';
+ if (in_array($row['Field'], $unique_keys)) {
+ $fmt_pre = '**' . $fmt_pre;
+ $fmt_post = $fmt_post . '**';
+ }
+ if ($row['Key']=='PRI') {
+ $fmt_pre = '//' . $fmt_pre;
+ $fmt_post = $fmt_post . '//';
+ }
+ $text_output .= '|' . $fmt_pre . htmlspecialchars($row['Field']) . $fmt_post;
+ $text_output .= '|' . htmlspecialchars($type);
+ $text_output .= '|' . htmlspecialchars($row['Null'] == '' ? $GLOBALS['strNo'] : $GLOBALS['strYes']);
+ $text_output .= '|' . htmlspecialchars(isset($row['Default']) ? $row['Default'] : '');
+
+ $field_name = $row['Field'];
+
+ if ($do_relation && $have_rel) {
+ $text_output .= '|' . (isset($res_rel[$field_name]) ? htmlspecialchars($res_rel[$field_name]['foreign_table'] . ' (' . $res_rel[$field_name]['foreign_field'] . ')') : '');
+ }
+ if ($do_comments && $cfgRelation['commwork']) {
+ $text_output .= '|' . (isset($comments[$field_name]) ? htmlspecialchars($comments[$field_name]) : '');
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ $text_output .= '|' . (isset($mime_map[$field_name]) ? htmlspecialchars(str_replace('_', '/', $mime_map[$field_name]['mimetype'])) : '');
+ }
+
+ $text_output .= "\n";
+
+ if (!PMA_exportOutputHandler($text_output)) {
+ return FALSE;
+ }
+ } // end while
+ PMA_DBI_free_result($result);
+
+ return true;
+}
+
+}
+?>