[ stameni @ 14.05.2023. 18:26 ] @
Pravim sajt pomoću Boostrapa 5.1. Radi lakše administracije, neki delovi treba da budu u eksternim TXT ili HTML datotekama. Te datoteke treba da se "ugrade" u glavnu HTML stranicu. Tražeći rešenje, naišao sam na sledeća tri načina:

Code:

    <object type="text/html" data="include/include.txt"></object>
    <embed src="include/include.txt">
    <iframe src="include/include.txt">


Sva tri rade, ali je problem u tome što umetnuti tekst nema propertyje koje ima okolni tekst, a pored toga ostali elementi, ispred i iza umetnutog teksta, bivaju razbacani po stranici.

Može mala pomoć?
[ FOX028 @ 14.05.2023. 19:28 ] @
Ako sam te dobro razumeo, hoćeš da praviš parcijale. Za to ti je najlakša i najbolja varijanta da radiš u PHP i samo odradiš require fajla gde ti je potreban.
[ stameni @ 14.05.2023. 21:49 ] @
PHP (bogami, i Javascript) mi je overkill. Može li se to izvesti samo HTML-om?
[ FOX028 @ 14.05.2023. 22:32 ] @
Samo HTML-om ne možeš postići to što želiš, tako da ti ostaje ova opcija sa PHP sto mislim da ti je laksa nego JS. Bukvalno koristiš jednu PHP funkciju ostalo ti je sve klasičan HTML i CSS. Jedino što ti još dodatno treba je Apache server, za to možeš da instaliraš XAMPP.
[ S A J A @ 15.05.2023. 08:38 ] @
PHP je server-side jezik a ovde nema potrebe za time, sve može da se odradi na "client strani" ali moraćeš da koristiš Javascript. Možda čak i nešto šire od toga, kao na primer Vue. I onda na jednoj strani imaš programski deo (gde držiš podatke i promenjive) a u posebnom delu je HTML template gde te podatke raspoređuješ kako ti odgovara. Tako možeš da praviš različite stane i komponente. Imaš na netu brojne tutorijale kako radi Javacript i Vue pa ne bi trebalo da bude problema. Davno sam pravio template za to (koji je još uvek aktuelan) pa možeš da kreneš od njega.

Ako ne želiš mnogo da se petljaš oko programiranja već ti je sadržaj bitan, onda pogledaj Wordpress. Malo će ti trebati vremena dok ga instaliraš i podesiš ali je posle jednostavno korišćenje i svodi se samo na dodavanje, izmenu i brisanje sadržaja.
[ B3R1 @ 15.05.2023. 09:01 ] @
Citat:
stameni:
PHP (bogami, i Javascript) mi je overkill. Može li se to izvesti samo HTML-om?

Kao sto je Fox rekao, PHP (ili JS) ti se svodi na jednu jedinu funkciju, ostalo je sve plain HTML/CSS.

Nekoliko varijanti resenja imas ovde, pa odaberi ono koje ti funkcionise:

https://stackoverflow.com/ques...other-html-file-in-a-html-file
[ Panta_ @ 15.05.2023. 14:04 ] @
Imaš dosta rešenja u JS na linku koji je postavio @B3R1, ali mislim da većina neće da radi ako nemaš instaliran HTTP server, razlog je što Browseri blokiraju zahteve koji nisu HTTP ili HTTPS: https://developer.mozilla.org/...CORS/Errors/CORSRequestNotHttp.

Dakle, prvo instaliraj neki jednostavan HTTP server, npr: https://www.npmjs.com/package/http-server. Ili, pošto koristiš Linux i već imaš instaliran Python, u direktorijumu gde ti se nalazi sajt pokreni: python -m http.server komandu.

Zatim u index.html fajlu pre </body> taga dodaj sledeći JavaScript kod:
Code (javascript):

  <script>
    function includeFile(include) {
      fetch(include.attributes.src.value)
        .then(response => response.ok ? response.text() : '404 - Fajl nije pronadjen')
        .then(fileContent => include.outerHTML = fileContent)
        .catch(error => console.log(error))
    }

    const includes = document.getElementsByTagName('include');
    for (i=0; i < includes.length; i++) {
      includeFile(includes[i])
    }
  </script>


Zatim u istom index.html fajlu, na mestu gde želiš da ubaciš neki drugi fajl unesi sledeću liniju <include src="ime_fajla.html"></include>, na primer:
Code (html):
<include src="header.html"></include>
<include src="main.txt"></include>
<include src="footer.html"></include>

Ukoliko se fajl ne nalazi u istom direktorijumu kao index.html, navedi putanju do istog.

Code (html):
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
  <include src="header.html"></include>
  <include src="content/main.txt"></include>
  <include src="footer.html"></include>

  <script>
    function includeFile(include) {
      fetch(include.attributes.src.value)
        .then(response => response.ok ? response.text() : '404 - File Not Found')
        .then(fileContent => include.outerHTML = fileContent)
        .catch(error => console.log(error))
    }

    const includes = document.getElementsByTagName('include');
    for (i=0; i < includes.length; i++) {
     includeFile(includes[i])
   }
 </script>
</body>
</html>
[ stameni @ 15.05.2023. 14:15 ] @
Hvala svima na detaljnim odgovorima, snaći ću se za dalje Bilo mi je bitno samo da me neko uputi na koju stranu da "gledam"

+1 svima, naravno