2010-04-16 7 views
4

Je voudrais ajouter une bibliothèque multimédia à un CMS personnalisé qui est construit sur Zend Framework et Doctrine. Le but est de construire quelque chose comme la médiathèque de Worpress: vous pouvez télécharger des médias, puis les joindre à un article par exemple.Écrire votre propre bibliothèque multimédia: par où commencer?

Avez-vous des suggestions comment commencer? Comment la base de données devrait-elle être conçue? Y a-t-il un code que je peux (re) utiliser pour construire ceci? Y a-t-il de la littérature que je devrais lire à ce sujet? Merci!!

Répondre

2

Je ne sais pas comment la bibliothèque est construite WPs, mais il est open source, vous pouvez jeter un coup d'oeil.

En ce qui concerne la structure de la table, en supposant que vous voulez un grand nombre à plusieurs liens que vous voudriez une table de référence croisée, quelque chose comme:

record_id (int) 
media_id (int) 
title (text) 
caption (text) 
rank (int) 

Ensuite, la table des médias serait quelque chose comme:

id (int) 
title (text) 
caption (text) 
filename (text) 
type (image|multimedia|document) 

peut-être vous aussi ajouter un champ folder_id à la table des médias, ou peut-être vous plutôt vouloir le marquage, dans ce cas, vous avez une troisième table avec media_id et tag comme des champs (ou si vous avez des balises sous forme de valeurs séparées par des virgules dans les médias ta ble).

Cela vous permettra de lier un média à plusieurs éléments et un élément à plusieurs médias. Il vous permet de définir un titre et une légende pour l'élément multimédia et de le remplacer par un lien spécifique. Par exemple, vous avez une image d'une maison avec la légende de la maison, mais dans un lien, la légende est écrasée (dans le tableau de référence) avec un texte disant que cette maison est un exemple d'une certaine architecture. La fonction de coalesce de SQL sera utile pour obtenir le titre et la légende corrects. Si le contenu lié aux médias provient de plusieurs tables, disons que vous avez une table appelée 'staff' et une autre appelée 'produits' et qu'elles peuvent toutes les deux être reliées à un média, alors la table de références croisées doit aussi avoir un nom_table champ. Le champ type est de sorte que vous pouvez facilement obtenir uniquement le multimédia attaché à un enregistrement, ou seulement les images; vous pouvez vouloir compter combien de documents sont attachés, combien d'images etc., en basant ceci sur le nom de fichier sur chaque requête signifie que vous avez des requêtes plus lentes.

Une chose pour laquelle cela ne convient pas, c'est d'héberger le média hors site. Si vous utilisez Amazon S3 pour stocker ces images, le champ 'filename' sera en réalité une URL de l'image. Je suis juste en train de tirer cela comme quelque chose dont vous devez tenir compte lors de la conception de la médiathèque.

Je ne peux pas penser à une littérature ou un code que vous pouvez copier-coller, ce n'est pas difficile à faire, même si je comprends que cela peut prendre du temps.

Bonne chance.

0

écrire un téléchargeur de fichiers et navigateur de fichiers
qui est tout

Questions connexes