- Compatible Versions
- 2.3.7
- Additional requirements
- ## Requirements
- XenForo **2.3+**
- PHP 8.x recommended
- Your target forum node(s) must allow the **Article** thread type (Node → Allow thread types)
- Visible Branding
- No
This falls under the one-time tier license.
## What’s in this release
- Own options group (**ACP → Options → AIXF: Auto Article**)
- CSV-based node selector (no array validators)
- Cron job callback: `AIXF\AutoArticle\Cron\Convert::run`
- Hardening for nodes that don’t allow articles (schema-aware guard)
- Minimal logging of conversions/skips (can be removed once verified)
- “NoCron” packaging option available if XML importers complain
## Install
1. Upload add-on files to your XF root (or install the packaged zip in ACP).
2. In ACP → **Add-ons**, install **AIXF: Auto Article**.
3. In ACP → **Options → AIXF: Auto Article**, configure:
- **Node IDs (CSV)**: e.g., `42,87`
- **Conversion batch size**: default **50**
- **Minimum word count**: default **0**
4. Ensure each target node allows **Article** thread type (Node → Allow thread types).
## Cron setup (every 15 minutes)
**ACP → Tools → Cron entries → Add cron entry**
- **ID:** `aixf_autoarticle_convert` (any unique id)
- **Title:** `AIXF: Auto Article Cron`
- **Callback class:** `AIXF\AutoArticle\Cron\Convert`
- **Callback method:** `run`
- **Run on type of day:** Day of the week → **Any**
- **Run at hours:** **Any**
- **Run at minutes:** **0, 15, 30, 45**
- **Enabled:** ✓
> Advanced: if you must ship `cron.xml`, use this `run_rules` for 15‑minute cadence (PHP-serialized):
> ```
> a:4:{s:3:"dom";a:0:{}s:3:"dow";a:7:{i:0;i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;}s:5:"hours";a:24:{i:0;i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;i:7;i:7;i:8;i:8;i:9;i:9;i:10;i:10;i:11;i:11;i:12;i:12;i:13;i:13;i:14;i:14;i:15;i:15;i:16;i:16;i:17;i:17;i:18;i:18;i:19;i:19;i:20;i:20;i:21;i:21;i:22;i:22;i:23;i:23;}s:7:"minutes";a:4:{i:0;i:0;i:1;i:15;i:2;i:30;i:3;i:45;}}
> ```
## Test
- In **Cron entries**, click **Run now** on your cron entry.
- Check a recent thread in a target node; its type should now be **Article**.
- View **ACP → Tools → Logs → Server error log** for “converted” / “skipped” notes.
## Uninstall / Cleanup
1. ACP → **Add-ons** → Uninstall **AIXF: Auto Article**.
2. (If needed) Remove DB artifacts:
```sql
DELETE FROM xf_option WHERE option_id IN
('aixfAutoArticle_nodeIdsCsv','aixfAutoArticle_batch','aixfAutoArticle_minWords');
DELETE FROM xf_option_group_relation WHERE option_id IN
('aixfAutoArticle_nodeIdsCsv','aixfAutoArticle_batch','aixfAutoArticle_minWords');
DELETE FROM xf_option_group WHERE group_id = 'aixf_autoarticle';
DELETE FROM xf_cron_entry WHERE callback_class = 'AIXF\AutoArticle\Cron\Convert' AND callback_method = 'run';
```


## What’s in this release
- Own options group (**ACP → Options → AIXF: Auto Article**)
- CSV-based node selector (no array validators)
- Cron job callback: `AIXF\AutoArticle\Cron\Convert::run`
- Hardening for nodes that don’t allow articles (schema-aware guard)
- Minimal logging of conversions/skips (can be removed once verified)
- “NoCron” packaging option available if XML importers complain
## Install
1. Upload add-on files to your XF root (or install the packaged zip in ACP).
2. In ACP → **Add-ons**, install **AIXF: Auto Article**.
3. In ACP → **Options → AIXF: Auto Article**, configure:
- **Node IDs (CSV)**: e.g., `42,87`
- **Conversion batch size**: default **50**
- **Minimum word count**: default **0**
4. Ensure each target node allows **Article** thread type (Node → Allow thread types).
## Cron setup (every 15 minutes)
**ACP → Tools → Cron entries → Add cron entry**
- **ID:** `aixf_autoarticle_convert` (any unique id)
- **Title:** `AIXF: Auto Article Cron`
- **Callback class:** `AIXF\AutoArticle\Cron\Convert`
- **Callback method:** `run`
- **Run on type of day:** Day of the week → **Any**
- **Run at hours:** **Any**
- **Run at minutes:** **0, 15, 30, 45**
- **Enabled:** ✓
> Advanced: if you must ship `cron.xml`, use this `run_rules` for 15‑minute cadence (PHP-serialized):
> ```
> a:4:{s:3:"dom";a:0:{}s:3:"dow";a:7:{i:0;i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;}s:5:"hours";a:24:{i:0;i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;i:7;i:7;i:8;i:8;i:9;i:9;i:10;i:10;i:11;i:11;i:12;i:12;i:13;i:13;i:14;i:14;i:15;i:15;i:16;i:16;i:17;i:17;i:18;i:18;i:19;i:19;i:20;i:20;i:21;i:21;i:22;i:22;i:23;i:23;}s:7:"minutes";a:4:{i:0;i:0;i:1;i:15;i:2;i:30;i:3;i:45;}}
> ```
## Test
- In **Cron entries**, click **Run now** on your cron entry.
- Check a recent thread in a target node; its type should now be **Article**.
- View **ACP → Tools → Logs → Server error log** for “converted” / “skipped” notes.
## Uninstall / Cleanup
1. ACP → **Add-ons** → Uninstall **AIXF: Auto Article**.
2. (If needed) Remove DB artifacts:
```sql
DELETE FROM xf_option WHERE option_id IN
('aixfAutoArticle_nodeIdsCsv','aixfAutoArticle_batch','aixfAutoArticle_minWords');
DELETE FROM xf_option_group_relation WHERE option_id IN
('aixfAutoArticle_nodeIdsCsv','aixfAutoArticle_batch','aixfAutoArticle_minWords');
DELETE FROM xf_option_group WHERE group_id = 'aixf_autoarticle';
DELETE FROM xf_cron_entry WHERE callback_class = 'AIXF\AutoArticle\Cron\Convert' AND callback_method = 'run';
```


Comments
No comments yet.
log_in_to_reply