Home
The tenant journal's public landing page — index.php (journal docroot, default view, no _action) composing the header/banner image, primary menu, an "about journal" blurb, current-issue / in-press / top-articles / editor's-choice article tabs, an archived-index summary, facts & figures, publication info (owner, editorial board, ISSN, frequency), indexing-database logos, ads, a keyword cloud, a related-journals strip, and a shared footer (recent news, newsletter signup, social links, RSS).
| Page | Status | E2E | Enhanced | Legacy Ref | Route | Roles |
|---|---|---|---|---|---|---|
| Home | Full | Yes | scroll-spy | index.php | / | Public |
| Cross-Journal Directory (mainm/mainn default view) | Full | Yes | filters | mainm/index.php; mainn/index.php | / | Public |
Features
| Feature | Status | E2E | Description |
|---|---|---|---|
| Visitor sees the journal hero/banner with cover image, title and key journal metadata | Full | Yes | Replaces the legacy head_image overlay and journal coversheet block; fed by the layout's TenantProvider. |
| Visitor reads the admin-configured 'about journal' blurb on the home page | Full | Yes | Legacy home_page_notes setting rendered as the intro section; hidden when empty. |
| Visitor browses current-issue articles directly on the home page (settings-gated) | Full | Yes | Legacy 'current issue' tab of the composite article tab block. |
| Visitor browses articles-in-press on the home page | Full | Yes | Legacy only rendered in-press on non-old/base themes; new home always offers it when data exists. |
| Visitor sees top / most-visited articles on the home page | Full | — | Legacy show_top_articles setting-driven 'Top Articles' tab reimagined as an inline 'most visited' section. |
| Visitor sees editor's-choice articles on the home page (show_editor_choice setting) | Pending | — | Legacy getEditorChoiceArticles() tab (index.php:398-403); no apps/web counterpart found (grep for editor-choice on home is empty). |
| Visitor sees the journal's facts & figures panel (submission/acceptance stats etc.) | Full | Yes | Legacy rendered two settings-driven HTML blobs in sidebar boxes; now a dedicated full-width section. |
| Visitor sees publication info: owner, editorial-board preview, frequency, print/online ISSN with issn.org links | Full | Yes | Legacy sidebar linked each ISSN to portal.issn.org and listed editorial-board members by role; new home shows an editorial-board preview section linking to the full board page. |
| Visitor sees which indexing databases cover the journal | Full | — | Legacy home sidebar showed a truncated indexing list with a 'more' link to journal/indexing; the new app keeps only the dedicated page. |
| Visitor sees admin-managed ads on the journal home, and ad clicks are counted then redirected to the target URL | Pending | — | Legacy ju_ads block (themes index.php:160-179) plus ?adsc click-count-and-redirect handler (index.php:36-68); no journal-home counterpart in apps/web (portal landing ads are a separate portal-module capability). |
| Visitor explores a keyword cloud of the journal's top 200 keywords (cached, settings-gated) | Pending | — | Legacy show_keyword_cloud with CacheManager-backed getTopKeywords(200) (index.php:405-416); no apps/web counterpart. |
| Visitor sees a related-journals strip on the journal home | Pending | — | Legacy getRelatedJournals + related_journal theme template; no apps/web counterpart found. |
| Visitor sees an archived volume/issue index summary and can jump into the archive | Full | Yes | Legacy archive_index sidebar template driven by browseVolumeIssue, honoring the hide_vol_year setting. |
| Visitor sees recent journal news in the shared footer and can navigate to the news pages | Full | Yes | Legacy footer listed recent news items directly; new footer links to the news section. |
| Visitor subscribes to the journal newsletter from the footer | Full | Yes | Newsletter signup with client-side validation replacing the legacy footer form. |
| Visitor reaches the journal's social profiles and RSS feed from the footer | Full | Yes | Admin-entered social links are filtered to non-empty entries; RSS always points at the app's own feed route. |
| Visitor gets a cookie-consent banner and a scroll-to-top button on the journal home | New | Yes | No legacy predecessor; added for compliance and long-page ergonomics. |
| Visitor navigates home-page sections via a sticky scroll-spy navigation bar | New | Yes | Replaces legacy tab switching with in-page anchor navigation; entries appear only when the section has data. |
| Visitor is prompted to publish research via a register/submit call-to-action on the home page (settings-gated) | New | Yes | New conversion CTA with no legacy home equivalent; hidden when registration/submission is disabled for the journal. |
| Visitor browses the cross-journal directory grid with journal covers/logos linking to each journal site | Full | Yes | Legacy fell back cover -> logo -> default coversheet per journal; primary claim of the Portal journals module. |
| Visitor live-searches the directory by journal title and publisher | Full | Yes | Legacy AND-ed each whitespace-separated term as ILIKE filters; new search is server-driven with results summary. |
| Visitor filters the directory by subject, frequency, language and indexing database with live facet counts and URL-synced state | Full | Yes | Frequency/language/index facets and live counts are enhancements over the legacy subject-only browse. |
| Visitor sorts and paginates the directory | Full | Yes | Pagination is new; sort options (relevancy/lastIssueTime/title/createdAt) extend the legacy binary sort. |
| Visitor switches the portal language (legacy juLang fa/en cookie toggle) | Full | Yes | Locale is now part of the URL with en/ar and RTL support instead of a fa/en cookie. |
| Visitor reads portal-level news highlights (top-5 list) and opens a news item's detail | Full | Yes | Legacy journal_code=0 news; primarily claimed by the Portal landing module. |
| Visitor reads settings-driven static 'menu' pages on the portal (menuN_title/menuN_cnt) | Pending | — | Legacy ?menu=N rendered admin-configured static content (mainm/index.php:254-285); inventory says 'redistributed' but no verified apps/web counterpart per menu page. |
| Visitor browses a cross-journal year archive (?years list and year_YYYY.html pages) | Pending | — | Legacy grouped all articles' publish dates into year links (mainm/index.php:339-362); no apps/web counterpart found. |
| Visitor reads the portal's embedded contact blurb (?contact) | Pending | — | Legacy contact_us setting rendered inline (mainm/index.php:308-327); the new portal likely covers this via its own contact page (Portal module) — unverified here. |
| Visitor subscribes to a cross-journal RSS feed of new articles (?rss, sep_by_lang aware) | Pending | — | Legacy getJournalsRSS across all journals (mainm/index.php:328-335); per-journal RSS exists in apps/web but no verified portal-wide feed. |
| Visitor sees news / top-articles / recent-articles tabs on the portal directory (no_top=100 setting) | Pending | — | Legacy tabbed block on the directory default view (mainm/index.php:432-476); portal landing offers different content (trending keywords, top authors) owned by Portal modules. |
| Visitor searches articles across all journals (keyword box, author-name search, advanced search) from the directory screen | Pending | — | Legacy embedded cross-journal article search on the mainm default view (mainm/index.php:363-429); cross-journal search in the new app belongs to the Portal/Search modules — module boundary flagged. |
| Visitor lands on a portal home presenting featured journals, browse-by-category, news and live statistics | New | Yes | Serves the discovery/branding need the bare legacy grid never addressed; primary claim of the Portal landing module. |
All widgets on this page (current-issue/in-press/top/editor's-choice article tabs, facts & figures, publication info, indexing, ads, keyword cloud, related journals, footer news/newsletter/social) are settings-driven sections of one composite screen rendered by
themes/<theme>/front/pages/index.php — none is reachable at its own distinct _action/route, so they are documented as one "Home" row rather than split into per-section rows. Other _action values handled by the same index.php dispatcher (advSearch, article/press, articleInfo, linkout, current) render materially different screens and belong to the Search and Issues & Articles modules, not Home.Correction:
_action=cite is not a screen and is not one of the above.case "cite": in index.php only delegates to ArticleCitation::manageActions() → getScoupsCitation() (class/article.citation.class.php), which does echo json_encode($ret) — a live Scopus citation-count JSON lookup with no page-template load, running after the switch has already started emitting the page shell, so it can't render a standalone screen either. Grepping the whole legacy tree (excluding vendor/tinymce) for this action turns up zero callers anywhere; it looks unreachable in practice. Per this segment's own "pure handler, no rendered screen" rule (see journal/issues-articles.html's identical treatment of XML export), it is correctly excluded from row consideration in every module, not folded into Search/Issues & Articles as the previous version of this note implied.Judgement call, now resolved with a claimed row above (previously only flagged).
The design brief's suggested anchors
apps/legacy/js/mainm/index.php and apps/legacy/js/mainn/index.php were traced and found to not be per-journal Home implementations — both hardcode journal_code = 0 and reproduce the cross-journal directory-listing pattern of the Portal segment's main/index.php (journal search/filter grid, "journals list" browsing, static "menu" pages, embedded contact blurb, RSS, year archive), rather than a single journal's themed home page. Per the design doc's segment table, mainm/mainn public dispatch is explicitly sourced under the Journal segment (not Portal); portal/journals.html and portal/landing.html both decline to claim it for that reason. Since it renders a materially different, still-live screen (see below) with no row anywhere in the inventory, leaving it as an inline flag rather than a claimed row was a Definition-of-Done gap — it is now captured above as its own "Cross-Journal Directory" row, bundling the settings-driven menu/highlights/contact/rss/years sub-views the same way the Home row bundles its own widgets, since none of them is reachable at its own distinct _action either.Confirmed still-live, not dead code — with a wrinkle worth flagging for Phase C.
apps/legacy/spec/auth/public-private-files.md discusses mainm/jufile.php's payment-receipt access-control gap, confirming the mainm tree is still served in production. apps/legacy/apache-httpd/httpd-vhosts.conf maps mainm as the DocumentRoot for the journals.ekb.eg/journal.ekb.eg vhost (plus its bare-IP alias) — i.e. the root portal domain, not any per-journal tenant subdomain (per-journal subdomains are ServerAlias entries on the separate j.ekb.eg vhost whose DocumentRoot is the top-level journals/ dir housing the real per-journal index.php claimed as "Home" above); mainn has no vhost entry of its own and is only reachable as a public subdirectory under that same top-level docroot. That vhost mapping — mainm serving the portal domain — is in tension with the design doc's segment table filing "mainm/mainn public dispatch" under Journal rather than Portal; this row follows the design doc's documented assignment, but the tension is a genuine open question for Phase C triage, not resolved here.apps/legacy/js/view/index.view.php (also named as a likely anchor) is unrelated to the public Home page — it renders the admin CRUD screens (list/add/edit) for indexing-database entries via class/index.class.php, i.e. the back-office source for the public "Indexing" widget shown here, not a Home page itself.