Modul von Digidesk

Hallo,

ich habe folgendes Modul installieren wollen:

composer require digidesk/couponselling

Folgende Fehlermeldung ist erschienen:

[InvalidArgumentException]
Could not find a matching version of package digidesk/couponselling. Check the package spelling, your version constraint and that the package is available in a sta
bility which matches your minimum-stability (stable).

Woran kann das liegen?
Das Basismodul dazu habe ich schon installiert.

Ich verwende CE 6.2.1
PHP Version 7.3

Danke…

Ich weiĂź nicht, ob es mit Contao funktionieren soll/kann/wird,
aber hast du auch die ersten zwei Schritte der Installationsanleitung befolgt oder hast du einfach mitten drin im Schritt 3 angefangen?

ja hab auch 1 und 2 ausgefĂĽhrt.

wobei das basismodul base im Ordername den Zusatz PHP72 hat und das Gutschein Modul couponselling PHP71.

bei couponselling war leider keine aktuellere Version dabei, obwohl ich es eigentlich für php 7.2 bis 7.4 gekauft habe…

sorry meinte natürlich oxid (CE 6.2.1) …

Funktioniert denn das basis Modul aus dem PHP72 Ordner?
Ich wĂĽrde mal versuchen den PHP71 Ordner einfach in PHP72 oder PHP73 umzubenennen.
Ansonsten kann dir nur der Digidesk Support helfen, da es sich hierbei um deren kostenpflichtige und verschlüsselte Module handelt. Wir können so ohne soruce Code leider nicht sagen, ob es überhaupt unter PHP 7.3 funktionieren sollte und welche Rollte diese Ordner spielen

1 Like

das ist nur der ordner name beim download, wird danach entpackt und nicht mehr benötigt…

das basismodul funktioniert.

der shop läuft aber noch nicht unter der finalen url, ev. liegt es daran?

okay, da ich das Modul nicht habe und deswegen nicht selbst installieren kann, wird es ab hier rein theoretisch sein.
Die IonCube Verschlüsselung ab Version 5.6 sollte mit allen höheren PHP Versionen kompatibel sein, d.h. eine Datei, die für 5.6 oder 7.1 verschlüsselt wurde, soltle auch mit 7.2 oder 7.3 funktionieren.
Probleme können nur von dem eigentlichen PHP Code kommen, wenn bestimmte Funktionen in neueren PHP Versionen nicht mehr verfügbar sind. Dies könnte man in diesem Fall aber nicht fixen, da der Code des Moduls verschlüsselt ist. Wir wissen aber aktuell noch nicht, ob dieser Fall überhaupt eintritt.

Im Moment scheitert es an der Installation.
Ich könnte mir spontan zwei mögliche Ursachen vorstellen:

  1. Composer findet das gewĂĽnschte Package gar nicht
    Generell läuft es so ab: Composer muss das gewünschte Paket irgendwoher beziehen. Es gibt die zentrale Datenbank, genannt packagist. Man kann ebenfalls private Datenbanken in der composer.json Datei des Shops hinterlegen oder wie in diesem Fall (wahrscheinlich), den Pfad auf der Festplatte nach dem gewünschten Paket (Modul) durchsuchen lassen, hierfür sind aber ebenfalls Anpassungen an der conposer.json nötig.
    Ich konnte keine Doku / Installationsanleitung fĂĽr das Basis Modul finden, hast du dafĂĽr irgendwas in der composer.json des Shops hinzugefĂĽgt?
    Vermutlich sowas:
"repositories": [
   {
      "type": "path",
      "url": "packages/digidesk"
   }
],

(vielleicht auch ohne “digidesk”)
oder sowas:

"repositories": {
   "digidesk/basismodul": {
      "type": "path",
      "url": "packages/digidesk/basismodul"
   }
},
  1. Composer findet zwar das Package, will es aber nicht installieren,
    weil es keine stable Version ist.
    In der composer.json des Shops steht relativ am Anfang sowas: "minimum-stability": "stable",
    Deswegen darf composer nur stable Versionen installieren und wenn die Version des Moduls nicht als stable erkannt wird, darf composer es nicht installieren.
    Guck mal in die composer.json vom Modul (mĂĽsste in packages/digides/couponselling/ liegen), da mĂĽsste irgendwo "version": "xxxxxx", stehen. Gibts das? Was steht drin?

