ONO::FW::Edu::Apps::Modules::WorksheetMaker::Input::Lang

package ONO::FW::Edu::Apps::Modules::WorksheetMaker::Input::Lang;
################################################################################
# COPYRIGHT / LICENSE #
################################################################################
#
# This file is part of the ONO Software Project.
#
# Copyright (C) 2022-2026 Jos Kirps and The Joopita Project [ASBL]
# Copyright (C) 2011-2022 Jos Kirps and Joopita Research ASBL
# Copyright (C) 2006-2011 Jos Kirps and The Joopita Project
# Copyright (C) 2001-2006 Jos Kirps and The WobbleWolf Project
#
# This file, as well as many other parts of the ONO Software Project or
# related elements, are FREE SOFTWARE available under the ARTISTIC LICENSE 2.0.
#
# 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.
#
# For the full license, see /ono/osr/license/LICENSE.txt, or write to
# jos_AT_kirps_DOT_com or contact_AT_joopita_DOT_com.
#
################################################################################
# END OF COPYRIGHT / LICENSE, HERE COMES THE CODE ... #
################################################################################

#: This module is a front end application module wrapper that has been
#: created for the Morzino Project (morzino.com) and that has been released
#: as Open Source software.
#:
#: Note that this is NOT a self-contained application, it is only a wrapper
#: that makes heavy use of the ONO Perl Framework application engine.

use strict;

use ONO::IO;
use ONO::Lib::Basic;
use ONO::Lib::Data::Letters;

sub vars {

my $vars_ref = $_[1];
my %vars = %$vars_ref;

my $DEBUG = "This is Ext_Morzino__Apps_V2_WorksheetMaker_InputLang\n";

$ENV{'SCRIPT_NAME'} =~ m~/cgi-bin/local/perl/school/apps/(.*)\.pl$~;
my $app = $1;

$DEBUG .= "app = $app\n";

### GLOBAL VARIABLES...

if (!$vars{"app_input_lang_use_en"} && !$vars{"app_input_lang_use_de"} && !$vars{"app_input_lang_use_fr"}) {
$vars{"app_input_lang_use_de"} = 1;
$vars{"app_input_lang_use_fr"} = 1;
}

### VERBS

if ($app eq "verbs" || $app eq "verbs_english" || $app eq "verbs_french" || $app eq "verbs_german") {

$vars{'app_input_person_1'} = 1;
$vars{'app_input_person_2'} = 1;
$vars{'app_input_person_3'} = 1;
$vars{'app_input_person_4'} = 1;
$vars{'app_input_person_5'} = 1;
$vars{'app_input_person_6'} = 1;

if ($vars{'app_input_lang_mix_verbs_default_group'} =~ /^top_(.*?)$/) {

my $top = $1;

if ($top > 1 && $top < 101) {

$vars{"app_info_use_verb_custom_top_$top"} = "Top $top";
$vars{"app_input_use_verb_custom_top_$top"} = 1;

}

}

foreach my $key (keys %vars) {
if ($key =~ /^app_input_lang_mix_(.*?)_tense_use_(.*?)$/ && $vars{$key} > 0) {
$vars{"app_input_tense_use_$2"} = 1;
}
}

}

### VOCABULARY

if ($app eq "vocabulary") {

$vars{'app_input_use_group_1'} = 1;
$vars{'app_input_use_group_2'} = 1;
$vars{'app_input_use_group_3'} = 1;

$vars{'app_info_use_group_1'} = 1;
$vars{'app_info_use_group_2'} = 1;
$vars{'app_info_use_group_3'} = 1;

$vars{'app_input_difficulty_status'} = 3;

$vars{'app_input_langs_lang_1'} = "fr";
$vars{'app_input_langs_lang_2'} = "de";

$vars{'app_input_langs_mix'} = 1;

}

### WRITE NUMBERS

if ($app eq "write_letters") {

$vars{'app_input_type'} = "abc";
$vars{'app_input_upper_lower'} = "upperlower";

$vars{'app_input_abc_0'} = ONO::Lib::Data::Letters->get_random(1,1);

$vars{'app_input_layout'} = 1;
$vars{'app_input_layout_char_0'} = int(rand(2));
$vars{'app_input_layout_row_0'} = "random";

}

### ALL APPS DONE

return ($DEBUG,\%vars);

}

###################################################################
#### THAT'S IT :-D
###################################################################

1;

__END__