Modul MultiColumn - Mehrspalten Layout

Addons, die speziell für BlackCat CMS entwickelt wurden/werden
DG70
Beiträge: 39
Registriert: Fr 5. Dez 2014, 12:59

Re: Modul MultiColumn - Mehrspalten Layout

Beitrag von DG70 » Fr 23. Feb 2018, 11:36

So, gefunden. Jetzt sieht das Backend wieder normal aus.

Ich habe die headers.inc.php in headers_inc/pricing angepasst. Dort stand "nur" der Pfad für das frontend.css .
Nachdem ich die Pfade für das backend hineinkopiert habe, sieht es gut aus.

Vielen Dank für Deine Unterstützung.

Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul MultiColumn - Mehrspalten Layout

Beitrag von shadowcat » Fr 23. Feb 2018, 13:00

Ja, da bin ich bei meinen Versuchen auch drauf gestoßen. Ich krieg' die GitHub-Version nicht so richtig ans Fliegen, da ist so einiges "halb-implementiert", zu dem mir die Infos fehlen. Aber da Du das jetzt für Dich gelöst hast, lassen wir es einfach erst mal dabei.

@creativecat: Ich lade meine Anpassungen mal in einen eigenen Branch, dann kannst Du schauen, was Du davon übernimmst.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul MultiColumn - Mehrspalten Layout

Beitrag von shadowcat » Fr 23. Feb 2018, 13:01

Das mit der headers.inc geht übrigens auch so:

Code: Alles auswählen

<?php

include dirname(__FILE__).'/../default/headers.inc.php';

$mod_headers['frontend']['css'][] = array(
	'media'		=> 'all',
	'file'		=> 'modules/cc_multicolumn/css/pricing/frontend.css'
);

My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul MultiColumn - Mehrspalten Layout

Beitrag von shadowcat » Mi 28. Feb 2018, 12:16

Bei mir funktioniert MC Version 2.0.0.2 mit BC 1.3.1 in der Portable (PHP 7.1.2) nicht, weil schon bei der Installation Mecker kommt, dass der Index zu lang sei. :shock: Ging das nicht mal? In der Portable (USBWebserver) ist mySQL 5.6.13 enthalten. Möglicherweise gibt es da Unterschiede zwischen den Versionen, was die Länge des Index angeht.

Ich würde gern auf Basis von 2.0.0.2 einen Branch für eine Version 2.0.0.3 machen, um darin die Fehler zu korrigieren. Wäre das okay? Das wäre dann nur das MYSQL_ASSOC und das Problem mit dem Index, da müssen wir uns nur einigen, wie die Änderung aussehen soll. Reicht da ein VARCHAR(50) bei der Spalte "name", oder muß das wirklich 255 = text sein?
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul MultiColumn - Mehrspalten Layout

Beitrag von shadowcat » Mi 28. Feb 2018, 12:20

https://dev.mysql.com/doc/refman/5.7/en ... tions.html
If innodb_large_prefix is enabled (the default), the index key prefix limit is 3072 bytes for InnoDB tables that use DYNAMIC or COMPRESSED row format. If innodb_large_prefix is disabled, the index key prefix limit is 767 bytes for tables of any row format.

innodb_large_prefix is deprecated and will be removed in a future release. innodb_large_prefix was introduced in MySQL 5.5 to disable large index key prefixes for compatibility with earlier versions of InnoDB that do not support large index key prefixes.

The index key prefix length limit is 767 bytes for InnoDB tables that use the REDUNDANT or COMPACT row format. For example, you might hit this limit with a column prefix index of more than 255 characters on a TEXT or VARCHAR column, assuming a utf8mb3 character set and the maximum of 3 bytes for each character.

Attempting to use an index key prefix length that exceeds the limit returns an error. To avoid such errors in replication configurations, avoid enabling innodb_large_prefix on the master if it cannot also be enabled on slaves.

The limits that apply to index key prefixes also apply to full-column index keys.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul MultiColumn - Mehrspalten Layout

Beitrag von shadowcat » Mi 28. Feb 2018, 12:53

Anscheinend gibt es da einen Unterschied zwischen mySQL und mariaDB, obwohl die Infos bei beiden übereinstimmen. Im XAMPP ist mariaDB enthalten, da kann ich die Tabelle ohne weiteres mit der vorhandenen Definition anlegen. Im Portable ist mySQL enthalten, da geht das nicht.

In der Doku bei mariaDB finde ich folgenden Hinweis:
Recommendation. Keep the PRIMARY KEY short.
Da wäre die Frage, ob das unbedingt ein PK sein muß, oder ob da nicht ein UNIQUE reichen würde.

Original

Code: Alles auswählen

CREATE TABLE  `mod_cc_multicolumn_content_options` (
`column_id` INT NOT NULL DEFAULT '0',
`page_id` INT NOT NULL DEFAULT '0',
`section_id` INT NOT NULL DEFAULT '0',
`name` VARCHAR(255) NOT NULL DEFAULT '',
`value` VARCHAR(2047) NOT NULL DEFAULT '',
PRIMARY KEY ( `column_id`, `page_id`, `section_id`, `name` )
)
Fälschung

Code: Alles auswählen