Vielen vielen Dank!!!
Es hat funktioniert… :slight_smile:

Es stand in der composer.json:

"repositories": {
   "digidesk": {
      "type": "path",
      "url": "packages/digidesk/base"
   }
},

statt:

"repositories": {
   "digidesk": {
      "type": "path",
      "url": "packages/digidesk/*"
   }
},

Nur noch als Ergänzung und Bestätigung aus meinen Erfahrungen:

In einigen 6.2er Shops habe ich eine größere Menge an Modulen drin, die ich direkt als ZIP bekommen habe. Diese Module packe ich alle in ein separates Verzeichnis “extensions” parallel zum “vendor” und “source”-Pfad.
Also hier mein Bsp. zufällig genau mit dem Digidesk-Gutscheinmodul so:

extensions\digidesk\dd_base
extensions\digidesk\dd_coupons_selling
source\...
vendor\...

In der Shop-composer.json dann folgende Einträge:

"repositories": [
...
    {"type": "path", "url": "extensions/digidesk/*", "options": {"symlink": false}}
...
],
"require": {
...
    "digidesk/base": "2.1.9",
    "digidesk/couponselling": "3.4.5"
...
}

Und mein größter Fallstrick mit den ionCube-Modulen ist immer, die passende PHP-Version sowohl als Frontend-PHP als auch als CLI-PHP eingerichtet zu haben. Das betrifft die Entwicklungsumgebung und später dann die Live-Umgebung. Im oben genannten Fall haben wir noch ein PHP7.2 laufen. Für PHP7.4 müsste ich mir dann erst wieder ein neu verschlüsseltes Modul besorgen. Denn von PHP7.2 zu PHP7.4 gibt es auch einen Versions-Sprung in der ionCube-Bibliothek.

1 Like

Wenn ich via composer ein Modul installiere, muss ich dann die weiteren Updates alle mit y bestätigen?
do you want to overwrite them (y/N)

Ich habe das Modul jetzt ohne weitere Updates installiert (N)
Jetzt erscheint im Backend folgende Fehlermeldung:

Es werden unterschiedliche Kollationen fĂĽr die ID-Felder verwendet:

  • ddmedia
    • OXID - latin1_general_ci
  • fcpopayment2country
    • OXID - latin1_general_ci
  • fcpopdfmandates
    • OXORDERID - latin1_general_ci
  • fcporatepay
    • OXPAYMENTID - latin1_general_ci
    • OXID - latin1_general_ci
  • fcpouser2flag
    • OXUSERID - latin1_general_ci
    • OXID - latin1_general_ci
  • fcpouserflags
    • OXID - latin1_general_ci
      …

Steht irgendwo nicht latin1? Ggf utf8

Im Backend bei den Fehlermeldungen steht ĂĽberall OXID - latin1_general_ci

Habe mir das in phpMyAdmin angesehen.

Dort steht z.B. bei
ddmedia utf8_general_ci

Muss ich das überall händisch aktualisieren/ändern?! :worried:

nein, nur bei ddmedia von utf8 auf latin1 ändern, dann geht die Fehlermeldung weg

Ok danke.

Aktuell sieht das so aus:

Was genau muss ich da umstellen/ändern und wo?

Danke…

ne stop, da ist alles richtig.
Ich hatte vergessen, wie OXID an dieser Stelle funktioniert.

Es mĂĽsste mindestens eine andere Tabelle direkt ĂĽber ddmedia geben.
Ich vermute mal irgendwas, was mit dem neuen Modul zu tun hat.
Öffne diese Tabelle so im PhpMyAdmin, wie du ddmedia aufgemacht hast, dann siehst du oben die Liste der Felder in der Tabelle und rechts neben “OXID” wird “utf8_general_ci” stehen, wo bei ddmedia “latin1_general_ci” steht. Da klickst du rechts auf den Bleistift und im Dropdown für die Kollation änderst du utf8_… zu latin1_general_ci, dann speichern.

Vielen Dank, es hat funktioniert!! :slight_smile:

Über ddmedia stand noch ddcoupontemplates…