diff --git a/README.md b/README.md new file mode 100644 index 0000000..e952e36 --- /dev/null +++ b/README.md @@ -0,0 +1,192 @@ +# ACRIB — Asociación Casa Românească de las Islas Baleares + + + +**Website:** [acrib.es](https://acrib.es) +**Stack:** WordPress 6.9.4 · PHP 8.5 · Kadence theme (free) · Polylang 3.8.4 · Contact Form 7 · WP Super Cache + +--- + +## Overview + +ACRIB is the association of Romanian entrepreneurs and professionals in the Balearic Islands. The site is trilingual (Spanish, Romanian, English) and serves as the public face of the association — presenting its history, benefits, events, and a membership contact form. + +--- + +## Architecture + +| Layer | Detail | +|---|---| +| Hosting | aaPanel / BT-Panel, Nginx, PHP 8.5 FPM | +| Server access | Tailscale VPN → `root@maagar` | +| WP root | `/www/wwwroot/acrib.es/` | +| WP-CLI | `/usr/local/bin/wp --allow-root` | +| Cache | WP Super Cache — purge: `rm -rf wp-content/cache/supercache/` | +| Git remote | SSH key at `/root/.ssh/id_ed25519` | + +### Polylang language setup + +| Language | Slug | Front page ID | About page ID | Nav menu ID | +|---|---|---|---|---| +| Spanish (es) | `/` | 5 | 29 | Primary (default) | +| Romanian (ro) | `/ro/` | 33 | 69 | Nav RO (ID 16) | +| English (en) | `/en/` | 34 | 70 | Nav EN (ID 17) | + +Language switcher: flags-only, injected as a custom nav menu item in each menu. + +--- + +## MU-Plugin: `acrib-core.php` + +Location: `wp-content/mu-plugins/acrib-core.php` — always-on, no activation required. + +**Current version:** 1.4 + +### Features + +- **Transparent header on homepage + translations** — `body_class` filter at priority 999 removes Kadence's `non-transparent-header` class and adds `transparent-header` / `mobile-transparent-header`. Detects Polylang-translated front pages via `pll_get_post_translations()`. +- **Full-width / title-hide CSS** — reads `_kadence_post_layout` post meta and injects page-specific CSS to hide the Kadence title section and remove content padding (Kadence free workaround). +- **Homepage critical CSS** — injected via `wp_head` for all front-page variants (ES/RO/EN). Positions header absolutely over the hero, removes Kadence content margins. +- **Custom footer** — replaces Kadence's default copyright footer with ACRIB branding, legal links (Aviso Legal, Privacidad, Cookies), Facebook icon link, and "Hosted by Cloud Host" credit. +- **Security hardening** — `X-Frame-Options`, `X-Content-Type-Options`, `Referrer-Policy`, `Permissions-Policy` headers; XML-RPC disabled; REST API user enumeration blocked; generator tag removed. +- **Performance** — emoji scripts removed (~20 KB saving); post revisions capped at 3. + +--- + +## Pages + +| ID | Slug | Language | Description | +|---|---|---|---| +| 5 | `/` | ES | Spanish homepage (hero, sections, CF7 form) | +| 33 | `/ro/` | RO | Romanian homepage | +| 34 | `/en/` | EN | English homepage | +| 29 | `/sobre-acrib/` | ES | History timeline (10 milestones) | +| 69 | `/ro/despre-acrib/` | RO | Romanian timeline translation | +| 70 | `/en/about-acrib/` | EN | English timeline translation | + +### Homepage sections (all three languages) + +1. **Hero** — full-viewport cover block with transparent header overlay +2. **La Asociación / Asociația / The Association** — mission statement +3. **Pilares / Piloni / Pillars** — three-column values +4. **Beneficios / Beneficii / Benefits** — membership advantages +5. **Eventos / Evenimente / Events** — upcoming events placeholder +6. **Miembros / Membri / Members** — founding member logos +7. **Hazte Socio / Devino Membru / Join** — CTA with membership tiers +8. **Contacto / Contact / Contact** — Contact Form 7 shortcode + +Contact forms: ES form ID 6 (`acrib-contact`), RO form ID 61 (`acrib-contact-ro`), EN form ID 62 (`acrib-contact-en`). + +--- + +## History Timeline (`/sobre-acrib/`) + +The timeline is embedded as a `` block with self-contained CSS and a vanilla-JS lightbox. All three language versions share identical HTML structure. + +### CSS layout + +- Alternating left/right cards, 40% wide, 10% margin each side +- Center timeline line with gradient (navy → gold → burgundy) +- Cards: flex layout — thumbnail (130×110 px, `object-fit:cover`) + text + - Odd items (left-side cards): `flex-direction:row-reverse` → thumbnail on the right (toward timeline), text on the left + - Even items: thumbnail left, text right +- Thumbnails are clickable (lightbox via `#acrib-lb` overlay) +- Mobile (≤640px): single-column, full-width images + +### Lightbox + +Vanilla JS, no dependencies. Overlay div `#acrib-lb` injected into each timeline page's `wp:html` block. Opens on thumbnail click, closes on overlay click or `Escape` key. Locks body scroll while open. + +### Timeline milestones (ES, newest → oldest) + +| Date | Event | +|---|---| +| Jan–Mar 2026 | Tres Primeros Eventos del Club | +| 3 Dec 2025 | Proyección de Cine Rumano (ICR Madrid) | +| Nov 2025 | Bandera Rumana en el Paseo Sagrera | +| Autumn 2025 | Seminario Emil Racoviță — Cuevas del Drach | +| Oct 2025 | El Atlas de la Belleza — Mihaela Noroc | +| 2025 | Evento Nostalgia | +| Dec 2024–2025 | Constitución Oficial de ACRIB | +| 29 Nov–2 Dec 2024 | La Bandera Rumana Ondea en Mallorca | +| 26 Mar 2024 | **La Semilla de ACRIB** — Jornada en la Cambra de Comerç *(founding event — burgundy dot)* | +| 2023–2024 | Los Primeros Pasos (meetings with PIMEM, Palma Activa) | + +--- + +## Media Library + +Key uploaded images (all in `wp-content/uploads/2026/05/`): + +| File | WP ID | Used in | +|---|---|---| +| `nostalgia-acrib.jpg` | 65 | Timeline: Nostalgia event | +| `atlas-belleza-acrib.jpg` | 66 | Timeline: Atlas de la Belleza | +| `racovita-acrib.jpg` | 67 | Timeline: Emil Racoviță seminar | +| `bandera-acrib.jpg` | 75 | Timeline: Bandera Nov 2024 + Nov 2025 Paseo Sagrera | +| `palma-activa-acrib.jpg` | 76 | Timeline: Primeros Pasos | +| `cambra-acrib.png` | 77 | Timeline: La Semilla / Cambra de Comerç | +| `eventos-2026-acrib.jpg` | 78 | Timeline: Tres Primeros Eventos 2026 | +| `cine-acrib.jpg` | 79 | Timeline: Proyección Cine Rumano | +| `constitucion-acrib.jpg` | 80 | Timeline: Constitución Oficial | + +> **Note:** Facebook CDN URLs expire (the `oe=` parameter is a Unix timestamp). Always download Facebook images to the server and upload to WP Media Library before using them in content. + +--- + +## Common Operations + +### Deploy a PHP script to WordPress +```bash +scp -i /root/.ssh/id_ed25519 script.php root@maagar:/tmp/ +ssh -i /root/.ssh/id_ed25519 root@maagar \ + "/usr/local/bin/wp --path=/www/wwwroot/acrib.es --allow-root eval-file /tmp/script.php" +``` + +> **Tip:** Do not embed large strings (CSS, JS, HTML) directly in scripts run via `eval-file`. PHP's `eval()` silently fails on large single-quoted strings. Use `file_get_contents('/tmp/file.txt')` instead. + +### Purge cache +```bash +ssh root@maagar "rm -rf /www/wwwroot/acrib.es/wp-content/cache/supercache/" +``` + +### WP-CLI examples +```bash +# Get post content +wp --path=/www/wwwroot/acrib.es --allow-root post get 29 --field=post_content + +# Update post +wp --path=/www/wwwroot/acrib.es --allow-root post update 29 --post_content="$(cat file.html)" + +# Run arbitrary PHP +wp --path=/www/wwwroot/acrib.es --allow-root eval 'echo get_bloginfo("url");' +``` + +### Update MU-plugin +```bash +scp -i /root/.ssh/id_ed25519 acrib-core.php \ + root@maagar:/www/wwwroot/acrib.es/wp-content/mu-plugins/acrib-core.php +``` + +--- + +## Git History + +| Commit | Description | +|---|---| +| `1473d34` | fix: timeline full-width single-column layout + RO language files | +| `b235608` | feat: RO/EN timeline translations, Facebook page link, real ACRIB history | +| `34714e9` | feat: multilingual support — RO/EN translations and menu fixes | +| `0e03636` | fix: extend Kadence title-section hide to all pages with title:hide meta | +| `430defd` | feat: hero fix, Kadence footer removal, Sobre ACRIB timeline, Novedades blog, Polylang | + +--- + +## Facebook + +ACRIB Facebook page: [facebook.com/profile.php?id=61583585888787](https://www.facebook.com/profile.php?id=61583585888787) +Linked in the site footer via SVG icon (injected by MU-plugin `wp_footer` action). + +--- + +*Site built and maintained by [Cloud Host](https://cloudhost.es)* diff --git a/readme.html b/readme.html deleted file mode 100644 index e1528c1..0000000 --- a/readme.html +++ /dev/null @@ -1,98 +0,0 @@ - - -
- - - -
-Semantic Personal Publishing Platform
- -Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I am proud to be a part of. Thousands of hours have gone into WordPress, and we are dedicated to making it better every day. Thank you for making it part of your world.
-— Matt Mullenweg
- -wp-config.php file with your database connection details.
- wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.wp-config.php and upload it.wp-config.php file, and try again. If it fails again, please go to the WordPress support forums with as much data as you can gather.admin.index.php.WordPress can import from a number of systems. First you need to get WordPress installed and working as described above, before using our import tools.
- -If you have any questions that are not addressed in this document, please take advantage of WordPress’ numerous online resources:
-WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgeable than yourself, or writing the author of a media article that overlooks us.
- -WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.
- -WordPress is free software, and is released under the terms of the GPL (GNU General Public License) version 2 or (at your option) any later version. See license.txt.
- - -