Diff -- /var/www/vhosts/3dshawn.com/repricer.3dshawn.com/TEMPLATES/repricer_admin_seo.html
Diff
/var/www/vhosts/3dshawn.com/repricer.3dshawn.com/TEMPLATES/repricer_admin_seo.html
added on local at 2026-07-01 21:47:22
Added
+105
lines
Removed
-0
lines
Context
0
unchanged
Blobs
from
to 4716bde456b9
to 4716bde456b9
Unified diff
Naive LCS-based line diff. Additions in emerald, deletions in rose. Both sides decompressed live from BLOB_STORE.| 1 | <!-- ===================================================================== | |
| 2 | Admin SEO -- platform-wide SEO + Open Graph + Twitter Card. | |
| 3 | Drives every page that does not have its own per-storefront SEO row. | |
| 4 | ===================================================================== --> | |
| 5 | ||
| 6 | <div class="page-head"> | |
| 7 | <div> | |
| 8 | <span class="page-eyebrow"><span class="dot"></span> Admin · Platform SEO</span> | |
| 9 | <h1 class="page-title">Platform SEO & social cards</h1> | |
| 10 | <p class="page-subtitle">Set the title, description, keywords, and social-share defaults for the RePricer marketing pages and dashboard. Per-storefront settings on each seller's <code>/storefront_seo.cgi</code> page override these for their own pages.</p> | |
| 11 | </div> | |
| 12 | </div> | |
| 13 | ||
| 14 | [if:$has_flash] | |
| 15 | <div class="pr-flash $flash_kind">$flash_msg</div> | |
| 16 | [/if] | |
| 17 | ||
| 18 | [if:$schema_missing] | |
| 19 | <div class="an-banner" style="background:rgba(245,158,11,0.10);border-color:rgba(245,158,11,0.30)"> | |
| 20 | <strong>platform_settings table not yet installed.</strong> Run the latest <code>db_schema.sql</code> against the database. | |
| 21 | </div> | |
| 22 | [/if] | |
| 23 | ||
| 24 | [if:$schema_ready] | |
| 25 | <div class="seo-grid"> | |
| 26 | <form method="POST" action="/admin_seo.cgi" class="pr-form"> | |
| 27 | <input type="hidden" name="act" value="save"> | |
| 28 | <div class="pr-form-grid"> | |
| 29 | <div class="pr-field full"> | |
| 30 | <label>Default page title</label> | |
| 31 | <input type="text" name="seo_title" maxlength="160" value="$seo_title" placeholder="RePricer - Sell products on your own storefront"> | |
| 32 | <div class="hint">Used for every dashboard / marketing page that does not have its own override.</div> | |
| 33 | </div> | |
| 34 | ||
| 35 | <div class="pr-field full"> | |
| 36 | <label>Default meta description</label> | |
| 37 | <textarea name="seo_description" maxlength="320">$seo_description</textarea> | |
| 38 | <div class="hint">~150–160 characters. Should clearly state what RePricer is and who it is for.</div> | |
| 39 | </div> | |
| 40 | ||
| 41 | <div class="pr-field full"> | |
| 42 | <label>Default keywords</label> | |
| 43 | <input type="text" name="seo_keywords" maxlength="255" value="$seo_keywords" placeholder="e-commerce, sku marketplace, repricing platform"> | |
| 44 | <div class="hint">Comma-separated. Used as fallback for storefronts that have not set their own.</div> | |
| 45 | </div> | |
| 46 | ||
| 47 | <div class="pr-field"> | |
| 48 | <label>Canonical base URL</label> | |
| 49 | <input type="text" name="seo_canonical_base" maxlength="255" value="$seo_canonical_base" placeholder="https://repricer.com"> | |
| 50 | <div class="hint">Production root URL. Used to build canonical links on every page.</div> | |
| 51 | </div> | |
| 52 | ||
| 53 | <div class="pr-field"> | |
| 54 | <label>Allow search engines to index the platform</label> | |
| 55 | <label class="pr-radio" style="display:inline-flex"><input type="checkbox" name="seo_robots_index" value="1"[if:$is_robots_on] checked[/if]> Show in Google, Bing, etc.</label> | |
| 56 | <div class="hint">Untick to add <code>noindex, nofollow</code> across every page that does not override.</div> | |
| 57 | </div> | |
| 58 | ||
| 59 | <div class="pr-field full"> | |
| 60 | <label>Default social share image</label> | |
| 61 | <input type="text" name="seo_og_image" maxlength="255" value="$seo_og_image" placeholder="/Logo.png"> | |
| 62 | <div class="hint">Shown when RePricer URLs are pasted into Facebook, Discord, Slack, X/Twitter, iMessage. 1200×630 works everywhere.</div> | |
| 63 | </div> | |
| 64 | ||
| 65 | <div class="pr-field"> | |
| 66 | <label>Open Graph site name</label> | |
| 67 | <input type="text" name="seo_og_site_name" maxlength="120" value="$seo_og_site_name" placeholder="RePricer"> | |
| 68 | </div> | |
| 69 | ||
| 70 | <div class="pr-field"> | |
| 71 | <label>Twitter / X card style</label> | |
| 72 | <select name="seo_twitter_card"> | |
| 73 | <option value="summary_large_image"[if:$is_card_large] selected[/if]>Large image (recommended)</option> | |
| 74 | <option value="summary"[if:$is_card_summary] selected[/if]>Compact summary</option> | |
| 75 | </select> | |
| 76 | </div> | |
| 77 | ||
| 78 | <div class="pr-field"> | |
| 79 | <label>Platform Twitter / X handle</label> | |
| 80 | <input type="text" name="seo_twitter_site" maxlength="64" value="$seo_twitter_site" placeholder="@repricer"> | |
| 81 | <div class="hint">Adds attribution when RePricer URLs are shared on X.</div> | |
| 82 | </div> | |
| 83 | </div> | |
| 84 | ||
| 85 | <div class="pr-actions"> | |
| 86 | <button type="submit" class="btn btn-primary">Save platform SEO</button> | |
| 87 | <a href="/admin.cgi" class="btn btn-secondary">Back to admin</a> | |
| 88 | </div> | |
| 89 | </form> | |
| 90 | ||
| 91 | <aside class="seo-preview"> | |
| 92 | <div class="seo-preview-head">Search preview</div> | |
| 93 | <div class="seo-preview-card"> | |
| 94 | <div class="seo-preview-url">$preview_url</div> | |
| 95 | <div class="seo-preview-title">$preview_title</div> | |
| 96 | <div class="seo-preview-desc">$preview_desc</div> | |
| 97 | </div> | |
| 98 | <div class="seo-preview-note"> | |
| 99 | These are the defaults that apply across the dashboard and marketing pages. Each seller can override their own storefront page via <code>/storefront_seo.cgi</code>. | |
| 100 | </div> | |
| 101 | </aside> | |
| 102 | </div> | |
| 103 | [/if] | |
| 104 | ||
| 105 | <div class="adm-foot-spacer" data-end="admin-seo"> </div> |