Erstelle eine neu Module In EC (Oxid 6.2)

Erste will sage, dass ich bevor habe ich keine Erfahrung mit Module und Theme gehabt…

Hier sprecht, wie man eine Theme baue…

Bevor die ich anfangs, möchte frage, ob ich gut verstand habe…

Die neu Theme möchte heißt kalamulur und dem Theme die ich möchte, benutze ist Wave weil sie Bootstrap 4 hat…

so, ich will in Application/views mein neu Module schreibe,

    {
         "name": "oxid-esales/kalamulur-theme",
        "description": "This is Kalamulur theme for OXID eShop.",
        "type": "oxideshop-theme",
        "keywords": ["oxid", "themes", "eShop"],
        "homepage": "https://www.oxid-esales.com/en/home.html",
         "license": [
              "GPL-3.0-only",
              "proprietary"
        ],
       "extra": {
       "oxideshop": {
       "target-directory": "kalamulur",
       "assets-directory": "out/kalamulur"
      }
    }
}

Nachdem ich das gemacht habe, aktiviere sie in dem Fenster Themes.

Meine Frage, sind alle diesen schritten gut gemacht?

Oder besser mache wie hier gesagt ist,

  1.  /application/views/wave/
    

kopieren und umbenennen in

 /application/views/kalamulur/

/out/wave/

kopieren und umbenennen in

/out/kalamulur/

Die theme.php anpassen, Theme ID muss identisch zum Ordnernamen myTheme sein.

/**  * Theme Information  */
 $aTheme = array(
 'id' => 'kalamulur',
 'title'=> 'kalamulur',
 'description'=> 'Individualisiertes Theme (Vorlage Wave Theme)',
 'thumbnail'=> 'theme.jpg',
 'version'=> '1.0.0',
 'author' => 'Joseba Olasagarre',
);

meine Erste frage…auf dieser Datei verändert nur das, oder muss mehr verändert ?

Themeeinstellungen aus der Datenbank übernehmen. Beispiel aus dem OXID Kochbuch von Joscha Krug und Dr. Roman Zenner .

Codeschnipsel zum Kopieren der Themeeinstellungen.

von dem Codeschnipsel veränder nur,

SET @targetTheme='theme:kochbuch';

zum

SET @targetTheme='theme:kalamulur';

Auf dem Datenbank…

Ja, aber den Wert für “name” würde ich ändern z.B. in “joseba/kalamulur-theme”.

Zum besseren Verständnis der Punkt “name” ist dafür da, dass sich der Software Autor zu erkennen gibt inkl. die Softwarebezeichnung weitere Infos zum Schema https://getcomposer.org/doc/04-schema.md#name

oxid-esales = wäre hier z.B. der Software Autor als Firma, dass dies stimmt ja nicht weil Du nicht für OXID eSales arbeitest

kalamulur-theme = wäre korrekt weil so Deine Softwarebezeichnung lautet

Dies wäre zusätzlich ratsam, weil Du nicht von vorne beginnen möchtest.

ps. Aber meine verlinkte Anleitung oben unter hier kannst Du auf die OXID6 Version nur im übertragenden Sinne verwenden nicht 1 zu 1, weil die verlinkte Anleitung ist für eine ältere Shopversion verfasst. Daher der Weg über die offizielle Dokumententation der beste Weg.

Viel danke für deine Antwort! , über der “name” Wert du meinst mit ‘author’ ?

ich soll verändert von

'author' => 'Joseba Olasagarre',

nach

'author' => 'joseba/kalamulur-theme',

Kannst du Bitte besser erklärt:

Aber meine verlinkte Anleitung oben unter hier kannst Du auf die OXID6 Version nur im übertragenden Sinne verwenden nicht 1 zu 1, weil die verlinkte Anleitung ist für eine ältere Shopversion verfasst. Daher der Weg über die offizielle Dokumententation der beste Weg.

Nein, author wäre ein neue Angabe. Die kannst natürlich auch ergänzen.
Ich wollte Dir nur den Aufbau vom Wert “name” erklären.

Software ändert sich mit der Zeit. Die Software von 2015 ist eine andere Software als im Jahre 2020. In diesen 5 Jahren hat sich viel getan. Der Verzeichnisaufbau, die PHP Version etc. Die Anleitung für das Theme aus dem Jahre 2015, aber Du willst ein Theme für das Jahr 2020 verfassen. Daher musst Du selber herausfinden, welche Änderungen es bei der Theme Entwicklung von 2015 bis 2020 gab.

{
         "name": "joseba/kalamulur-theme",
        "description": "This is Kalamulur theme for OXID eShop.",
        "type": "oxideshop-theme",
        "keywords": ["oxid", "themes", "eShop"],
        "homepage": "https://deine-webseite.de",
         "license": [
              "GPL-3.0-only",
              "proprietary"
        ],
       "extra": {
       "oxideshop": {
       "target-directory": "kalamulur",
       "assets-directory": "out/kalamulur"
      }
    },
"authors": [
        {
            "name": "Joseba Olasagarre",
            "email": "[email protected]",
            "homepage": "https://deine-webseite.de",
            "role": "Developer"
        },
    ]
}

https://getcomposer.org/doc/04-schema.md#authors

1 Like

