Author Topic: Topics strict problem  (Read 3900 times)

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Topics strict problem
« on: June 03, 2019, 04:57:03 PM »
Hallo, auf einer MariaDB 10.x ist topics nicht mehr zu gebrauchen für neue Einträge.
Wird wohl am STRICT liegen.

Topic hinzufügen gibt zwar grüne Bestätigung, aber von da aus geht es dann nicht weiter bzw man sieht nur noch das Backend Menü. Darunter ist alles weiß.

Wenn bei STRICT und INSERT INTO in der add_topic.php wirklich jedes Feld angegeben werden muss, dann sind die dort vorhandenen 8 Angaben genau 27 zu wenig. Vielleicht hat das aber schon jemand durch gemacht? Oder kennt einen Link zur Lösung?

Gruß
Frank

Offline Gast

  • Posts: 5920
Re: Topics strict problem
« Reply #1 on: June 03, 2019, 05:35:56 PM »
Quote
Wenn bei STRICT und INSERT INTO in der add_topic.php wirklich jedes Feld angegeben werden muss, dann sind die dort vorhandenen 8 Angaben genau 27 zu wenig

nicht jedes Feld, "nur" jedes ohne eine default-Definition in der install.php, allerdings verwendet topics ja mehrere Tabellen, so das 27 vielleicht doch hin kommt oder nicht ausreichend ist.

Ich habe hier eine Vers 0.9.4.2, was ist denn aktuell?

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #2 on: June 03, 2019, 05:45:05 PM »
Hatte eine dunkle Erinnerung an Dietmars Worte ... text muss, ansonsten varchar wenn kein default wert. Spart ein paar.

Funktioniert hier nicht mit v0.9.1 und 0.9.4.1. Ein Blick in die add_topic.php müsste reichen.

Offline Gast

  • Posts: 5920
Re: Topics strict problem
« Reply #3 on: June 03, 2019, 05:53:49 PM »
0.9.0 ist wohl die letzte, die hier promoted wurde, alles andere dann bei den Kollegen und keine Ahnung, was davon hier noch läuft

Willst du es selber richten, mach dir in der Install.php hinter jedem Insert eine Fehlerkontrolle nach diesem Muster

Quote
if (!$database->query($SQL)){
  $admin->print_error($database->get_error());
}

der grün markierte Teil muß jeweils zur Definition vor dem Insert passen, also hier
Quote
$SQL = "CREATE TABLE IF NOT EXISTS....

Weiterleitung in den WB-Optionen auf -1 und dann manueller Install und Stück für Stück

in der mod_topics wären das diese Felder
Quote
      . '`groups_id` VARCHAR(255) NOT NULL DEFAULT \'\',' //new field
      . '`modified_by`  VARCHAR(255) NOT NULL DEFAULT \'\','
      . '`authors`  VARCHAR(255) NOT NULL DEFAULT \'\',
      . '`title` VARCHAR(255) NOT NULL DEFAULT \'\','
      . '`short_description` VARCHAR(255) NOT NULL DEFAULT \'\','
      . '`description` VARCHAR(255) NOT NULL DEFAULT \'\','
      . '`keywords` VARCHAR(255) NOT NULL DEFAULT \'\','
      . '`picture` VARCHAR(255) NOT NULL DEFAULT \'\','
      . '`is_master_for` VARCHAR(255) NOT NULL DEFAULT \'\','
      . '`see_also` VARCHAR(255) NOT NULL DEFAULT \'\','

die fehlen
aber in den anderen Tabellen fehlen auch welche
Zusätzlich müßte man die Scripte durchschauen, z.b. bei jedem INSERT

Alternativ: Modul anhängen

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #4 on: June 03, 2019, 06:05:13 PM »
Müssten noch ein paar mehr sein. Damit gehts.

Code: [Select]
<?php // nur bunt
$Sql =  'INSERT INTO `'.TABLE_PREFIX.'mod_'.$tablename.'` SET '
                   
.  '`section_id`= '.$section_id.' , '
                   
.  '`page_id`= '.$page_id.', '
                   
.  '`groups_id` = \'\', '
                   
.  '`active`= 1, '
                   
.  '`posted_first`= '.$t.', '
                   
.  '`posted_by`= '.$theuser.', '
                   
.  '`modified_by`= \'\', '
                   
.  '`authors`= '.$theuser.', '
                   
.  '`position`= '.$position.', '
                   
.  '`link` = \'\', '
                   
.  '`title` = \'\', '
                   
.  '`short_description`= \'\', '
                   
.  '`description`= \'\', '
                   
.  '`keywords`= \'\', '
                   
.  '`picture`= \'\', '
                   
.  '`is_master_for`= \'\', '
                   
.  '`content_short`= \'\', '
                   
.  '`content_long`= \'\', '
                   
.  '`content_extra`= \'\', '
                   
.  '`commenting`= '.$commenting.', '
                   
.  '`see_also`= \'\', '
                   
.  '`tagcloud`= \'\', '
                   
.  '`rating_base`= \'\', '
                   
.  '`txtr1`= \'\', '
                   
.  '`txtr2`= \'\', '
                   
.  '`txtr3`= \'\', '
                   
.  '`pnsa_cache` = \'\' ';
// $database->query($Sql);

if (!$database->query($Sql)){
  
$admin->print_error($database->get_error());
}

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #5 on: June 03, 2019, 06:29:26 PM »
In der save_topic.php wird mir gerade etwas schwindlig.
Wenn ich die Lust verliere das zu korrigieren, hab ich zum Glück schon vereinbart ein anderes Modul zu nehmen (OFA) und die Einträge zu übertragen.

Vielleicht sollte man da ein transfer-script basteln. :-)

Offline Gast

  • Posts: 5920
Re: Topics strict problem
« Reply #6 on: June 03, 2019, 06:48:43 PM »
wobei OFA vom Code her das gleiche Problem ist wie Bakery und topics. Die Probleme, die Manu hier aufgezeigt hat, gelten da ja auch. Ein kleines 10-Dateien-Modul läßt sich da noch schnell fixen, aber die komplexeren Sachen wie OFA, Download- oder Foldergallery oder gar ProCalendar, das wird schon sehr umfangreich

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #7 on: June 03, 2019, 07:02:18 PM »
Ja OFA ist da auch nicht perfekt. Zumindest bricht es nicht mit weißer Seite ab.
Duplizieren klappt nicht. Aber sonst ist mir da noch nichts aufgefallen.

Offline CodeALot

  • Posts: 451
  • Gender: Male
Re: Topics strict problem
« Reply #8 on: June 04, 2019, 01:36:11 AM »
Duplicating in OFA works like it should do. What errors do you encounter?

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #9 on: June 04, 2019, 07:29:18 AM »
Hi, you can't duplicate a item if your database work in strict mode.
In save_item.php line 603 (Insert new row into database) are some values missing.
scheduling, link and description. Therefore saving is aborted. You go back without a duplicated item.

If you are not in strict mode OFA works like it should.

Offline Gast

  • Posts: 5920
Re: Topics strict problem
« Reply #10 on: June 04, 2019, 11:50:44 AM »
Quote
save_item.php line 603 (Insert new row into database) are some values missing.

replace the originalcode
Code: [Select]
$database->query('INSERT INTO `'.TABLE_PREFIX.'mod_'.$mod_name.'_items` (`section_id`, `page_id`, `position`) VALUES ('.(int)$section_id.', '.(int)$page_id.', '.(int)$position.')');
with this code
Code: [Select]
// Insert new row into database
    $sql = 'INSERT INTO `'.TABLE_PREFIX.'mod_'.$mod_name.'_items` SET '
      .   '`section_id` = '.(int)$section_id.', '
      .   '`page_id` = '.(int)$page_id.', '
      .   '`title` = \'\', '
      .   '`link` = \'\', '
      .   '`description` = \'\', '
      .   '`position` = '.(int)$position.', '
      .   '`scheduling` = \'\', '
      .   '`main_image` = \'\', '
      .   '`modified_when` = \''.time().'\', '
      .   '`modified_by` = '.(int)$admin->get_user_id().' ';
   
    // Check if there was a db error
    if (!$database->query($sql)){
      $admin->print_error($database->get_error());
    }

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #11 on: June 04, 2019, 08:53:24 PM »
Habe jetzt topics versucht auf strict anzupassen.
Im Prinzip funktioniert es bei install, upgrade, verschieben, duplizieren usw..

In topics 0.7 gab es mal 3 Felder mehr, irgendwas mit rating. Wer das noch hat, könnte auf ein strict-Problem stoßen.
Müsste man eigentlich von Hand oder bei install entfernen.

Bin erstmal froh so weit zu sein. Weitere Tests sind gern gesehen.

Anhang im späteren Post ...
« Last Edit: June 05, 2019, 01:24:05 PM by dbs »

Offline grindmobil

  • Posts: 50
Re: Topics strict problem
« Reply #12 on: June 04, 2019, 09:50:16 PM »
Was bastelt ihr denn jetzt schon wieder?
Eine Spezial Version des wbce-moduls für wb? Und was, wenn's Mal ein Update gibt?

Offline evaki

  • Posts: 2810
Re: Topics strict problem
« Reply #13 on: June 04, 2019, 10:10:21 PM »
Alle Module MÜSSEN über kurz oder lang im Strict-Modus laufen.
Das hat NIX mit WB zu tun!
WB ist darauf vorbereitet, und deshalb ist es wenig sinnvoll Module nicht anzupassen.
Wenn's denn notwendig wird halt auch bei 'nem Update zu wiederholen.
Ist dann aber nicht problematisch, da der Code ja dann vorliegt.

Nedenn Gruß aus Hammaburch, Evaki.



Offline grindmobil

  • Posts: 50
Re: Topics strict problem
« Reply #14 on: June 04, 2019, 10:13:57 PM »
Wer sagt das? Der 138. Guru von hinten?
Wenn's soweit ist, kann man ja geordnet machen.

Offline evaki

  • Posts: 2810
Re: Topics strict problem
« Reply #15 on: June 04, 2019, 10:15:39 PM »
Quote
Wer sagt das? Der 138. Guru von hinten?
Hehe, der ist gut.

Aber mal Quatsch beiseite. Seit dem letzten Jahr haben etliche Provider auf v5.7 umgeschaltet, wo denn strict default ist. Nun hat man bei WB die Chance ergriffen, schon mal früher als sonst anzusetzen, also moglichen Problemen diesbezüglich aus dem Weg zu gehen, und dann ist es auch nicht gut? Ich selbt bin froh, wegen so'nem Schei... nicht mehr aus meinem Anwenderkreis angeprochen zu werden, außer wenn's mal'n uralt-Module trifft.

Den Kram zieht man einmalig durch, un jut is.
MfG. Evaki
« Last Edit: June 04, 2019, 10:29:29 PM by evaki »

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #16 on: June 04, 2019, 10:24:01 PM »
Wie geschrieben
Quote
Topic hinzufügen gibt zwar grüne Bestätigung, aber von da aus geht es dann nicht weiter bzw man sieht nur noch das Backend Menü. Darunter ist alles weiß.

Wenn der User mich dann anruft, kann ich nichts von Gurus erzählen, sondern muss handeln.

Offline evaki

  • Posts: 2810
Re: Topics strict problem
« Reply #17 on: June 04, 2019, 10:36:51 PM »
Man kann's doch auch anders herum betrachten.
Du lieferst ein schönes Modul, wo WB-Anwender sich drüber freuen, und hier macht jemand einen auf strict. Also profitieren doch alle davon.
Versteh' ehrlich gesagt das Problem nicht.
Ist doch noch eine der wenigen Chancen miteinander konstruktiv umzugehen.
MfG. Evaki

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #18 on: June 04, 2019, 11:31:01 PM »
Hatte mir leider meine Online Änderungen beim Upgrade Test zunichte gemacht.
War eigentlich verwendungstauglich, aber das Upgrade hatte die Änderungen nicht drin. *grrr*
Neuer Tag - Neues Glück.

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #19 on: June 05, 2019, 01:23:17 PM »
Basis ist ein topics 0.9.4.1
Wer Probleme mit Topics und strict hat kann die Version mal testen.
Hab so viel gemacht bis bei mir keine Probleme mit Strict mehr auftraten. Aber jeder arbeit ja anders.

Es ist audrücklich eine Testversion, deshalb die Versionsnummer auch nicht erhöht. Neuere WB's können gleiche Modul-Versionsnummern quasi drüberinstallieren. So kann man auch wieder seine alte original Version 0.9.4.1 danach installieren, falls nichts mehr geht.

Sicher wurde etwas übersehen oder ist zu viel geändert.
Wäre ganz gut, wenn Uwe auch mal drüberschaut.
« Last Edit: June 05, 2019, 03:31:30 PM by dbs »

Offline Gast

  • Posts: 5920
Re: Topics strict problem
« Reply #20 on: June 05, 2019, 03:20:36 PM »
Wäre ganz gut, wenn Uwe auch mal drüberschaut.

nimm mal den Anhang in letzten Post wieder raus bitte, der Install funktionierte garnicht

Type = TEXT darf kein DEFAULT VALUE mehr haben
Date-Format = '0000-00-00' ist kein valider default-Wert mehr

kommt aber noch mehr

P.S.: hat wohl funktioniert, weil die Tabellen vor der Aktivierung des Strict-Mode erstellt wurden (vermute ich)

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #21 on: June 05, 2019, 03:40:48 PM »
War eine Neuinstallation. Wußte nicht, dass nach Deinstallation noch Tabellen übrig bleiben (3 Stück).
Aber auch nach Löschen der Tabellen und Neuinstallation hab ich hier keine Porbleme mit dem Modul.
Ist dein Strict Mode stricter als strict?

Offline Gast

  • Posts: 5920
Re: Topics strict problem
« Reply #22 on: June 05, 2019, 03:45:40 PM »
Ist dein Strict Mode stricter als strict?

ich denke schon, aber auch nicht so strict wie das vom User "Paulchen"  :oops:

Es kommt auf die Mysql-Version an. Die beiden genannten Punkte waren ja früher erlaubt bzw wurden nicht beanstandet

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #23 on: June 05, 2019, 03:58:48 PM »
Du meinst sicher die install.php. Ja, komisch, damit hatte ich keine Probleme.
Aber richtig, darin ist nicht alles wie es sein sollte für strict. Da hat meine MariaDB wohl paar Anweisungen bekommen. Werd ich mal prüfen.

Offline grindmobil

  • Posts: 50
Re: Topics strict problem
« Reply #24 on: June 05, 2019, 04:00:46 PM »
So, jetzt mit Tastatur..

Zu MySQL-Strict
Ich betreue ein paar Hundert Websites bei unterschiedlichsten Hostern - wo eben die Kunden  so sind.
Kein EINZIGER davon hat den Strikt Mode im Angebot, geschweige denn zwingend.
Ich habe auch nie etwas gehört, dass da was kommen würde.

Und da gibt es auch gute Gründe dafür:
Der Strikt Mode hat nur sehr theoretische Vorteile, in der Praxis keine. (Geschwindigkeit? Nein. Sicherheit? Nein)
Dafür hat man in der Praxis (als Hoster) den massiven Nachteil, dass man dauernd Kunden am Telefon hat, denen man die theoretischen Vorteile NICHT klar machen kann.

Und zum Thema:
Topics ist ein Core-Modul von WBCE und wird auch vom WBCE-Team gepflegt. Colinax macht das.

Wenn ihr Topics auf SQL-Strikt ändern wollt, dann haltet euch bitte an die Gepflogenheiten: Nehmt Kontakt auf, verwendet die neueste Version und gebt sie dann wieder so zurück, dass sie auch mit WBCE funktioniert. Wir sind ja keine Berserker hier.

Noch wissenswertes:
Topics löscht bei einer Deinstallation die Tabellen nicht, sondern benennt sie um. Das ist so, weil da sehr viel Inhalt drin sein kann und nicht jeder Trottel mal alles löschen können soll.
Auch Topics mit mehr Inhalt werden nicht gelöscht, sondern bekommen eine negative section_id

Die alten Felder mit rating sind obsolet, das ist über den Gedanken nie hinaus gekommen.