Příspěvky uživatele Jirka Daněk

Za mě by bylo asi nejjednodušší pokud se chceš vyhnout přímému zásahu do databáze a vkládání přes administraci - napsat si vlastní plugin, plugin by mohl registrovat routu (např. domain.tld/api/art-import) na kterou se dá POSTem posílat nějaký JSON vstup, skript si ho rozebere, zvaliduje a pokud je vše v pořádku pak článek/články vloží, případně odpoví JSONem zpátky. Samozřejmě to chce nějak ten endpoint chránit, takže by se dala přidat validace na nějaký token např. Bearer authentication.

Záleží taky na tom, zda chceš přidávat články jen za jednoho autora nebo různé autory, v takovém případě bych to na jeden token asi nerozjížděl a chtělo by to více validace. Pokud by to bylo jen za jednoho, pak ho nemusí obsahovat ani ten vstupní JSON.

Tohle je co se týče textového vstupu celkem jednoduché, s obrázky a jejich případným uploadem si jistý nejsem a i já bych si to musel nastudovat.

Nevím jaké možnosti máš a co by ti více vyhovovalo... Můžeme to tady (i pro ostatní), případně na komunitním Discordu zkusit vyřešit.
Pokud to chápu správně, doplnil jsi jen plugin.json do starého motivu. To fungovat nebude, těch věci tam je více. Je potřeba upravit template.php, přidat layouts... podívej se do motivu Blank to je nejminimálnější dev šablona bez balastu.
Původní motiv nebude fungovat, je potřeba ho upravit do nového formátu vše ohledně šablony je v /plugins/templates/nazevmotivu/
No k Endoře se moc vyjadřovat nechci, ani platící uživatele nějak extra neřeší. Migroval jsem před časem web na jiny hosting, protože měli několik delších výpadků denně a odmítali to s majitelem webu řešit.

Kromě hlaviček by to mohl dělat taky přetížený PHP-FPM, ale kdo ví... oni barvu nepřiznají, kdysi jim takhle dlouhodobě nefungoval eAccelerator.
PHP verze je v pořádku, požadovaná je minimální verze 7.1 a server má 7.4

Ovšem s MySQL by mohl být problém. Požadovaná je minimálně verze 5.6 a na serveru je verze 5.5. Nepamatuji si už přesně kvůli čemu jsme řešili minimální verze, ale něco na starší verzi nefunguje správně.

Pokud si to pamatuju správně, tak migrátor si to kontroluje a neměl by proces spustit.
Migrátor převádí pouze databázi, je tam zřejmě jen špatný popis. S databází se od vydání nic nedělalo. Takže postupuj podle pokynů v něm i s verzí 8.3.1.
img
Zkus to moje řešení nějak implementovat, dokud neklikneš tak tam vlastně je jen img z YouTube.
Já jsem to řešil, úpravou url videa namísto https://www.youtube.com/watch?v=dQw4w9WgXcQpřes https://www.youtube-nocookie.com/watch?v=dQw4w9WgXcQNevím kdy přesně se tam pak začaly cookies taky přidávat. (viz. https://ctrlv.cz/fgsK)

Možná by to mohlo jít přes nějaký JS, kdy by se video do iframu nějak vložilo po odsouhlaseni

HTML
<div class="youtube-placeholder" data-video-id="dQw4w9WgXcQ">
<div class="thumbnail">
<img src="https://img.youtube.com/vi/dQw4w9WgXcQ/hqdefault.jpg" alt="Náhled videa">
<button class="play-btn">Souhlasím a přehrát video</button>
</div>
</div>

CSS
.youtube-placeholder {
position: relative;
display: inline-block;
cursor: pointer;
width: 560px;
height: 315px;
}
.youtube-placeholder img {
width: 100%;
height: 100%;
object-fit: cover;
}
.youtube-placeholder .play-btn {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: rgba(0,0,0,0.7);
color: white;
border: none;
padding: 10px 20px;
font-size: 1rem;
cursor: pointer;
border-radius: 4px;
}

JavaScript
document.querySelectorAll('.youtube-placeholder .play-btn').forEach(button => {
button.addEventListener('click', () => {
const container = button.closest('.youtube-placeholder');
const videoId = container.getAttribute('data-video-id');

// Zde můžeš ověřit, že uživatel dal souhlas s cookies
// např. if (!hasConsent('marketing')) return;

const iframe = document.createElement('iframe');
iframe.src = `https://www.youtube-nocookie.com/embed/${videoId}?autoplay=1`;
iframe.title = "YouTube video player";
iframe.allow = "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture";
iframe.allowFullscreen = true;
iframe.width = "560";
iframe.height = "315";

container.innerHTML = ""; // Vymaže placeholder
container.appendChild(iframe);
});
});
https://jsfiddle.net/jdanek/ogkvpb84/1/
"Tak jsem natvrdo vložil do Core.php do fce initEnvironment (nevím tedy jestli to je správně, ale takto jsem to typnul),"
zásahy přímo do systému nejsou správně, i když chápu tvou snahu o řešení


Koukal jsem během psaní pluginu na dokumentaci a různé weby a nikdo to moc nepřehání s aktivací všech. Některé ty hlavičky dokáží ten web odstřelit úplně.

Google, Seznam (C):
Strict-Transport-Security Permissions-Policy X-Frame-Options Content-Security-Policy X-Content-Type-Options Referrer-Policy

Yahoo (B):
X-Frame-Options Referrer-Policy Strict-Transport-Security X-Content-Type-Options Content-Security-Policy Permissions-Policy

Facebook/Instagram (A):
X-Frame-Options Content-Security-Policy Permissions-Policy X-Content-Type-Options Strict-Transport-Security Referrer-Policy

Perplexity (B):
Content-Security-Policy X-Frame-Options Strict-Transport-Security X-Content-Type-Options Referrer-Policy Permissions-Policy

"Největší databáze ničeho" (D):
X-Frame-Options Strict-Transport-Security Content-Security-Policy X-Content-Type-Options Referrer-Policy Permissions-Policy

DuckDuckGo (A):
Strict-Transport-Security Permissions-Policy Content-Security-Policy X-Frame-Options X-Content-Type-Options Referrer-Policy

A teď malá rejpavá... 😂
Microsoft (F):
Strict-Transport-Security Content-Security-Policy X-Frame-Options X-Content-Type-Options Referrer-Policy Permissions-Policy

Mohl bys prosím vyzkoušet ten můj plugin a dát mi nějaký feedback?
Prvotní nástřel možného řešení pluginem https://github.com/friends-of-sunlight-cms/security-headers-plugin

zatím není release, ještě nevím zda nebudu něco upravovat
Umožnit vkládat funkční PHP kód do boxu by byla bezpečnostní chyba. Nejlepším řešením bude vytvořit si vlastní HCM.

Podívej se na tento jednoduchý příklad HCM přidaného vlastním pluginem.
https://github.com/friends-of-sunlight-cms/example-hcm
Aktualizoval jsem některé pluginy, které na verzi SL 8.3 házely chyby.

např.: BetterForum, PHPMailer a další s drobnými aktualizacemi
Aktualizováno
Neaktualizováno pro SL 8.1
- opraveno na githubu, zatím nevydáno...
Strana: 1 2 3 4 5 6 7 8 9 další » ... 70