- Compatibilidade com XF
- 2.3.x
- Short Description
- No hashes.json → no more “N files are missing” during install.
What’s changed compared to 3.1.0
No hashes.json → no more “N files are missing” during install.
PHP fixes in the controller and service (proper . concatenation, array appends, .=, correct ternaries).
Single namespace Sylvain\LlmoproV311 to avoid collisions with previous versions.
Minimal, valid routes.xml (avoids “Please enter a valid value”).
Clean Setup (tables xf_llmopro_document & xf_llmopro_log).
Structure
upload/src/addons/Sylvain/LlmoproV311/
addon.json (v3.1.1, requires XF ≥ 2.3.0 +)
Setup.php
_data/
options.xml
phrases.xml
template_modifications.xml
routes.xml → prefix llmopro
Entity/Document.php, Entity/Log.php
Service/Generator.php
Util/RateLimiter.php
Pub/Controller/Index.php, Pub/View/Json.php
Cron/Regenerate.php, Job/WebhookPing.php
README.txt, LISEZMOI.txt (at the zip root)
Installation (clean)
Upload the contents of upload/ to the XenForo root (same level as src/ and admin.php).
ACP → Add-ons → Install LLMO Pro (Sylvain) — V3.
ACP → Tools → Rebuild caches (Templates, Phrases, Routes).
Endpoints
/llmopro — manifest/info
/llmopro/threads
/llmopro/thread?thread_id=123
/llmopro/search?q=...
/llmopro/sitemap
/llmopro/well-known
If it still fails for the other user
Verify the exact path: src/addons/Sylvain/LlmoproV311/ (case-sensitive).
Ensure there is no upload subfolder on the server.
Directories 755, files 644.
Remove any old Llmopro / LlmoproV3 to avoid accidental file merging.
If you still want integrity checks later, I can provide a server-side script to generate a hashes.json from the files actually present after installation.
Zero-surprise fresh install plan (XenForo 2.3.x) + our add-on
1) Server requirements
PHP ≥ 8.1 (8.2/8.3 OK), MySQL ≥ 5.7/MariaDB 10.3+
Extensions: mbstring, json, gd, curl, xml
Permissions: 755 directories / 644 files
2) Install XenForo (clean)
Unzip XF → upload to site root.
Run /install/ → create DB → admin user.
In src/config.php, ensure:
$config['enableAddOns'] = true;
$config['upgradePending'] = false;
$config['enableMaintenance'] = false;
ACP → Tools → Rebuild caches (start from a clean state).
3) Install the LLMO Pro add-on (fixed build)
Use the corrected package (without hashes.json).
Upload the contents of upload/ to the XF root (same level as src/ and admin.php).
ACP → Add-ons → Install LLMO Pro (Sylvain) — V3.
ACP → Tools → Rebuild caches (Templates, Phrases, Routes).
If you ever want file integrity checks, we’ll generate a hashes.json after install on the server (no more false “missing files”).
4) Smoke tests
Open a thread page → in the HTML you should see <script id="llmopro-seo" type="application/ld+json">.
Public endpoints:
/llmopro
/llmopro/threads
/llmopro/thread?thread_id=1 (use a real ID)
/llmopro/search?q=test
/llmopro/sitemap
5) Useful options (ACP → Options → LLMO Pro)
Enable/disable JSON-LD injection
Summary length
ETag / If-Modified-Since
Rate-limit
Basic PII masking
Webhook (optional)
6) Testing best practices
Test with the default XF style (no template overrides) to isolate issues.
If a rebuild ever shows “Please enter a valid value” for Routes:
Temporarily rename _data/routes.xml to routes.off.xml, rebuild.
I’ll give you a tiny script to create the route directly in DB (more robust), then rebuild caches.
Moderator can delete the original message out of the ressources
No hashes.json → no more “N files are missing” during install.
PHP fixes in the controller and service (proper . concatenation, array appends, .=, correct ternaries).
Single namespace Sylvain\LlmoproV311 to avoid collisions with previous versions.
Minimal, valid routes.xml (avoids “Please enter a valid value”).
Clean Setup (tables xf_llmopro_document & xf_llmopro_log).
Structure
upload/src/addons/Sylvain/LlmoproV311/
addon.json (v3.1.1, requires XF ≥ 2.3.0 +)
Setup.php
_data/
options.xml
phrases.xml
template_modifications.xml
routes.xml → prefix llmopro
Entity/Document.php, Entity/Log.php
Service/Generator.php
Util/RateLimiter.php
Pub/Controller/Index.php, Pub/View/Json.php
Cron/Regenerate.php, Job/WebhookPing.php
README.txt, LISEZMOI.txt (at the zip root)
Installation (clean)
Upload the contents of upload/ to the XenForo root (same level as src/ and admin.php).
ACP → Add-ons → Install LLMO Pro (Sylvain) — V3.
ACP → Tools → Rebuild caches (Templates, Phrases, Routes).
Endpoints
/llmopro — manifest/info
/llmopro/threads
/llmopro/thread?thread_id=123
/llmopro/search?q=...
/llmopro/sitemap
/llmopro/well-known
If it still fails for the other user
Verify the exact path: src/addons/Sylvain/LlmoproV311/ (case-sensitive).
Ensure there is no upload subfolder on the server.
Directories 755, files 644.
Remove any old Llmopro / LlmoproV3 to avoid accidental file merging.
If you still want integrity checks later, I can provide a server-side script to generate a hashes.json from the files actually present after installation.
Zero-surprise fresh install plan (XenForo 2.3.x) + our add-on
1) Server requirements
PHP ≥ 8.1 (8.2/8.3 OK), MySQL ≥ 5.7/MariaDB 10.3+
Extensions: mbstring, json, gd, curl, xml
Permissions: 755 directories / 644 files
2) Install XenForo (clean)
Unzip XF → upload to site root.
Run /install/ → create DB → admin user.
In src/config.php, ensure:
$config['enableAddOns'] = true;
$config['upgradePending'] = false;
$config['enableMaintenance'] = false;
ACP → Tools → Rebuild caches (start from a clean state).
3) Install the LLMO Pro add-on (fixed build)
Use the corrected package (without hashes.json).
Upload the contents of upload/ to the XF root (same level as src/ and admin.php).
ACP → Add-ons → Install LLMO Pro (Sylvain) — V3.
ACP → Tools → Rebuild caches (Templates, Phrases, Routes).
If you ever want file integrity checks, we’ll generate a hashes.json after install on the server (no more false “missing files”).
4) Smoke tests
Open a thread page → in the HTML you should see <script id="llmopro-seo" type="application/ld+json">.
Public endpoints:
/llmopro
/llmopro/threads
/llmopro/thread?thread_id=1 (use a real ID)
/llmopro/search?q=test
/llmopro/sitemap
5) Useful options (ACP → Options → LLMO Pro)
Enable/disable JSON-LD injection
Summary length
ETag / If-Modified-Since
Rate-limit
Basic PII masking
Webhook (optional)
6) Testing best practices
Test with the default XF style (no template overrides) to isolate issues.
If a rebuild ever shows “Please enter a valid value” for Routes:
Temporarily rename _data/routes.xml to routes.off.xml, rebuild.
I’ll give you a tiny script to create the route directly in DB (more robust), then rebuild caches.
Moderator can delete the original message out of the ressources