CREATE TABLE `mod_cc_multicolumn_content_options` (
	`column_id` INT(11) NOT NULL DEFAULT '0',
	`page_id` INT(11) NOT NULL DEFAULT '0',
	`section_id` INT(11) NOT NULL DEFAULT '0',
	`name` VARCHAR(255) NOT NULL DEFAULT '',
	`value` VARCHAR(2047) NOT NULL DEFAULT '',
	PRIMARY KEY (`column_id`),
	UNIQUE INDEX `column_id_page_id_section_id_name` (`column_id`, `page_id`, `section_id`, `name`)
)
Mag mySQL allerdings auch nicht. Da müßte man `name`deutlich kürzen, z. B. auf 150.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul MultiColumn - Mehrspalten Layout

Beitrag von shadowcat » Mi 28. Feb 2018, 13:05

Mit folgenden Änderungen funktioniert's jetzt bei mir.

class.multicolumn.php

Code: Alles auswählen

		public function getVariant()
		{
			if ( isset( $this->options['_variant'] ) )
				return $this->options['_variant'];

			$this->getModuleVariants();
			$this->getOptions('variant');

			$variant	= isset($this->options['variant']) // <<<--- ich bekam da ein 'undefined index', allerdings fehlten bei mir auch DB-Einträge
                && $this->options['variant'] != ''
				&& isset($this->module_variants[$this->options['variant']]) ?
						$this->module_variants[$this->options['variant']] : 
						'default';

			$this->options['_variant']	= $variant;

			return $this->options['_variant'];
		}
install.php

Code: Alles auswählen

	// Create table for options
	$pageHelper->db()->query("DROP TABLE IF EXISTS `" . CAT_TABLE_PREFIX . "mod_cc_multicolumn_options`");
	$mod_create_table = 'CREATE TABLE  `'.CAT_TABLE_PREFIX.'mod_cc_multicolumn_options` ('
		. ' `page_id` INT NOT NULL DEFAULT \'0\','
		. ' `section_id` INT NOT NULL DEFAULT \'0\','
		. ' `name` VARCHAR(150) NOT NULL DEFAULT \'\','
		. ' `value` VARCHAR(2047) NOT NULL DEFAULT \'\','
		. ' PRIMARY KEY ( `page_id`, `section_id`, `name` )'
		. ' )';
	$pageHelper->db()->query($mod_create_table);

	// Create table
	$pageHelper->db()->query("DROP TABLE IF EXISTS `" . CAT_TABLE_PREFIX . "mod_cc_multicolumn_content_options`");
	$mod_create_table = 'CREATE TABLE  `'.CAT_TABLE_PREFIX.'mod_cc_multicolumn_content_options` ('
		. ' `column_id` INT NOT NULL DEFAULT \'0\','
		. ' `page_id` INT NOT NULL DEFAULT \'0\','
		. ' `section_id` INT NOT NULL DEFAULT \'0\','
		. ' `name` VARCHAR(150) NOT NULL DEFAULT \'\','
		. ' `value` VARCHAR(2047) NOT NULL DEFAULT \'\','
		. ' PRIMARY KEY ( `column_id`, `page_id`, `section_id`, `name` )'
		. ' )';
	$pageHelper->db()->query($mod_create_table);
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul MultiColumn - Mehrspalten Layout

Beitrag von shadowcat » Mi 28. Feb 2018, 13:16

My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

DG70
Beiträge: 39
Registriert: Fr 5. Dez 2014, 12:59

Re: Modul MultiColumn - Mehrspalten Layout

Beitrag von DG70 » Do 8. Mär 2018, 21:11

So ... die Version "MultiColumn_for_BlackCatCMS-master" von GitHub geladen und bei Auswahl "pricing" Fehler im Backend:

Error in \modules\cc_multicolumn\inc\class.multicolumn.php line 298

Sieht original so aus:

296 $this->contents[$row['column_id']] = array(
297 'column_id' => $row['column_id'],
298 'published' => $row['published'],
299 'content' => stripslashes( $row['content'] ),
300 'contentname' => sprintf( 'content_%s_%s', self::$section_id, $row['column_id'] )

Nach dem löschen der Zeile 298 läuft es ohne Fehlermeldung (lokal mit Xampp)


Im Backend "pricing" gibt es noch so einige englische Bezeichnungen ... ich habe die Übersetzung in languages/DE.php nach besten Wissen und Gewissen ergänzt. Damit es auch zum Layout passt, habe ich die column.tpl in \modules\cc_multicolumn\templates\pricing\modify angepasst:
von <strong class="cc_In100px"> in <strong class="cc_In200px">

Keine Ahnung ob solche Korrekturen Erwünscht sind, bzw wie die Projektpflege gehandhabt wird ... deshalb hier die "neuen" Versionen zur freien Verwendung:
Dateianhänge
korr_4_cc_multicolumn.zip
(2.83 KiB) 17-mal heruntergeladen

DG70
Beiträge: 39
Registriert: Fr 5. Dez 2014, 12:59

Re: Modul MultiColumn - Mehrspalten Layout

Beitrag von DG70 » Fr 9. Mär 2018, 19:55

Ich musste die Sprachdatei DE.php noch einmal ändern ... es hatte sich ein kleiner Fehler eingeschlichen.
Aus "Reorder" wurde "Recorder" ... seltsame Rechtschreibprüfung ...
Korrigierte Version ist nun online. Sorry!

Antworten