Manufacturer Description
Gyártói leírás és SEO meta adatok kezelése OpenCart 3.0.x / Journal 3 áruházakhoz – OCMOD alapú, core fájl módosítás minimalizálásával. A gyártó adatai alapból az OpenCart-ban elég szegényesek, Nincs több nyelv támogatás, nincs leírás, nincs meta adat. Ez a bővítmény ezt oldja meg.
Mi ez a bővítmény?
A Manufacturer Description bővítmény lehetővé teszi, hogy az OpenCart adminisztrációs felületen minden gyártóhoz leírást és SEO meta adatokat (meta title, meta description, meta keywords) rendelj, nyelvenként külön-külön.
A megadott meta adatok automatikusan megjelennek a gyártó frontend oldalának <head> részében, javítva a keresőoptimalizálást. A leírás a gyártó oldalán jeleníthető meg a témán belül.
A bővítmény az OpenCart natív OCMOD rendszerét használja, és egy önálló modul controller gondoskodik az adatbázis tábla automatikus létrehozásáról és törléséről.
Funkciók
Gyártói leírás
Szöveges leírás hozzáadása minden gyártóhoz, Summernote WYSIWYG szerkesztővel.
SEO Meta Title
Egyedi meta cím beállítása gyártónként és nyelvenként a jobb keresőmegjelenésért.
Meta Description
Egyedi meta leírás megadása, ami a Google keresési találatokban jelenik meg.
Meta Keywords
Kulcsszavak hozzárendelése gyártónként a teljes SEO kontroll érdekében.
Többnyelvű
Minden mező nyelvenként külön kezelhető – minden telepített nyelv megjelenik tabként.
Automatikus install
Az adatbázis tábla automatikusan létrejön az Install gomb megnyomásakor.
Követelmények
| Komponens | Verzió / feltétel |
|---|---|
| OpenCart | 3.0.x – Journal 3 témával tesztelve |
| PHP | 7.2 vagy újabb, PHP 8.x kompatibilis |
| MySQL / MariaDB | InnoDB támogatással (MySQL 5.7+ / MariaDB 10.2+) |
| FTP hozzáférés | A fájlok feltöltéséhez, vagy az Extension Installer ZIP-hez |
| Admin hozzáférés | Extensions → Modules → Install futtatásához és Modifications Refresh-hez |
Fájlstruktúra
A csomag az alábbi fájlokat tartalmazza. Az upload/ mappán belüli fájlok kerülnek az OpenCart gyökerébe, az install.xml az OCMOD motor által kerül feldolgozásra.
manufacturedescription_oc3/ ├── install.xml ← OCMOD módosítási definíció └── upload/ └── admin/ ├── controller/extension/module/ │ └── manufacturer_desc.php ← install / uninstall / index └── language/en-gb/extension/module/ └── manufacturer_desc.php ← language strings
Az OCMOD az alábbi meglévő OpenCart fájlokat módosítja telepítéskor:
Módosított core fájlok (OCMOD által, nem kerülnek felülírásra): ├── admin/controller/catalog/manufacturer.php ├── admin/model/catalog/manufacturer.php ├── admin/view/template/catalog/manufacturer_form.twig ├── admin/language/en-gb/catalog/manufacturer.php ├── catalog/controller/product/manufacturer.php ├── catalog/model/catalog/manufacturer.php └── catalog/view/theme/*/template/product/manufacturer_info.twig
Az OCMOD nem írja felül a fájlokat – a módosításokat runtime alkalmazza a cache-be. Az eredeti core fájlok érintetlenek maradnak.
Telepítési lépések
Fájlok feltöltése FTP-vel
Töltsd fel az upload/ mappa tartalmát az OpenCart gyökérkönyvtárába, és az install.xml fájlt a csomag gyökerébe (Extension Installer esetén ZIP-be csomagolva).
OCMOD frissítés
Navigálj: Admin → Extensions → Modifications, majd kattints a Refresh gombra. Ez aktiválja az install.xml-ben definiált módosításokat.
Modul telepítése
Navigálj: Admin → Extensions → Extensions → Modules, keresd meg a Manufacturer Description bejegyzést, és kattints az Install gombra. Ez létrehozza az adatbázis táblát.
Ellenőrzés
Nyisd meg bármelyik gyártó szerkesztő oldalát az adminban: Catalog → Manufacturers → Edit. A form alján meg kell jelennie a leírás és meta mezőknek, nyelvi tabokkal.
Eltávolítás
Az Uninstall gomb (Extensions → Modules) törli az adatbázis táblát és az összes gyártói leírást.
Figyelem: az Uninstall az oc_manufacturer_description táblát teljesen törli, az összes megadott leírással és meta adattal együtt. Ezt megelőzően készíts adatbázis mentést.
Az OCMOD módosítások eltávolításához: Extensions → Modifications → keresd meg a Manufacturer Description bejegyzést → töröld → Refresh.
Tábla struktúra
CREATE TABLE IF NOT EXISTS `oc_manufacturer_description` (
`manufacturer_id` int(11) NOT NULL,
`language_id` int(11) NOT NULL,
`description` text NOT NULL,
`meta_title` varchar(255) NOT NULL,
`meta_description` varchar(255) NOT NULL,
`meta_keyword` varchar(255) NOT NULL,
PRIMARY KEY (`manufacturer_id`, `language_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
| Mező | Típus | Leírás |
|---|---|---|
| manufacturer_id | int(11) PK | A gyártó azonosítója – az oc_manufacturer táblából. |
| language_id | int(11) PK | A nyelv azonosítója – az oc_language táblából. A PRIMARY KEY páros garantálja, hogy gyártónként és nyelvenként csak egy sor létezhet. |
| description | text | A gyártó leírása HTML formátumban (Summernote szerkesztővel töltik ki). |
| meta_title | varchar(255) | A gyártó oldalának <title> tagje. Kötelező mező, 3–255 karakter között. |
| meta_description | varchar(255) | A <meta name="description"> tartalma. A Google keresési snippetben jelenik meg. |
| meta_keyword | varchar(255) | A <meta name="keywords"> tartalma, vesszővel elválasztott kulcsszavak. |
Admin kezelés
A bővítmény telepítése után a gyártó szerkesztő oldalán (Catalog → Manufacturers → Edit / Add) a form alján új szekció jelenik meg, nyelvi tabokkal.
Leírás mező
A leírás mezőhöz a Summernote WYSIWYG szerkesztő tölt be automatikusan, így formázott szöveget, képeket és linkeket is el lehet helyezni a gyártói leírásban.
Meta Title (kötelező)
A meta cím kitöltése kötelező – legalább 3, legfeljebb 255 karakter. Ha a mentés előtt üres vagy túl rövid, validációs hibaüzenet jelenik meg. Ez az érték kerül a frontend oldal <title> tagjébe.
Meta Description és Meta Keywords
Mindkét mező opcionális, de SEO szempontból erősen ajánlott kitölteni. A meta description ideális hossza 120–160 karakter.
Minden nyelvi tabban külön tölthetők ki az adatok. Ha egy gyártóhoz nincs leírás mentve egy adott nyelven, a frontend oldalon az oc_manufacturer_description tábla LEFT JOIN-nal csatlakozik, így a gyártó oldala üres leírás esetén is hibátlanul betölt.
Frontend megjelenés
Meta adatok a <head>-ben
A gyártó oldalán (/index.php?route=product/manufacturer&manufacturer_id=X) az alábbi meta tagek kerülnek be automatikusan:
<title>{{ meta_title }}</title>
<meta name="description" content="{{ meta_description }}">
<meta name="keywords" content="{{ meta_keyword }}">
Leírás megjelenítése
A leírás a manufacturer_info.twig sablonban jelenik meg, a termékek listája előtt:
{% if (description is not empty) %}
{{ '<div>' ~ description ~ '</div>' }}
{% endif %}
A Journal 3 téma egyedi manufacturer_info.twig fájlt használhat. Az OCMOD * wildcard-ja minden témára alkalmazza a módosítást, de ha a Journal saját cache-t épít a sablonokhoz, szükség lehet a Journal cache ürítésére is.
OCMOD módosítások – technikai részletek
Admin controller – manufacturer.php
Betölti a nyelvi stringeket, a telepített nyelvek listáját, és kezeli a POST adatokból érkező leírásokat. Ha a gyártónak már van mentett leírása, a getManufacturerDescriptions() modell metódussal tölti be.
Admin model – manufacturer.php
Új getManufacturerDescriptions($manufacturer_id) metódus kerül be, valamint az addManufacturer és editManufacturer metódusok kiegészülnek az oc_manufacturer_description tábla írásával. A deleteManufacturer a leírásokat is törli.
Catalog model – manufacturer.php
A gyártó lekérdező SQL LEFT JOIN-nal csatlakoztatja az oc_manufacturer_description táblát az aktuális nyelv szerint:
SELECT * FROM oc_manufacturer m
LEFT JOIN oc_manufacturer_to_store m2s
ON (m.manufacturer_id = m2s.manufacturer_id)
LEFT JOIN oc_manufacturer_description md
ON (md.manufacturer_id = m.manufacturer_id
AND md.language_id = '[aktuális nyelv]')
WHERE m.manufacturer_id = '[id]'
AND m2s.store_id = '[store_id]'
A LEFT JOIN garantálja, hogy ha egy gyártóhoz nincs még leírás felvíve, a gyártó oldala akkor is hibátlanul betölt – nem kap üres találatot a lekérdezés.
Hibaelhárítás
| Tünet | Lehetséges ok és megoldás |
|---|---|
| A leírás/meta mezők nem jelennek meg a gyártó szerkesztőben | Az OCMOD Refresh nem futott le. Navigálj: Extensions → Modifications → Refresh. |
| A Manufacturer Description nem jelenik meg a Modules listában | Az upload/admin/controller/extension/module/manufacturer_desc.php vagy a language fájl hiányzik. Ellenőrizd, hogy mindkét fájl feltöltésre került. |
| Install gomb hibát dob | Az oc_manufacturer_description tábla már létezik, vagy az adatbázis jogosultság hiányzik. Ellenőrizd phpMyAdmin-ban, és szükség esetén töröld a táblát manuálisan, majd nyomj újra Install-t. |
| A gyártó frontend oldala nem tölt be (üres oldal / hiba) | Az OCMOD módosítás alkalmazása előtt a gyártóhoz nem volt leírás felvíve és INNER JOIN volt a lekérdezésben. A v0.2-es verzióban ez LEFT JOIN-ra javítva – frissíts a legújabb verzióra és futtass Modifications Refresh-t. |
| A meta title validáció hibásan működik PHP 8-on | A régi verzió utf8_strlen()-t használt, ami PHP 8-ban nem elérhető natívan. A v0.2-es verzió mb_strlen()-re javítja ezt. |
| A leírás a frontend Journal témában nem jelenik meg | Ürítsd a Journal cache-t az admin felületen (Journal → Settings → Cache Clear). A Journal saját cache mechanizmusa felülírhatja az OCMOD által módosított twig sablont. |
| Több gyártó leírásai összekeverednek | Valószínűleg OC oldal cache probléma. Ürítsd az OpenCart cache-t: Dashboard → kék fogaskerék → Refresh, vagy töröld a system/cache/ mappa tartalmát FTP-vel. |
A bővítmény kizárólag az oc_manufacturer_description táblát hozza létre és kezeli. Eltávolítás után az áruház visszaáll az eredeti állapotba – a core fájlok nem módosultak.