IPMI WEBSITE OPERATIONS GUIDE — PORTABLE AGENT & HUMAN HANDOFF
Version 1.1 | 26 October 2026
Online: https://intercessoryprayerministry.org/new-site/site-guide/
See index.html for clickable links and screenshots.


IPMI · Website operations · Version 1.1 · 26 October 2026

One website.
Two editing paths.

A practical handoff for an AI agent working through cPanel Terminal and a human editor working in Joomla Administrator.AI agent: cPanel TerminalHuman: Joomla Administrator

Verified against Joomla 6.2.0, SP Page Builder Pro 6.10.0, and the current IPMI template. This guide covers /new-site/, the preview website. The older website outside that directory is a separate installation.
Unlisted, not confidential. This guide is linked invisibly from the site and marked noindex. Anyone who knows the URL can read it. No passwords, session URLs, database credentials, private backups, or payment data belong here. Obtain access from the site owner separately.




Start here on another computer

Download the package and give the new agent AGENT-INSTRUCTIONS.txt, or share this guide URL. The agent does not need the original computer, its browser tab IDs, or its local project files.Download the complete handoff ZIPPlain-text instructionsTerminal helper sourceArticle JSON exampleFile checksumsPrint / Save as PDF

The ZIP includes this offline HTML guide, screenshots, the terminal helper as a text file, and an unpublished article example. Unzip it and open index.html. Store credentials in the receiving computer’s approved password manager, not in the guide or agent prompt.


Copy this assignment to the next AI agent

