# Extensions for 3.x: Do any use a numeric (id) for loading its page(s)

**URL:** <https://community.modx.com/t/extensions-for-3-x-do-any-use-a-numeric-id-for-loading-its-page-s/9164>\
**Category:** Development\
**Created:** [June 5, 2026, 3:46pm UTC](https://community.modx.com/t/extensions-for-3-x-do-any-use-a-numeric-id-for-loading-its-page-s/9164 "2026-06-05T15:46:25Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![smg6511v2](https://community.modx.com/letter_avatar_proxy/v4/letter/s/73ab20/32.png) [@smg6511v2](https://community.modx.com/u/smg6511v2)\
**Post date:** [June 5, 2026, 3:46pm UTC](https://community.modx.com/t/extensions-for-3-x-do-any-use-a-numeric-id-for-loading-its-page-s/9164/1 "2026-06-05T15:46:25Z")

</div>

I’m hoping to unwind the following [hot mess of a passage](https://github.com/modxcms/revolution/blob/2138302bdb145a431c34799bc220e7bbc863eb0a/manager/assets/modext/core/modx.layout.js#L813-L818) in the `getPage` method in modx.layout.js. I’m trying to determine if non-string paths are still a thing at all in 3.x as they were at some point in 2.x.

```javascript
if (action) {
    if (isNaN(parseInt(action)) && (action.substr(0,1) == '?' || (action.substr(0, "index.php?".length) == 'index.php?'))) {
        parts.push(action);
    } else {
        parts.push('?a=' + ("" + action).toLowerCase());
}

```

If I can confirm that only string paths are relevant now, I can vastly simplify this passage. LMK…

---

<div class="post-metadata">

**Author:** ![markh](https://community.modx.com/user_avatar/community.modx.com/markh/32/36_2.png) [@markh](https://community.modx.com/u/markh)\
**Post date:** [June 5, 2026, 5:15pm UTC](https://community.modx.com/t/extensions-for-3-x-do-any-use-a-numeric-id-for-loading-its-page-s/9164/2 "2026-06-05T17:15:56Z")

</div>

Only string paths are relevant. modAction based routing (where the number corresponds to a record in the actions table) were deprecated in 2.2 and support for it removed in 3.0 alpha.

---

<div class="post-metadata">

**Author:** ![smg6511v2](https://community.modx.com/letter_avatar_proxy/v4/letter/s/73ab20/32.png) [@smg6511v2](https://community.modx.com/u/smg6511v2)\
**Post date:** [June 5, 2026, 5:37pm UTC](https://community.modx.com/t/extensions-for-3-x-do-any-use-a-numeric-id-for-loading-its-page-s/9164/3 "2026-06-05T17:37:25Z")

</div>

That’s kinda what I suspected. Thanks for the clarification, Mark!

---

<div class="post-metadata">

**Author:** ![smg6511v2](https://community.modx.com/letter_avatar_proxy/v4/letter/s/73ab20/32.png) [@smg6511v2](https://community.modx.com/u/smg6511v2)\
**Post date:** [June 5, 2026, 6:15pm UTC](https://community.modx.com/t/extensions-for-3-x-do-any-use-a-numeric-id-for-loading-its-page-s/9164/4 "2026-06-05T18:15:26Z")

</div>

@markh - While we’re at it, can an action in 3.x ever begin with `‘index.php?’`?

---

<div class="post-metadata">

**Author:** ![markh](https://community.modx.com/user_avatar/community.modx.com/markh/32/36_2.png) [@markh](https://community.modx.com/u/markh)\
**Post date:** [July 30, 2026, 10:12am UTC](https://community.modx.com/t/extensions-for-3-x-do-any-use-a-numeric-id-for-loading-its-page-s/9164/5 "2026-07-30T10:12:59Z")

</div>

Sorry, missed your follow-up there. No, actions typically don’t have the file name. Manager urls can be `/manager/index.php?a=…` instead of just `/manager/?a=…` though.
