shared/platform-tools was a git submodule. On this branch it is a plain
directory of tracked files, frozen at ea3616abae30106df283e73a3e2f9e5bb0e6ae90
— the same commit fotografia.andmore.pt pins. Contents are byte-identical to
that tree, verified blob by blob.
The submodule caused every deployment failure this site has had:
- .gitmodules named no `branch`, so the update fell back to
refs/remotes/origin/HEAD — a ref a plain server-side clone never writes.
"Atualizar submódulo" failed with "Unable to find refs/remotes/origin/HEAD
revision in submodule path".
- Its URL was http://, which the origin answers with 523.
- This install is deployed by uploading files, and a submodule is invisible
to that. The tree moved forward while shared/platform-tools stayed on the
old pin, config/functions_secrets.php died on a missing compat_secrets.php,
and the whole site — public pages included — went down.
Each of those was separately fixable. Together they mean a second repository
nobody can see from the deployment path, gating whether the first one boots. A
plain directory deploys like every other file and cannot fall out of step.
The cost is that platform-tools updates no longer arrive by bumping a pin; they
are a copy-over-and-commit. shared/platform-tools/VENDORED.md records the
upstream SHA, the procedure, and which four files differ from upstream in line
endings only (social/*.js, .css, functions_publications.php — CRLF upstream,
normalised to LF here; content otherwise identical).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
26 lines
1.6 KiB
PHP
26 lines
1.6 KiB
PHP
<?php
|
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
// A mesma bolha, em forma de ligação de rodapé — para o site público
|
|
//
|
|
// include __DIR__ . '/../shared/platform-tools/feedback_footer_link.php';
|
|
//
|
|
// Põe-se DENTRO do <footer>, na linha onde a ligação deve aparecer (e não antes
|
|
// do </body>, como a bolha do backoffice: aqui o sítio no HTML é o sítio no
|
|
// ecrã).
|
|
//
|
|
// Existe como ficheiro próprio, e não como uma variável a definir no site,
|
|
// porque a escolha entre bolha e ligação é uma decisão deste módulo e não de
|
|
// cada rodapé que o chama: no canto inferior direito do site público já mora o
|
|
// botão do WhatsApp, e duas bolhas empilhadas no mesmo canto são duas coisas a
|
|
// disputar o mesmo clique — sendo que a que interessa ao visitante é a outra.
|
|
// Assim o site continua a ser uma linha, igual à do backoffice, e o dia em que
|
|
// esta decisão mudar muda aqui e em toda a frota de uma vez.
|
|
//
|
|
// Tudo o resto — HTML, CSS, JavaScript, permissões, envio — está no
|
|
// feedback_widget.php e no functions_feedback.php.
|
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
|
|
$GLOBALS['platform_feedback_mode'] = 'footer';
|
|
|
|
require __DIR__ . '/feedback_widget.php';
|