diff --git a/admin/lang.php b/admin/lang.php
index b568d0c1a9f..3aa28779610 100644
--- a/admin/lang.php
+++ b/admin/lang.php
@@ -20,7 +20,8 @@
$strlanguage = get_string("language");
$strcurrentlanguage = get_string("currentlanguage");
$strmissingstrings = get_string("missingstrings");
- $strcomparelanguage = get_string("comparelanguage");
+ $streditstrings = get_string("editstrings", 'admin');
+ $stredithelpdocs = get_string("edithelpdocs", 'admin');
$strthislanguage = get_string("thislanguage");
switch ($mode) {
@@ -29,11 +30,11 @@
$title = $strmissingstrings;
$button = '
';
+ '';
break;
case "compare":
- $navigation = "$strlanguage -> $strcomparelanguage";
- $title = $strcomparelanguage;
+ $navigation = "$strlanguage -> $streditstrings";
+ $title = $streditstrings;
$button = '';
@@ -59,13 +60,13 @@
echo "$strcurrentlanguage:";
echo "";
echo popup_form ("$CFG->wwwroot/$CFG->admin/lang.php?lang=", $langs, "chooselang", $currlang, "", "", "", true);
- echo " | ";
- print_heading("$strmissingstrings");
- print_heading("$strcomparelanguage");
- echo "
";
+ echo '';
$options["lang"] = $currentlang;
print_single_button("http://moodle.org/download/lang/", $options, get_string("latestlanguagepack"));
- echo "";
+ echo " | ";
+ print_heading("$strmissingstrings");
+ print_heading("$streditstrings");
+ print_heading("$stredithelpdocs");
print_footer();
exit;
}
@@ -166,7 +167,7 @@
}
}
- print_heading_with_help($strcomparelanguage, "langedit");
+ print_heading_with_help($streditstrings, "langedit");
print_simple_box_start("center", "80%");
echo '';
diff --git a/admin/langdoc.php b/admin/langdoc.php
new file mode 100755
index 00000000000..2c408946be2
--- /dev/null
+++ b/admin/langdoc.php
@@ -0,0 +1,189 @@
+shortname: $stredithelpdocs: $currentfile", "$site->fullname",
+ "$stradministration -> ".
+ "$strconfiguration ->
+ $strlanguage -> $stredithelpdocs",
+ 'choosefile.popup', '', true);
+
+ $currentlang = current_language();
+ $langdir = "$CFG->dirroot/lang/$currentlang";
+ $enlangdir = "$CFG->dirroot/lang/en";
+
+ error_reporting(0); // Error reporting turned off due to non-existing files
+
+ // Generate selection for all help and documentation files
+
+ // Get all files from /docs directory
+
+ if (! $files = get_directory_list("$CFG->dirroot/lang/en/docs", "CVS")) {
+ error("Could not find English language docs files!");
+ }
+
+ foreach ($files as $filekey => $file) { // check all the docs files.
+ $options["docs/$file"] = "docs/$file";
+ // add (!) if file doesn't exists or is empty
+ if (( !file_exists("$langdir/docs/$file")) || (filesize("$langdir/docs/$file") == 0)) {
+ $options["docs/$file"] .= "$filemissingmark";
+ }
+ }
+
+ // Get all files from /help directory
+
+ if (! $files = get_directory_list("$CFG->dirroot/lang/en/help", "CVS")) {
+ error("Could not find English language help files!");
+ }
+
+ foreach ($files as $filekey => $file) { // check all the help files.
+ $options["help/$file"] = "help/$file";
+ if (!file_exists("$langdir/help/$file")) {
+ $options["help/$file"] .= "$filemissingmark";
+ }
+ }
+
+ echo "| ";
+ echo $prevfile;
+ echo popup_form ("$CFG->wwwroot/$CFG->admin/langdoc.php?sesskey=$USER->sesskey¤tfile=", $options, "choosefile", $currentfile, "", "", "", true);
+ echo $nextfile;
+ echo " |
";
+
+ // Shall I save POSTed data?
+
+ if (isset($_POST['currentfile'])) {
+ if (confirm_sesskey()) {
+ if (langdoc_save_file($langdir, $currentfile, $_POST['filedata'])) {
+ notify(get_string("changessaved")." ($langdir/$currentfile)", "green");
+ } else {
+ error("Could not save the file '$currentfile'!", "langdoc.php?currentfile=$currentfile&sesskey=$USER->sesskey");
+ }
+ }
+ }
+
+ // Generate textareas
+
+ if (!empty($currentfile)) {
+
+ if (!file_exists("$langdir/$currentfile")) {
+ if (!touch("$langdir/$currentfile")) {
+ echo "".get_string("filemissing", "", "$langdir/$currentfile")."
";
+ }
+ }
+
+ if ($f = fopen("$langdir/$currentfile","r+")) {
+ $editable = true;
+ fclose($f);
+ } else {
+ $editable = false;
+ echo "".get_string("makeeditable", "", "$langdir/$currentfile")."
";
+ }
+
+ echo "| \n";
+ echo "\n";
+ link_to_popup_window("/lang/en/$currentfile", "popup", get_string("preview"));
+ echo " | \n";
+ if ($fileeditorinline == 1) {
+ echo "
\n\n";
+ }
+ echo "| \n";
+
+ if ($editable) {
+ echo " | \n
\n
";
+
+ if ($editable) {
+ echo '';
+ echo '';
+ }
+
+ error_reporting($CFG->debug);
+ }
+
+ print_footer();
+
+
+
+
+//////////////////////////////////////////////////////////////////////
+
+function langdoc_save_file($path, $file, $content) {
+
+// $path is a full pathname to the file
+// $file is the file to overwrite.
+// $content are data to write
+
+ global $CFG, $USER;
+
+ error_reporting(0);
+ if (!$f = fopen("$path/$file","w")) {
+ return false;
+ }
+ error_reporting(7);
+
+ $content = str_replace("\r", "",$content); // Remove linefeed characters
+ $content = preg_replace("/\n{3,}/", "\n\n", $content); // Collapse runs of blank lines
+ $content = trim($content, "\n"); // Delete leading/trailing lines
+ $content = str_replace("\\","",$content); // Delete all slashes
+ $content = str_replace("%%","%",$content);
+
+ fwrite($f, $content);
+
+ fclose($f);
+
+ // Remove file if its empty
+
+ if (filesize("$path/$file") == 0) {
+ unlink("$path/$file");
+ }
+
+ return true;
+}
+
+?>
diff --git a/lang/en/admin.php b/lang/en/admin.php
index 12054f0442f..c5a801d1920 100755
--- a/lang/en/admin.php
+++ b/lang/en/admin.php
@@ -90,6 +90,8 @@ $string['dstisforcedto'] = 'Force all users to use';
$string['dstpresets'] = 'DST Presets';
$string['emptydstlist'] = 'There are currently no DST presets defined. You can add one by clicking on the Add button.';
$string['editingdstpreset'] = 'Editing a DST preset';
+$string['edithelpdocs'] = 'Edit help documents';
+$string['editstrings'] = 'Edit strings';
$string['errordstpresetactivateearlier'] = 'The month of activation must be earlier than the month of deactivation';
$string['errordstpresetnameempty'] = 'The preset name cannot be empty';
$string['errordstpresetnameexists'] = 'Another preset with that name already exists';