Viel danke für deine bemühst mit mir…was du geschrieben hast, auf welcher Datei soll schreibe, weil auf der Datei theme.php, habe etwas anderes…auf der link der du hast gegeben stehe das ist auf der Datei composer.json, aber gibt es viele Datei mit diesen name…

Ich denke, das ist eine Lösung von mein Erste Frage…

Wie würdest du eine neue Theme erstellen, wie der Erste Beispiel oder der Zweite?

so, wie ich verstand habe…, gibt es zwei Möglichkeiten um Theme zu installieren.

Kopiert das Theme und veränder seine Namen, wie ich habe in meine zweite Frage gemacht…

https://bisweb.me/blog/theme-erstellen.html

Installiert alles mit dieser Methode…

https://docs.oxid-esales.com/developer/en/6.2/system_architecture/module_installation_activation.html

Was ich nicht weiß, welcher Methode es besser…aber ich mache weiter mit dem Erste…

Jetzt habe probleme mit dem Databank…ich habe gefolgt wie Bischoff sagst…

Hier der Code für addiert zum Datenbank

Hier wie es aussiehst,

SET @sourceTheme='theme:azure';
SET @targetTheme='theme:kochbuch';
INSERT INTO oxconfig (OXID, OXSHOPID, OXMODULE, OXVARNAME, OXVARTYPE,   OXVARVALUE )
(SELECT UUID(), OXSHOPID, @targetTheme, OXVARNAME, OXVARTYPE, OXVARVALUE FROM  oxconfig WHERE OXMODULE = @sourceTheme);
INSERT INTO oxconfigdisplay (OXID, OXCFGMODULE, OXCFGVARNAME, OXGROUPING,  OXVARCONSTRAINT, OXPOS)
(SELECT UUID(), @targetTheme,OXCFGVARNAME, OXGROUPING, OXVARCONSTRAINT,  OXPOS FROM oxconfigdisplay WHERE OXCFGMODULE = @sourceTheme);

ich habe verändert,

SET @sourceTheme='theme:azure';

SET @targetTheme=‘theme:kochbuch’;

mit

SET @sourceTheme='theme:wave';
SET @targetTheme='theme:kalamulur';

aber wenn schreibe,

INSERT INTO oxconfig (OXID, OXSHOPID, OXMODULE, OXVARNAME, OXVARTYPE, OXVARVALUE )(SELECT UUID(), OXSHOPID, @targetTheme, OXVARNAME, OXVARTYPE, OXVARVALUE FROM oxconfig WHERE OXMODULE = @sourceTheme);

bekomme dieser Warnung,

ERROR 1146 (42S02): Table ‘mysql.kalamulur’ doesn’t exist

mit SHOW TABLES;

bekomme diese Tabelle liste,

column_stats |
| columns_priv |
| db |
| event |
| func |
| general_log |
| gtid_slave_pos |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| index_stats |
| innodb_index_stats |
| innodb_table_stats |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| roles_mapping |
| servers |
| slow_log |
| table_stats |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| transaction_registry |
| user

diese Liste gehört zum MySQL Datenbank, wenn ich habe Oxid installiert, habe auch eine Datenbank gebaut, er heißt kalamulur, und er hat der Tabelle Name oxconfig und alle Kolumnen der diesem Kommando ruft (OXID, OXSHOPID, OXMODULE, OXVARNAME, OXVARTYPE, OXVARVALUE )

Du bist in der falschen Datenbank drin.

danke für deine antwort!..

Du bist in der falschen Datenbank drin.

ich weiß…ich bin bei MySQL Datenbank…ich habe bemerke als ich sehe der MySQL Tabelle…

wie kann diese Probleme lösen ?

Du musst irgendwo die richtige Datenbank auswählen.
Schau dich mal genauer in der Software um, mit der du an der Datenbank arbeitest, ob man irgendwo die aktive Datenbank auswählen kann, ggf. in den Verbindungseinstellungen.
Ansosnten:
https://dev.mysql.com/doc/refman/8.0/en/use.html

1 Like

danke, mein probleme war das ich keine datanbank Name gegen habe, jetzt mit USE kalamulur ich bin drinen…jetzt bekomme alles Gut :grinning:

Noch andere frage… Nach die Installation bekomme zwei Sprachen, deutsch und englisch(nach dem ich der Ordner wave kopiert un eine neue name gebe…)und wenn möchte noch eins, Beispiel spanisch wie mache das ? auch wenn muss alles neue Installieren…ich frage dich, weil du eine der Oxid-Code gemacht hast…

Ich habe diese Frage von jemand der vor einiger Zeit gemacht gesehen und deine Antwort… das probleme ist das ich bei ihnen vor 5 Tagen angemeldet habe, und bis jetzt habe keine Antwort von ihnen bekomme habe…so, eine diese…

Your login is valid but your account is disabled.
You will receive an e-mail as soon as an administrator approves your account.

your account should be active now

1 Like

danke für deinen bemühtest!

Hallo Joseba,

  1. ist ein alter Blogbeitrag wie man ein Theme erstellt, damals als Best Practise gedacht, mittlerweile könnte dies schon ganz anders aussehen. Aber zum Einstieg sicherlich nicht verkehrt um OXID Themes kennen zu lernen und wie Du Sachen ändern kannst.

  2. Das die Anleitung für Modul Installation dieses ist ein anderes Thema. Module in der Regel dazu da die Core Software zu erweitern

Fazit Methode 1. nicht verkehrt.

Grüße,
Tim