fixing bugs
This commit is contained in:
parent
dfd8b046b6
commit
e88270b949
6 changed files with 27 additions and 7 deletions
|
|
@ -1,5 +1,7 @@
|
|||
5.5.0
|
||||
- Rewrote the discussion system and added many new features in the process.
|
||||
- Made the username field in the database unique;
|
||||
- Fixed a display bug in the Data Form. (Thanks to Christian Kocourek.)
|
||||
- Added external database group privileges. (Thanks to Andy Grundman.)
|
||||
- Added support for encryptLogin user setting. (Thanks to Hal Roberts.)
|
||||
- Added anonymous response option to Survey. (Thanks to Andy Grundman.)
|
||||
|
|
@ -15,6 +17,8 @@
|
|||
- Enhanced HTMLArea editor to include table editing. (Thanks to Irving Carrion.)
|
||||
- Fixed a bug where reinvoking www_createAccountSave could produce duplicate
|
||||
usernames in the database. (Thanks to Martin Kamerbeek.)
|
||||
- Fixed a bug in the 5.4.3-5.4.4 upgrade script that some users experienced
|
||||
with null values in their DataForm.
|
||||
|
||||
5.4.4
|
||||
- Updated Finnish translation. (Thanks to Markus Hynna.)
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ Contributing Developers..............Peter Beardsley / Appropriate Solutions
|
|||
Chris Jackson
|
||||
Koen de Jonge / ProcoliX
|
||||
Martin Kamerbeek / ProcoliX
|
||||
Christian Kocourek
|
||||
John W. Krahn
|
||||
Len Kranendonk
|
||||
Christophe Marcant
|
||||
|
|
|
|||
|
|
@ -1790,7 +1790,7 @@ insert into international (internationalId,languageId,namespace,message,lastUpda
|
|||
delete from international where languageId=2 and namespace='WebGUI' and internationalId=622;
|
||||
insert into international (internationalId,languageId,namespace,message,lastUpdated) values (622,2,'WebGUI','Schauen Sie auch unter "Verwalten Gruppen", um eine Beschreibung der \r\nGruppen Funktionalitäten zu erhalten und die Beschreibung der Standardgruppen \r\nzu sehen.<P><B>Gruppenname</B><BR>Ein Name für die Gruppe. Am besten wählen \r\nSie hier einen Namen, der auch die Funktion der Gruppe beschreibt, damit Sie \r\nspäter nicht den Überblick verlieren. \r\n<P><B>Beschreibung</B><BR>Eine längere Beschreibung für diese Gruppe, so dass \r\nAdministratoren und Content Manager sehen können, was der Sinn und Zweck dieser \r\nGruppe ist.<P><B>Verfällt nach</B><BR>Die Zeit, die ein Benutzer zu dieser Gruppe \r\ngehört, bis er/sie entfernt wird bzw. die Mitgliedschaft verfällt. Dies ist \r\nhilfreich für Seiten, in denen Benutzer zeitlich beschränkte Angebote erhalten \r\nsollen. Beachten Sie, dass diese Einstellungen auch wieder für jeden einzelnen \r\nBenutzer gesondert vorgenommen werden können.<P><B>Benutzer über abgelaufene \r\nZeit informieren?</B><BR>Wählen Sie hier "Ja", wenn Sie den Benutzer \r\ndarüber informieren möchten, dass er automatisch von dieser Gruppe entfernt \r\nwerden soll.<P><B>Zeitabstand zur Ablaufankündigung</B><BR>Der Abstand in Tagen \r\ndes Ablaufs seit der Ankündigung. Sie müssen hier einen korrekten IntegerWert \r\nsetzen. Wenn Sie z. B. "0" auswählen, wenn die Benachrichtigung an \r\nden Benutzer am selben Tag erfolgen soll, an dem er von der Gruppe entfernt \r\nwird. Wenn Sie "-7" auswählen, ergeht die Benachrichtigung 7 Tage \r\nvorher an den Benutzer. (Bei der Auswahl von "7" ergeht die Benachrichtigung \r\nentsprechend 7 Tage danach).<P><B>Benachrichtigungstext zum Ablaufdatum</B><BR>Geben \r\nSie hier den Text ein, der den Benutzer über den Zeitablauf informieren soll.<P><B>Löschen \r\nZeitspanne</B><BR>DieAnzahl in Tagen, nachdem der Benutzer nach Ablauf der \r\nZeitspanne aus der Gruppe entfernt werden soll. Wenn Sie z. B. "0" \r\nangeben, wird der Benutzer noch am Tage des Zeitablaufs von der Gruppe entfernt. \r\n(weitere Beispiele siehe \'Zeitabstand zur Ablaufankündigung")<P><B>IP Adresse</B><BR>Geben \r\nSie eine IP Adresse oder eine IP Maske an. Wenn der Benutzer diese IP-Adresse \r\nhat oder sich in der IP-Maske befindet, wird er automatisch in diese Gruppe \r\naufgenommen. Eine IP-Maske ist einfach nur die IP-Adresse abzüglich eines Octets \r\n(Acht) oder 2. Sie können auch mehrere IP-Masken getrennt durch ein Semikolon \r\nangeben.<P><I>Beispiel für IP Masken:</I> 10.;192.168.;101.42.200.142 \r\n<P><B>Karma Grenzwert</B><BR>Sie \r\nkönnen den Wert hier angeben, wenn sie Karma aktiviert haben. Dieser Grenzwert \r\nist der Anteil an Karma, die ein Benutzer haben muss, um Mitglied dieser Gruppe \r\nzu werden.</P><P><B>Benutzer können sich selbst hinzufügen?</B><BR>Möchten Sie, \r\ndass sich Benutzer selbst zu dieser Gruppe hinzufügen können? Für weitere Informationen \r\nschauen Sie sich die Beschreibung des GroupAdd Makros an.<P><B>Benutzer können \r\nsich selbst entfernen?</B><BR>Möchten Sie, dass sich Benutzer selbst von dieser \r\nGruppe entfernen können? Für weitere Informationen schauen Sie sich die Beschreibung \r\ndes GroupDelete Makros an.</P>', 1058171271);
|
||||
create table DataForm_entryData_temp (DataForm_entryId int not null, DataForm_fieldId int not null, wobjectId int not null, value text, primary key (DataForm_entryId, DataForm_fieldId));
|
||||
insert into DataForm_entryData_temp select a.DataForm_entryId, b.DataForm_fieldId, a.wobjectId, a.value from DataForm_entryData a left join DataForm_field b on a.name=b.name and a.wobjectId=b.wobjectId;
|
||||
insert into DataForm_entryData_temp select a.DataForm_entryId, b.DataForm_fieldId, a.wobjectId, a.value from DataForm_entryData a left join DataForm_field b on a.name=b.name and a.wobjectId=b.wobjectId where b.DataForm_fieldId is not NULL;
|
||||
drop table DataForm_entryData;
|
||||
alter table DataForm_entryData_temp rename DataForm_entryData;
|
||||
delete from template where namespace='DataForm' and templateId=3;
|
||||
|
|
|
|||
|
|
@ -229,6 +229,24 @@ WebGUI::SQL->write("alter table wobject drop column filterPost");
|
|||
WebGUI::SQL->write("alter table wobject drop column addEditStampToPosts");
|
||||
|
||||
|
||||
#--------------------------------------------
|
||||
print "\tForcing unique usernames.\n" unless ($quiet);
|
||||
my $a = WebGUI::SQL->read("select userId,username from users order by userId");
|
||||
my $test;
|
||||
while (my ($userId,$username) = $a->array) {
|
||||
while (($test) = WebGUI::SQL->quickArray("select username from users where username=".quote($username)." and userId<>$userId")) {
|
||||
if ($username =~ /(.*)(\d+$)/) {
|
||||
$username = $1.($2+1);
|
||||
} elsif ($test ne "") {
|
||||
$username .= "2";
|
||||
}
|
||||
}
|
||||
WebGUI::SQL->write("update users set username=".quote($username)." where userId=$userId");
|
||||
}
|
||||
$a->finish;
|
||||
WebGUI::SQL->write("alter table users add unique username_unique (username)");
|
||||
|
||||
|
||||
WebGUI::Session::close();
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -264,4 +264,3 @@ delete from international where languageId=1 and namespace='WebGUI' and internat
|
|||
insert into international (internationalId,languageId,namespace,message,lastUpdated,context) values (529,1,'WebGUI','results per page', 1066492301,'A label indicating the number of items per page to return in a list.');
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -215,7 +215,7 @@ sub getRecordTemplateVars {
|
|||
"field.label" => $data{label},
|
||||
"field.isMailField" => $data{isMailField},
|
||||
"field.isHidden" => $hidden,
|
||||
"field.isDisplayed" => ($data{status} eq "displayed" && !$hidden),
|
||||
"field.isDisplayed" => ($data{status} eq "visible" && !$hidden),
|
||||
"field.isEditable" => ($data{status} eq "editable" && !$hidden),
|
||||
"field.isRequired" => ($data{status} eq "required" && !$hidden),
|
||||
"field.subtext" => $data{subtext},
|
||||
|
|
@ -603,7 +603,7 @@ sub www_process {
|
|||
my ($var, %row, @errors, $updating, $hadErrors);
|
||||
$var->{entryId} = $entryId;
|
||||
tie %row, "Tie::CPHash";
|
||||
my $sth = WebGUI::SQL->read("select DataForm_fieldId,name,status,type,defaultValue,isMailField from DataForm_field
|
||||
my $sth = WebGUI::SQL->read("select DataForm_fieldId,label,name,status,type,defaultValue,isMailField from DataForm_field
|
||||
where wobjectId=".$_[0]->get("wobjectId")." order by sequenceNumber");
|
||||
while (%row = $sth->hash) {
|
||||
my $value = WebGUI::FormProcessor::process($row{name},$row{type},$row{defaultValue});
|
||||
|
|
@ -611,10 +611,8 @@ sub www_process {
|
|||
$value = WebGUI::Macro::filter($value);
|
||||
}
|
||||
if ($row{status} eq "required" && ($value =~ /^\s$/ || $value eq "" || not defined $value)) {
|
||||
#if ($row{status} eq "required" && ($value =~ /^\s$/ || $value eq "")) {
|
||||
#if ($row{status} eq "required" && $value eq "") {
|
||||
push (@errors,{
|
||||
"error.message"=>$row{name}." ".WebGUI::International::get(29,$_[0]->get("namespace")).".",
|
||||
"error.message"=>$row{label}." ".WebGUI::International::get(29,$_[0]->get("namespace")).".",
|
||||
});
|
||||
$hadErrors = 1;
|
||||
delete $var->{entryId};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue