Topics strict problem

Gast

Quote from: dbs on June 05, 2019, 01:23:17 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)

dbs

#20
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.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

dbs

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.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

evaki

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

dbs

Wie geschrieben
QuoteTopic 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.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

evaki

#16
QuoteWer 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

grindmobil

Wer sagt das? Der 138. Guru von hinten?
Wenn's soweit ist, kann man ja geordnet machen.

evaki

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.



grindmobil

Was bastelt ihr denn jetzt schon wieder?
Eine Spezial Version des wbce-moduls für wb? Und was, wenn's Mal ein Update gibt?

dbs

#12
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 ...
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

Gast

Quotesave_item.php line 603 (Insert new row into database) are some values missing.

replace the originalcode
$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
// 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());
    }

dbs

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.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

CodeALot

Duplicating in OFA works like it should do. What errors do you encounter?

dbs

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.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

Gast

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

dbs

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. :-)
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

dbs

Müssten noch ein paar mehr sein. Damit gehts.

<?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());
}
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

Gast

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

Quoteif (!$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

dbs

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.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

Gast

QuoteWenn 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?

dbs

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
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]