[ALG] Hoe extra informatie over bestanden opslaan?

Pagina: 1
Acties:

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Ik wil de gebruiker van mijn cms de mogelijkheid geven om zelf templates, stylesheets en javascript bestanden aan te maken via de browser.

De templates worden opgeslagen in een eenvoudige database tabel (template_id, name, description, body). Hier een overzicht uit het CMS:

Afbeeldingslocatie: http://www.danandan.luna.nl/got/templates.gif

Omdat ik de template in een database tabel opsla (in de kolom 'body'), is het makkelijk andere informatie (zoals description) mee op te slaan.

Nu wil ik ook de css bestanden via de admin bewerkbaar maken. Tot nu toe sla ik de css bestanden niet in een database op. Ik open in een textarea de .css vanaf de server. Nadeel hiervan is dat ik volgens mij geen extra informatie bij het bestand kan opslaan, zoals een description. Toch wil ik ook voor de css bestanden een overizicht kunnen maken als ik bij de templates heb. Nu kan dit imho op twee manieren:
  • een soortgelijke tabel voor css bestanden maken als ik bij de templates heb. De gebruiker update eigenlijk de database, en automatisch wordt een nieuwe .css op de server gezet. Ik kan nu extra info in de database opslaan;
  • de css bestanden niet in een database opslaan maar meta-informatie toevoegen aan het fysieke serverbestand.
Vragen:
  • Wat is volgens jou de beste methode? Of ken je een betere?
  • Heeft iemand wat nuttige links over het opslaan van meta informatie met bestanden in php? Ik weet niet eens zeker of dit mogelijk is, maar kon er via de search niets over vinden.

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


Verwijderd

Reveller schreef op zaterdag 26 maart 2005 @ 19:37:
• Wat is volgens jou de beste methode? Of ken je een betere?
Beide manieren werken toch? Ik zie niet in waarom je het niet even probeert, zoveel werk is het niet.
• Heeft iemand wat nuttige links over het opslaan van meta informatie met bestanden in php? Ik weet niet eens zeker of dit mogelijk is, maar kon er via de search niets over vinden.
Tja, CSS ondersteunt commentaar, dus als je gewoon een commentaar-blok toevoegt, welke je niet in de textarea laat zien, kun je zoveel toevoegen als je wilt. Denk aan:
Cascading Stylesheet:
1
2
3
/**
 * @description Omschrijving
 */

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Verwijderd schreef op zaterdag 26 maart 2005 @ 20:14:
[...]
Beide manieren werken toch? Ik zie niet in waarom je het niet even probeert, zoveel werk is het niet.
[...]
Het is idd niet veel werk. Het gaat er me dan ook niet om dat ik hulp nodig heb bij het bouwen ervan; het gaat erom dat de ene manier misschien grote voor -of nadelen heeft boven de andere. Dat ik over iets heenkijk... B)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


Verwijderd

Er is nóg een methode:

• Het bestand opslaan op de schijf en de meta-informatie in de database (gelinkt via de bestandsnaam).

En nóg een:

• De meta-informatie in een bestand dat dezelfde naam heeft als het CSS bestand, maar dan met een andere extensie of een extensie toegevoegd aan de bestandsnaam (dus, styles1.dat of styles2.css.meta of wat dan ook).

Voor mij zouden de oplossingen met bestanden de voorkeur hebben; gewoon omdat informatie in een bestand net dat beetje makkelijker te manipuleren is.

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Verwijderd schreef op zaterdag 26 maart 2005 @ 20:54:
[...]
Voor mij zouden de oplossingen met bestanden de voorkeur hebben; gewoon omdat informatie in een bestand net dat beetje makkelijker te manipuleren is.
Stel dat je 5 stylesheets gedefinieerd hebt. Dan is het imho makkelijker de meta informatie met 1 query op te halen dan 5 .dat bestanden te moeten doorlopen (hoewel het wel een originele oplossing was B) ) In dat geval zou ik eerder kiezen voor de oplossing van Cheetah (meta info in commentaar). Ik twijfel nog tussen zijn oplossing en meta-info in database. Als iemand, buiten voorkeur, nog een ander argument voor 1 van deze 2 oplossingen weet, hoor ik dat graag!

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Ik denk dat ik eruit ben. Ik heb veel verschillende bestanden waarvan ik extra informatie op slaan. Ik maak dus een algemene tabel "filedata":
code:
1
2
3
4
5
name | type | extension | description | created

* type = image, worddoc, template, etc...
* extension = doc, jpeg, tpl, etc...
* description wordt bij image bv. de alt-tag

Vervolgens sla ik de inhoud van de templates, stylesheets, javascript bestanden etc... als bestand op de server op. Dit is wel zo consistent: ik bewaar immers plaatjes en worddocumenten ook in een mapje en niet in een database.

Wellicht heeft iemand hier nog eens iets aan. Commentaar blijft altijd welkom :)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 08-05 18:18

Knutselsmurf

LED's make things better

Hoe doe je het met bestandsnamen? Als je alle bestanden gewoon bij elkaar gooit, heb je het risico dat je 2 verschillende bestanden met dezelfde bestandsnaam krijgt, maar met verschillende inhoud.

- This line is intentionally left blank -


Verwijderd

Ik kan wel een argument tégen "bestand op schijf/metadata in dbase bedenken": het is lastiger in sync te houden.

Maar verder moet je het helemaal zelf weten. Metadata in het bestand zelf lijkt me het mooiste, maar dat is niet met alle bestandstypen te realiseren. Tenzij je elk bestand laat preprocessen voordat je het opent ofzo. Maar dat is waarschijnlijk meer moeite dan het waard is.
Reveller schreef op zaterdag 26 maart 2005 @ 22:17:
[...]
Stel dat je 5 stylesheets gedefinieerd hebt. Dan is het imho makkelijker de meta informatie met 1 query op te halen dan 5 .dat bestanden te moeten doorlopen
Ach. Daar abstraheer je toch in een paar regels functiecode vanaf. Lijkt me niet een heel sterk argument om voor het één of het ander te kiezen.

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 06-03 20:19

_Thanatos_

Ja, en kaal

Zeg, je kan ook NTFS-streams gebruiken... ik heb nu ff geen code bij de hand, maar het is redelijk simpel te doen. Handig als je niet met een database kan/wil/mag werken om meta-info op te slaan.

(en ja, dat werkt alleen in Windows ;))

日本!🎌

Pagina: 1