You are maintaining the IPMI preview website at
https://intercessoryprayerministry.org/new-site/.
Read the IPMI website operations guide before making changes.
Use the owner's authorized cPanel session and its Terminal interface.
The separate Joomla Administrator workflow is for human editors.
Do not change the legacy site outside /new-site/.
Discover the current inventory; do not assume old IDs remain unchanged.
Use the installed CLI-only editor for normal articles and existing page layouts.
Keep new posts unpublished unless the owner requests publication.
Preserve URLs, Joomla assets/history, SP Page Builder JSON, and human editability.
Back up before edits, respect checked-out records, and verify results.
Never copy credentials, cPanel session URLs, or private backups into public files.
Report changed IDs/URLs, status, validation, and backup location.
My requested work is: [insert the owner's specific request].




1. Website structure and editing destinations

Articles are the regular posts. Each post has one category, an introduction, a full body, images, a status, and publishing dates. SP Page Builder pages are the designed landing pages. They contain text/image sections and modules that pull articles automatically. Do not paste every new post into the homepage or create a new menu item for each post.
Joomla Articles
News · Devotions · Alerts · Resources→Category pages
Complete archive and pagination+Dynamic modules
Cards on Home and Prayer Resources


Where to publish each kind of post

 | Content | Human category | Terminal category alias / ID | Where readers find it


 | Ministry updates, reports, announcements | IPMI Journal → Ministry News | ministry-news · 8 | News → Ministry news; eligible for homepage cards


 | Daily devotional teaching | IPMI Journal → Daily Devotions | reflections · 9 | News → Daily Devotions; eligible for Home and Prayer Resources cards


 | Current prayer needs and urgent alerts | IPMI Journal → Prayer Alerts | prayer-alerts · 10 | News → Prayer alerts; Prayer Resources alert cards


 | Prayer guides, fasting materials, teaching and downloads | IPMI Journal → Prayer Resources | prayer-resources · 11 | Prayer Resources and Browse all prayer resources


Keep the existing aliases. “Daily Devotions” intentionally retains reflections in the category and URL. Prayer Resources retains /prayer. This preserves existing links. The News “All posts” view includes all four categories, including resources, although Resources is no longer a News tab. Daily Devotions is a category name; it does not automatically create one post each day.


Landing pages, navigation, and supporting pages

 | Page / URL | Editing source | Known ID | Notes


 | Home · /new-site/ | SP Page Builder | 1 / menu 101 | Hero, ministry sections, destination cards, event and story modules. May be checked out by an editor; never force-overwrite.


 | About IPMI · /about | SP Page Builder | 2 / 109 | History, purpose and ministry story.


 | Our Ministry · /ministry | SP Page Builder | 3 / 110 | Ministry activities and programme information.


 | News & Prayer Alerts · /news | Joomla category blog, category 12 | menu 111 | Do not edit SP Page Builder page 4 to post news. It is an older unused page; the active menu uses Joomla Articles.


 | Prayer Resources · /prayer | SP Page Builder | 5 / 112 | Original Prayer content, alerts, resource/devotion cards, gatherings and Prayer Wall links. Full resource archive: menu 123.


 | Events | External website | menu 113 | Links to https://ipmievents.org/upcoming. Its posts and registration are maintained separately.


 | Give · /give | SP Page Builder + template + Realm | 8 / 114 | Give buttons open the Giving page, with the Realm form embedded beside the introduction.


 | Leadership & Governance · /leadership | SP Page Builder | 6 / 115 | Footer supporting page.


 | Charitable Status · /charitable-status | SP Page Builder | 7 / 116 | Keep official documentation accurate; attach approved PDFs.


 | Contact · /contact | SP Page Builder + template footer | 9 / 117 | If contact details change, update both the page and shared footer.


 | Privacy · /privacy | SP Page Builder | 10 / 118 | Use owner-approved policy text.


 | Search · /search | Joomla Smart Search | menu 124 | Reindex after structural or substantial page edits if results are stale.


Short URLs in this table are relative to /new-site. IDs are a snapshot, not a substitute for checking the live inventory.
[Screenshot: screenshots/prayer-resources.png]

Prayer Resources combines the landing-page information with dynamically loaded articles. Click any screenshot to view it full size.


What appears automatically

 | Module | Content and behaviour


 | 112 · Upcoming IPMI Events | Up to 3 items from https://ipmievents.org/upcoming?format=feed&type=rss. The current parser uses each RSS item's pubDate as its date and keeps future dates. A missing card may therefore be a feed/date issue. Feed refresh: roughly 5 minutes; fallback cache: up to 1 hour.


 | 113 · Featured journal stories | Up to 3 published, public articles from Ministry News, Daily Devotions and Prayer Resources. Featured articles sort first, then newest publication date and ID. This is not a featured-only filter. Prayer Alerts are excluded.


 | 114 · Journal stories | Up to 9 from all four categories; used where this module is embedded. The current News page itself uses the native category blog.


 | 115 · Current prayer alerts | Up to 3 Prayer Alerts; an empty-state message appears when none are currently eligible.


 | 116 · Prayer resources | Up to 6 Prayer Resources and Daily Devotions articles, featured first. The archive link exposes the full resource category.


Dynamic cards require: article Published, Public access, published/public category and ancestors, a matching language, a start time that has arrived, and no past finish time. A new non-featured post may sit behind older featured posts. These modules use the article’s Intro Image and introduction, not an arbitrary image inserted into the body.




2. AI agent workflow — cPanel Terminal

This is the primary route for an agent. All server commands run in the authenticated cPanel Terminal inside Firefox. Joomla Administrator does not need to be open. A PHP helper loads Joomla locally and saves articles through Joomla’s own article model; it does not automate the administrator UI.


Access from a different computer

- Ask the owner to provide authorized hosting access separately. Sign in at https://my.hosting.com/, open the hosting account, and choose Login to Control Panel; or use https://s19639.use2.stableserver.net:2083/ if direct cPanel login is enabled.

- In cPanel, search for Terminal and open it. The shell prompt is the backend access. Keep this tab open throughout the task.

- If the agent controls Firefox through an automation connector, attach to that computer’s existing signed-in profile. The earlier connector used local port 9223. A normal Firefox launch does not enable it. Use the receiving computer’s approved existing-profile launcher. Do not copy the original computer’s profile paths or assume a cPanel session survives a restart.

- Never reuse a saved /cpsess…/ URL. Each login has its own session path. If redirected to login, have the owner authenticate again.

- Run the setup and inventory commands below. If an ID, path, or version differs, inspect the live site before changing it.


export IPMI_SITE=/home/ipmievents/intercessoryprayerministry.org/new-site
export IPMI_EDITOR='YOUR_AUTHORIZED_JOOMLA_USERNAME'
export IPMI_TOOL=/home/ipmievents/ipmi-rebuild-private/editor-guide/ipmi-editor.php
cd "$IPMI_SITE"
pwd
php -v
php -l "$IPMI_TOOL"
php "$IPMI_TOOL" inventory

IPMI_EDITOR is the real Joomla account whose permissions and authorship the helper uses. Obtain its username from the owner. The helper requires host filesystem access and an authorized, unblocked administrator account; it is not an unauthenticated website endpoint. It reads the existing server configuration internally and never needs a database password copied into a command.
[Screenshot: screenshots/cpanel-terminal.png]

Agent route: cPanel → Terminal → PHP helper. This is separate from the human administrator route.


Installed helper and portable copy

The helper is already installed at the path above, outside the public web directory. If it is missing after a migration, review the downloaded ipmi-editor.php.txt, compare its SHA-256 checksum, upload it to the private directory, rename it ipmi-editor.php, set file permissions to 600, then run php -l. Do not put executable maintenance scripts, backups, or credentials under /new-site. The public download has a .txt suffix intentionally.


Back up before work

The helper makes record backups before article and page saves. For a maintenance session, also save a full database export and the relevant site files outside the website:

umask 077
export IPMI_BACKUP="/home/ipmievents/ipmi-rebuild-private/editor-guide/session-$(date -u +%Y%m%d-%H%M%S)"
mkdir -p "$IPMI_BACKUP"
php cli/joomla.php database:export --folder="$IPMI_BACKUP" --zip
tar -czf "$IPMI_BACKUP/site-customizations.tar.gz" templates/ipmi modules/mod_ipmi_content
php "$IPMI_TOOL" inventory > "$IPMI_BACKUP/inventory.json"

Check exit codes and confirm the backup files exist before editing. Add any affected image folders to your backup when replacing assets. Keep the backup private.


Create a news post, devotion, alert or resource

- Work in the private guide directory. Copy article-example.json to a new filename and replace every placeholder with approved content.

- Choose the category alias from section 1. Supply a unique lowercase, hyphenated alias. Use id: 0 only for a genuinely new article.

- Write a short HTML summary in introtext and the remainder in fulltext. Use headings beginning at h2; Joomla supplies the article title. The helper inserts the Read More separator automatically.

- Leave state: 0 for an unpublished draft. Set state: 1 only when the owner has requested publication. For scheduling, use state 1 plus a future UTC publish_up.

- Set featured: 1 only when the post should get priority in eligible card modules. This does not pin it forever or make a Prayer Alert appear on the homepage.

- Upload images first, then supply their images/… paths and alternative text. Save and record the returned article ID.


cd /home/ipmievents/ipmi-rebuild-private/editor-guide
# Create or upload my-post.json using article-example.json as the structure.
php "$IPMI_TOOL" article-save my-post.json
php "$IPMI_TOOL" inventory

Example article JSON — starts unpublished

{
  "id": 0,
  "category": "reflections",
  "title": "An approved devotion title",
  "alias": "an-approved-devotion-title",
  "introtext": "<p>The short introduction shown on cards.</p>",
  "fulltext": "<h2>Scripture and reflection</h2><p>Approved teaching goes here.</p>",
  "state": 0,
  "featured": 0,
  "access": 1,
  "language": "*",
  "created_by_alias": "IPMI Editorial",
  "publish_up": null,
  "publish_down": null,
  "metadesc": "A short description of the devotion.",
  "images": {
    "image_intro": "",
    "image_intro_alt": "",
    "image_fulltext": "",
    "image_fulltext_alt": ""
  }
}


Edit, publish, schedule, unpublish or retire an existing post

# Replace 123 with the actual ID returned by inventory.
# Use a NEW export filename each time.
php "$IPMI_TOOL" article-export 123 post-edit-01.json
# Edit only the intended fields; retain id and source_hash.
php "$IPMI_TOOL" article-save post-edit-01.json

 | Operation | JSON changes

 | Publish now | state: 1; set publish_up to the intended UTC time and publish_down to null unless an expiry is needed.

 | Schedule a devotion | state: 1 and a future publish_up. Repeat with a separate article per day. No scheduler or cron job is needed for standard Joomla date visibility.

 | Expire an alert | Set publish_down to the UTC finish time, later than its start. It remains editable afterward.

 | Unpublish | state: 0. The article remains in Joomla for future editing.

 | Archive / Trash | state: 2 / state: -2. Prefer these to deleting records directly.

Dates in the helper must be YYYY-MM-DD HH:MM:SS in UTC or null. The site’s configured display timezone is America/New_York; Joomla administrator/user settings may display local times. Convert with the date’s daylight-saving offset, not a fixed year-round offset.

Exports contain a source_hash. If the record changes after export, the helper stops. Export a fresh copy and merge your edits. Do not invent a new hash or resubmit the same new-article JSON after an uncertain save. Inspect inventory first to avoid duplicates. Checked-out records are refused; ask the human editor to Save & Close or Cancel.


Images, PDFs, and other resources

Use images/ipmi/posts/ for article images and images/ipmi/resources/ for approved PDFs. Create these directories if needed. Use descriptive filenames, optimized web images, and suitable alt text. Avoid personal or sensitive prayer details unless the owner has permission to publish them.

mkdir -p "$IPMI_SITE/images/ipmi/posts" "$IPMI_SITE/images/ipmi/resources"
# Upload approved files using cPanel File Manager or an owner-approved transfer.
# A terminal can also download an exact, trusted asset URL supplied by the owner:
# curl --fail --location 'APPROVED_HTTPS_ASSET_URL' --output "$IPMI_SITE/images/ipmi/posts/example.jpg"
file "$IPMI_SITE/images/ipmi/posts/example.jpg"

The final file command applies only after uploading the named image; replace the example path. Confirm the actual file type. The helper validates that referenced article images exist under the Joomla images/ directory. For PDF downloads, link from article HTML, for example <a href="/new-site/images/ipmi/resources/prayer-guide.pdf">Download the prayer guide (PDF)</a>. Do not upload PHP or other executable content into media folders.


Edit an existing designed page through the terminal

# Prayer Resources is currently page ID 5.
php "$IPMI_TOOL" page-export 5 prayer-edit-01.json
# Edit the intended text/image/link inside layout, preserving section/addon IDs.
php "$IPMI_TOOL" page-save prayer-edit-01.json

The export contains id, source_hash, title, and layout. Typical text lives at layout → section → columns → addons → settings → text. Module addons refer to existing module IDs such as 115 and 116. Keep addon names, IDs, settings, classes, widths and module references intact. The page helper is for content/layout edits of existing pages; it deliberately preserves the page title, publication status, metadata and menu relationship.

SP Page Builder stores both text and content. The helper writes both together. Editing only one can leave the public page or visual editor out of sync. If the two differ before export, the helper refuses to overwrite an existing draft: resolve that draft with its editor first. Page saves use a private backup and a database transaction. They do not create an SP Page Builder revision or automatically guarantee Smart Search indexing; use the saved backup and verify search after substantial changes.


Shared layout and code changes

For technical maintenance beyond posting, inspect and back up the affected file, make a narrow change, lint PHP, then check the page in Firefox. Avoid editing Joomla core or vendor files.

 | Location relative to the site root | Purpose

 | templates/ipmi/index.php | Shared header, top-level menu, footer, preview banner, asset registration, and Realm loader. Give menu/footer links lead to the Giving page.

 | templates/ipmi/css/site.css | Typography, responsive layout, navigation, cards and page styles.

 | templates/ipmi/js/site.js | Mobile menu, sticky header, donation-link normalization and Realm new-tab fallback.

 | templates/ipmi/html/com_content/category/blog.php | Category navigation tabs. News has All posts, Ministry news, Prayer alerts, Daily Devotions. The resources archive gets its own navigation.

 | modules/mod_ipmi_content/ | Dynamic event/article cards, sorting and visibility rules. Module parameters are stored in Joomla.

 | images/ipmi/ | Ministry images, logos and uploaded media.

php -l templates/ipmi/index.php
php -l templates/ipmi/html/com_content/category/blog.php
php cli/joomla.php cache:clean
# After substantial content changes, if search results need refreshing:
php cli/joomla.php finder:index

After CSS/JS changes, increment the asset version registered in the template to prevent stale browser caches. Do not use a global site rebuild/seed script for normal editing: older scripts contain the previous labels and could undo current changes. The installed seed.php is not a publishing tool.


Menus, modules, and advanced changes

Use the inventory to discover actual IDs. For new navigation or categories, use Joomla’s Menu/Category Table APIs, set the parent with setLocation(), then bind(), check(), store(), and rebuild the path/tree as appropriate. Never hand-edit nested-set lft/rgt values or directly insert bare article rows. New menu items also need the correct component ID, link, menutype, language, access and parameters. The helper intentionally does not automate structural creation; plan and validate these less frequent changes separately, or use the human menu workflow.

For article posting and existing page text/image edits, the helper covers the normal workflow without visiting the administrator. Hosting, extension upgrades, new components and external services require their own checks and owner authorization.




3. Human workflow — Joomla Administrator

Sign in at /new-site/administrator/ using your own Joomla credentials. This account is separate from your hosting account. The agent’s posts are normal Joomla articles, so you can open, edit and publish them here.


Post to any of the four sections

- Open Content → Articles → New, or choose an existing article from the list.

- Enter a clear Title. For a new article, let Joomla generate an alias or enter a short unique alias. For an existing published article, keep its alias unless you have a redirect plan.

- Select the correct Category: Ministry News, Daily Devotions, Prayer Alerts, or Prayer Resources, under IPMI Journal. Do not leave regular posts in Uncategorised or the Journal parent.

- Write a short introduction, insert Read More from the editor’s CMS Content menu, and write the full article afterward. Format body sections as Heading 2 / Heading 3. Avoid pasting document formatting that changes the site’s fonts and colours.

- Open Images and Links. Set an Intro Image for cards and a Full Article Image if needed. Add descriptive alt text. Upload through the image selector or Content → Media. A body image alone does not supply the card thumbnail.

- Set Status to Unpublished while drafting. When ready, choose Published. Keep Access: Public. Use Featured = Yes only if homepage/resource-card priority is intended.

- Open Publishing to set Start Publishing, Finish Publishing, author alias and meta description. Confirm the administrator/user timezone before scheduling.

- Choose Save & Close. Open the appropriate public category link from section 1 in a separate tab and verify the article, image, author, dates and links.
[Screenshot: screenshots/articles.png]

Content → Articles is the starting point for all regular posts. The category determines the section.
[Screenshot: screenshots/article-editor.png]

The article editor: title and body on the left, category/status on the right, Images and Links and Publishing tabs above.


Edit Home, About, Our Ministry, Prayer Resources and footer pages

- Open Components → SP Page Builder → Pages.

- Find the page title/ID from section 1 and open its editor. The exact editor controls can vary with the installed builder version.

- Edit the existing Text Block, Image, Button or relevant addon. Keep page sections and global CSS classes intact.

- For a section of automatic article cards, create/edit the article in Content → Articles. Do not replace the module with pasted articles.

- Use the builder’s save/publish controls and exit the editor normally. Verify the public page afterward. If another editor has the page open, coordinate before editing.[Screenshot: screenshots/page-builder.png]

Components → SP Page Builder → Pages. The older News & Prayer Alerts page (ID 4) is not the active News menu destination.


Media, menus, modules and editor locks

- Content → Media: upload approved images and PDFs, then link them from articles. Keep filenames and URLs stable when replacing a file used in several places.

- Menus: Main Menu controls the primary navigation; IPMI Supporting Pages contains the footer-page routes. Top-level menu items appear in the header. The displayed footer links and News tab list also have template code, so changing only a menu label may not change those hardcoded labels.

- Content → Site Modules: the IPMI Dynamic Content modules control card sources and counts. Do not unpublish a module simply because it is empty; the empty state may be intentional.

- Locked/check-out icon: first ask the editor to Save & Close or Cancel. An authorized administrator may use Global Checkin only after confirming no one has unsaved work. The terminal helper deliberately does not override locks.




4. Donations and external services

Realm inline giving form

Giving destination: https://onrealm.org/IntercessoryPrayerministry/give/now. Loader: https://onrealm.org/Assets/Embed/giving-embed-loader.js. The Giving page uses the supplied data-embed-giving-form-url div and loader to render the form inline beside the introduction. The layout stacks on smaller screens. Preserve the embed container and use the IPMI Realm destination; do not replace it with another ministry’s payment link.

The shared template and JavaScript route donation calls to action to /new-site/give. That is SP Page Builder page 8. Its two-column hero contains introductory text and the inline form, followed by other ways to give. A button below the form offers Open secure giving in a new tab, because Firefox reported a payment-provider frame blocked by its embedding policy during validation. That restriction is controlled by Realm/payment-provider response headers, not by Joomla CSS. Do not disable browser security to work around it.

Changes to funds, recurring-payment options, receipts, payment processing and donor records belong in the authorized Realm account. They are not website article edits. Test only form loading and navigation unless the owner explicitly authorizes a payment test; never submit an unintended donation.[Screenshot: screenshots/giving-inline.png]

The current Giving page: inline Realm form, with a direct-giving fallback below it.

Events, Prayer Wall and IPMI TV

- ipmievents.org/upcoming: separate event website and registration system. This guide covers the preview website’s links and RSS consumer, not that separate site's editing internals. Obtain its authorized access and inspect its configuration before publishing events there.

- ipmiprayerwall.org: separate Prayer Wall. A public prayer request there is different from an editorial Prayer Alerts article here.

- ipmitv.org: separate media website. Links here do not upload or publish video there.




5. Verification, rollback and troubleshooting

After every post

- Confirm the returned ID and status. For updates, ensure you changed the intended record, not a new duplicate.

- Check the category page, full article, thumbnail, Read More boundary, author alias, publication time, and any download links.

- For homepage/resource cards, check category eligibility, featured ordering and the card limit. Check the archive even when a new article is below the card limit.

- Verify desktop and a narrow mobile viewport. Test the menu and links. A draft should not appear publicly.

- Record the ID, URL, category, status, scheduled times, backup path and checks in the handoff. Keep any sensitive operational log private.


Rollback without losing Joomla compatibility

Article edits have Joomla history enabled on this installation. A human can use Versions where available, select the correct revision and restore it, then verify status/dates. The terminal helper also saves full before-record JSON in its private backups/ directory. These are recovery records, not files to serve publicly.

For a terminal article rollback: export the current article to get a fresh source_hash, copy only the intended old title/body/images/category/status/date fields from the backup into that export, then run article-save. For a page rollback: export the current page, replace layout with the JSON-decoded content from the selected page backup, retain the fresh hash, and run page-save. Keep IDs unchanged. If other edits happened after the backup, merge rather than restoring the entire old record blindly.

For template files, restore only the affected file from the session backup, lint PHP and recheck the public page. A full database import affects the whole site; use it only for a coordinated recovery with the owner, not as a routine way to undo one post.


 | Symptom | Check / remedy


 | Firefox connector refuses connection | The existing browser may not have automation enabled. Have the owner exit it, then use the approved launcher for the same profile. Do not repeatedly reopen ordinary Firefox and expect port 9223 to appear.


 | cPanel terminal no longer available | Reauthenticate through hosting/cPanel and open a fresh Terminal tab; expired session paths cannot be reused.


 | Article absent publicly | Published status, Public access, dates in UTC, language, correct category, category visibility, then cache. Drafts and expired alerts are intentionally absent.


 | New post absent from homepage | Only 3 eligible stories; featured posts sort first. Prayer Alerts are not in that module. Verify the full category archive.


 | Page title changed but body did not | SP Page Builder has both text and content. Use page-export/page-save rather than updating one column.


 | News edits have no effect | The News menu uses the Joomla category blog, not the old Page Builder page 4.


 | Helper says record changed / checked out | Coordinate with the editor, export again, and merge. Do not bypass the check.


 | Helper fails after an upgrade | Stop and inspect before retrying. It was tested with the versions in this guide. It includes the SP Page Builder autoload dependency needed for article saves. Check inventory before retrying an uncertain creation.


 | Image absent from card | Set Intro Image, verify the local images/ path exists and is public, and check the URL. A full article image or body image alone is insufficient.


 | Search misses updated page | Use Joomla Smart Search → Index or the verified finder:index CLI command; check the result. Do not assume direct Page Builder writes triggered every indexing plugin.


 | Donations do not advance inside the embedded form | Use the direct new-tab option and report the embedding issue to Realm. No payment processing is implemented by the local website.


Preview versus production

The current site has a preview bar and noindex settings. This manual does not remove those or move the preview to the domain root. Launching is a separate task involving backups, redirects, base URLs, media links, search settings and verification. Never overwrite the older root installation as part of posting an article.




6. Keep this handoff current

Guide location: /new-site/site-guide/. Hidden link: the shared footer in templates/ipmi/index.php. Private helper: /home/ipmievents/ipmi-rebuild-private/editor-guide/ipmi-editor.php. The hidden link is discovery convenience for the next agent, not access control. The directory has noindex headers and directory listing disabled.

When changing menu/category aliases, page IDs, modules, external destinations or publishing workflows, update the guide, screenshots, plain-text instructions and ZIP together. Regenerate checksums. Never put the private helper’s backups, test files, credentials or inventory exports into the public download package.

Validation record

- Current structure inspected through cPanel Terminal and compared with the public pages.

- Terminal helper syntax checked on the server; draft creation and editing tested through all four posting categories.

- A terminal-created draft opened correctly in Joomla’s article editor, with body, category and unpublished status intact. The temporary article was moved to Trash; no test article was published.

- Stale article export rejected as intended. Existing Prayer Resources layout exported and saved through the helper with content preserved.

- Human screenshots captured from the actual Joomla installation. The inline donation form was verified on desktop and a phone-width layout; no payment was submitted.

This is a site-specific guide, not a promise that arbitrary future extensions, separate websites or provider APIs behave the same way. Inspect the live inventory and permissions at the start of each session.
