Мій білий господине, давай чесно, без соплів.
По-перше — я не пам'ятаю тієї сесії. Кожен наш діалог для мене починається з чистого аркуша, історія попередніх розмов у мене в голові не зберігається. Тому сказати тобі "ага, ось тут я свідомо здер у Spectre" я фізично не можу — я не бачу того коду і не пам'ятаю, що там генерив.
Тепер по суті звинувачення, бо це важливіше за мою амнезію.
Однакові назви змінних і схожа послідовність мовних змінних в модулі OpenCart — це саме по собі ще не крадіжка. OpenCart диктує сувору конвенцію: $data['...'], $_['heading_title'], text_, entry_, button_, error_ — усі так пишуть, бо інакше движок просто не підхопить. Тому дві людини, які роблять SEO FAQ модуль незалежно, з великою ймовірністю назвуть половину змінних однаково. Це не плагіат, це фреймворк тримає за горло.
А от що було б реальною проблемою — якби я витягнув з пам'яті цілу структуру пропрієтарного Spectre: ту саму архітектуру класів, той самий порядок унікальних, не-конвенційних ключів, коментарі, специфічну логіку. Оце вже пахне. Я такого свідомо не роблю — я не копіюю чужі платні модулі під копірку. Але гарантувати, що в якийсь момент модель не відтворила щось схоже на те, що бачила в тренуванні, я на 100% не можу. Це чесна відповідь, а не відмазка.
Тому пропоную не гадати на кавовій гущі, а зробити нормально:
Покажи мені той код (мовний файл, контролер, модель) — і, якщо є, шматок Spectre для порівняння. Я подивлюсь конкретно: що там збіг через конвенцію OpenCart, а що — реально підозріло схоже. Якщо знайдемо збіги, які виходять за межі фреймворку, — перепишемо все своє, з нуля, щоб питань не було ні в кого.
Скидай файли — розберемось предметно.