feat: add videodb media index with Docker stack

- Add videodb PHP/MySQL media collection manager (Blu-ray, DVD, CD)
- Dockerfile: PHP 8.1 + Apache with GD/mysqli/exif extensions
- docker-compose.yml: app on port 6761 + MySQL 8.0 with health checks
- docker-entrypoint.sh: auto-generates config.inc.php from env vars,
  waits for MySQL, initializes DB schema idempotently
- init-db.php: CLI schema installer using app's own prefix_query() logic
- Persistent volumes for DB, cache, and cover images

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-11 09:49:52 +02:00
commit f55c91276e
1230 changed files with 252321 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Usage</h1>
<h2>Browsing the Database</h2>
<p>The browse view allows you to list the content of your database by applying filters to the available data. On the top of the screen you'll find a row of radio buttons to list the available titles sorted by the first letter of the title.<br /> This means if you select the <code>DEF</code> filter only movies beginning with a D, E or F are shown in the list.</p>
<p>When adding movies it is a good practice to move common words like <code>the</code> or <code>a</code> to the end of the title to have the sorting make more sense.</p>
<p>Example: <code>A Clockwork Orange</code> becomes <code>Clockwork Orange, A</code>
<p>VideoDB treats TV episodes special, which means they are not shown by default. To show them, <code>show TV episodes</code> must be enabled. You can change this behavior in the <a href="configview.html">configuration</a>.</p>
<p>When selecting the <code>all</code> filter all movies are shown - please note that this can take some time if you have a very large database!<br />
Usually the list is always sorted lexically, you may change the sort order of the <code>all</code> filter to sort by the <code>DiskID</code> in the <a href="configview.html">configuration</a>.</p>
<p>The <code>unseen</code> filter just shows you the movies that are not marked as seen yet by you.</p>
<p>When using the <code>new</code> filter only the 15 newest additions to your database are shown. You can change the number of shown files here in the <a href="configview.html">configuration</a>.
<a name="wishlist"></a>
<p>The last filter is the <code>Wishlist</code>. Movies shown here are not yet owned by you and will not show up in any of the other views (not even with the <code>all</code> filter). To add a movie to your wishlist just add like every other movie but set its mediatype to <code>wanted</code>.</p>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,59 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Usage</h1>
<h2>The Configuration Screen</h2>
<h3>The Cache Control Bar</h3>
<h3>Changing the configuration</h3>
<h3>The custom types</h3>
<p>There are the following customtypes available:</p>
<table>
<tr>
<td>text</td>
<td>This is a simple textfield nothing special about it</td>
</tr>
<tr>
<td>url</td>
<td>This shows a clickable link in the show view</td>
</tr>
<tr>
<td>ed2k</td>
<td>You may enter a MD4 sum and a clickable eDonkey link will be generated from this field, the filesize and the filename</td>
</tr>
<tr>
<td>language</td>
<td>This is another language field. It will display the same languageflags for quickentry as the standard one.</td>
</tr>
<tr>
<td>rating</td>
<td>You can rate a movie with this field. It can be filled from IMDB.</td>
</tr>
<tr>
<td>orgtitle</td>
<td>This is the same as the standard title field, it gets filled from IMDB. This is useful if you store translated title of the movie in the title field.</td>
</tr>
<tr>
<td>movix</td>
<td>If you use <a href="http://movix.sourceforge.net/" target="_blank">Movix</a> on your CDs you can choose the version with this field.</td>
</tr>
<tr>
<td>mpaa</td>
<td>This field can hold the movie rating of the Motion Picture Association of Amerika. It gets filled from the IMDB.</td>
</tr>
</table>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,57 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Additional Scripts</h1>
<h2>General</h2>
<p>VideoDB comes with some additional Scripts to do certain tasks, using them is completely optional and not needed for a functional VideoDB. All these files are stored in the <code>contrib</code> directory.<br />
Some of them are written in Perl and you have to edit them to match your database auth options. Some knowledge of Perl and SQL may be helpful.</p>
<p>If you wrote something you think others could find useful just send it to the developers mailing list (<a href="mailto:videodb-devel@lists.sourceforge.net">videodb-devel@lists.sourceforge.net</a>) or join the <a href="http://lists.sourceforge.net/mailman/listinfo/videodb-devel">Developer Mailinglist</a> and post it there.</p>
<a name="mklist"></a>
<h2>mklist.pl</h2>
<p>This generates a plaintextlist of all files in the database. Edit the variables at the top</p>
<a name="setgenre"></a>
<h2>setGenre.pl</h2>
<p>This script is useful to set the same genres for a bunch of entries based on their title. For example setting all <code>Simpsons</code> episodes to <code>Animation</code> and <code>Comedy</code>. You have to edit some variables at top of the file to make it do what you want.</p>
<a name="videoadd"></a>
<h2>videoadd.pl</h2>
<p>This tool is very useful to automatically add some videofiles to the database. It mounts your CD-ROM drive, searches for video files, tries to guess the title and some other infos from the filename and adds them to the database. It uses <a href="http://www.mplayerhq.hu/">mPlayer</a> to extract video informations from the file. It accepts the path to your CD-ROM drive as argument.</p>
<a name="direxport"></a>
<h2>direxport.pl</h2>
<p>This creates single html pages from the movies in the database. It allows me to browse the database content with my <a href="http://splitbrain.org/go/irfc">IR File Chooser</a> tool.</p>
<a name="langcheck"></a>
<h2>langcheck.php</h2>
<p>This PHP tool checks all language files for missing translations and displays the missing keys. This is useful for <a href="translate.html">Translators</a>. Just call it from your webbrowser like this: <code>http://myserver.com/videodb/contrib/langcheck.php</code></p>
<a name="tvtome"></a>
<h2>tvtome.php</h2>
<p>To use this PHP tool call it from your webbrowser like this: <code>http://myserver.com/videodb/contrib/twtome.php</code>. This tool can fetch episode infos from <a href="http://www.tvtome.com">www.tvtome.com</a> and add the data to the episodes in your VideoDB.</p>
<p>You need to enter the complete URL to the TV shows episode guide at tvtome (eg. <code>http://www.tvtome.com/Futurama/guide.html</code> for Futurama) and some Searchstring to select the episodes of this show stored in your VideoDB (eg. <code>Futurama*</code> to find all movies with their titles beginning with Futurama)</p>
<p>After you press the "submit query" button the tool fetches the episode guide and lists all episodes. For each episode you have to choose the matching movie in your VideoDB. The tool tries to suggest the matching title based upon an similarity comparison. For each episodes data you want to import you need to check the checkbox. Then pressing thefinal submit button the selected data is imported.</p>
<p>You need to have Admin rights to use this tool in multiuser mode.</p>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,21 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Usage</h1>
<h2>The Detail View</h2>
<p>When clicking on a title in the <a href="browse.html">Browse View</a>, you're presented with the movies detail view. It's pretty self-explanatory. You just see all the inforamation thats stored in the database about the selected movie.<br />
Clicking the cover image opens the IMDB page for the movie. Clicking an actors name will <a href="search.html">search</a> for movies with that actor. The same applies to all other clickable labels.</p>
<p>You can click the random link in the top menu to get a random view</p>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,42 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Development</h1>
<a name="res"></a>
<h2>Developer Ressources</h2>
<p>If you want to join the development of VideoDB the first you should do is joining the <a href="http://lists.sourceforge.net/mailman/listinfo/videodb-devel" target="_blank">Developer Mailinglist</a>.</p>
<p>To stay up to date you should also use the current CVS version of VideoDB to avoid writing something that maybe is already included there. You can get the current development version from the CVS Server either by browsing the <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/videodb/videodb/" target="_blank">Web-Interface</a> or accessing the repository directly via anonymous CVS:
<pre>
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/videodb login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/videodb co videodb
</pre>
<p>When prompted for a password just hit enter.</p>
<p>Please note that the webbased access is up to 24 hours behind the real CVS Server so a real checkout is always to prefer.</p>
<a name="guide"></a>
<h2>Coding guidelines</h2>
<p>Here are some simple guidelines when contributing to VideoDB:</p>
<ul>
<li>Use an indention width of 4</li>
<li>Don't use tabs! Use spaces instead. Tabs look different in different editors, that makes problems...</li>
<li>Comment your code!</li>
<li>Use <a href="http://www.phpdoc.org">phpDocumentor</a> tags to explain your functions</li>
</ul>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,74 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Usage</h1>
<h2>Frequently Asked Questions</h2>
<p>Here are some frequently asked questions:</p>
<dl>
<dt><b>I installed the database and changed the config.inc.php but when I try to browse the videodb it doesn't work.</b></dt>
<dd>Make sure your PHP installation has 'short_open_tag' enabled (should be by default).</dd>
<dt><b>I want more Inputfields!</b></dt>
<dd>There are four custom fields! Use them! Read the comments in custom.php for informations how to change the output and input of them.</dd>
<dt><b>My videos are not in english, german, french or spanish! What should I put into the language box?</b></dt>
<dd>Just put in your desired language it is just a freeform textfield. If you want to have a country flag displayed for it, place a GIF image named like the language into the flags directory. It should be 30x15 pixels in size. There is a README in the images/flags directory - read it.</dd>
<dt><b>I can't borrow a video! How is this done?</b></dt>
<dd>You have to assign a diskid to it! If you have done so, select the video and click on [ borrow ] in the top row.</dd>
<dt><b>My movies are stored on some really weird media! How can I add some new mediatypes?</b></dt>
<dd>Use your favourite MySQL tool to add them into the mediatypes table. Does anyone own LaserDisks? Should they be in by default?</dd>
<dt><b>The Adult genre never get's filled by an IMDB lookup!</b></dt>
<dd>Yes - there is no such category in IMDB - You have to mark your pr0n yourself ;-)</dd>
<dt><b>How does the wishlist work?</b></dt>
<dd>To add a movie to wishlist find the wanted movie on IMDB, add the movie as usual but choose <code>wanted</code> as mediatype - the movie will appear on your wishlist. When you finally get the movie you can change the mediatype setting to appropriated in the edit screen.</dd>
<dt><b>I enabled the multiuser support. But now I can't login to add users!</b></dt>
<dd>There is a default user named <code>admin</code> created on database creation. An his password is - you guessed it - <code>admin</code>. BTW: Be sure to change the password once you logged in.</dd>
<dt><b>Some of my movies are spread about multiple disks. How do I add them?</b></dt>
<dd>There are two ways people handle this. What I do is adding them twice (or how many disks you have) with some label like "CD2" or something in the title or subtitle field. Others use a custom field to store the number of disks - but this makes the file information fields a little bit useless. All other solutions would require drastic database changes.</dd>
<dt><b>I have multiple movies on one disk. Is that a problem?</b></dt>
<dd>No. Just add any movie and give each the same diskID - All movies on the same disk become unavailable if you borrow the disk.</dd>
<dt><b>Can I add some more genres?</b></dt>
<dd>Just add them with your favourite MySQL tool to the genres table.</dd>
<dt><b>I tried to translate the english language file but when I select my newly created language everything stays in english!?</b></dt>
<dd>If there is a bug in the language file the default one is used. Try to load your file directly in the browser. This will parse the file and display an error message which should help you. Another hint: You have to escape doublequotes with a backslash.</dd>
<dt><b>My cache/imdb directory is getting large - Can I delete the files in it?</b></dt>
<dd>Yes. Or just use the cache controlbar in the <a href="configview.html">Config Screen</a></dd>
<dt><b>Arghh! I locked my self out from the config screen by making a mistake in the localnet option.</b></dt>
<dd>Use your favourite MySQL tool to delete the option from the config table: <code>DELETE FROM config WHERE opt='localnet';</code></dd>
<dt><b>Hey your tool is great! Can I do anything for you?</b></dt>
<dd>Read, inform yourself and think before voting your next president.</dd>
<dt><b>I want to support you and the development of VideoDB - can I donate something?</b></dt>
<dd>Of course you can :-D Use the <a href="https://www.paypal.com/xclick/business=cpuidle%40gmx.de&item_name=videoDB&no_note=1&tax=0&currency_code=EUR">PayPal Account</a></dd>
<dt><b>Are all these questions really asked frequently or do you just make them up?</b></dt>
<dd>Yes :-)</dd>
</dl>
<p>your question isn't answered here? just mail me :-)</p>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,20 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Usage</h1>
<h2>The IMDB Browser</h2>
<p>This feature is disabled by default! Enable it in the <a href="configview.html">configuration screen</a> to use it.</p>
<p>The IMDB Browser integrates the Internet Movie Database directly into VideoDB. When enabled you can access the IMDB website from the menubar. You can use their site as usual, but after every mentioned movie title you'll find a little <code>+</code> button. By pressing this button you can add this movie to your VideoDB. This feature is very useful to fill your <a href="browse.html#wishlist">wishlist</a>.</p>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,62 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<!-- begin content -->
<h1>VideoDB Online Manual</h1>
<h2>Table of Contents</h2>
<ul>
<li>Installation</li>
<ul>
<li><a href="installation.html#requirements">Requirements</a></li>
<li><a href="installation.html#firsttime">First time installation</a></li>
<li><a href="installation.html#update">Update from a previous version</a></li>
</ul>
<li>Usage</li>
<ul>
<li><a href="browse.html">Browsing the Database</a></li>
<li><a href="detailview.html">The Detail View</a></li>
<li>The Edit Screen</li>
<li>The Borrow Manager</li>
<li><a href="imdbbrowser.html">The IMDB Browser</a></li>
<li><a href="search.html">Searching the Database</a></li>
<li><a href="configview.html">The Configuration Screen</a></li>
<li>Viewing Database statistics</li>
<li><a href="multiuser.html">Multiuser Options</a></li>
<li><a href="profile.html">User Profile</a></li>
<li><a href="usermanager.html">User Management</a></li>
<li><a href="keys.html">Access Keys</a></li>
<li><a href="faq.html">Frequently Asked Questions</a></li>
</ul>
<li>Additional Scripts</li>
<ul>
<li><a href="contrib.html#mklist">mklist.pl</a></li>
<li><a href="contrib.html#setgenre">setGenre.pl</a></li>
<li><a href="contrib.html#videoadd">videoadd.pl</a></li>
<li><a href="contrib.html#direxport">direxport.pl</a></li>
<li><a href="contrib.html#langcheck">langcheck.php</a></li>
</ul>
<li>Development</li>
<ul>
<li><a href="devel.html#res">Developer Ressources</a></li>
<li><a href="devel.html#guide">Coding Guidelines</a></li>
<li><a href="translate.html">Languages</a></li>
<li><a href="stylesheets.html">Stylesheets</a></li>
<li><a href="templates.html">Templates</a></li>
</ul>
</ul>
<table><tr><td>
<b>Your Help is needed!</b><br />
<p>This manual is far from complete. Please help completing it by contributing to the documentation Wiki at
<a href="http://www.splitbrain.org/dokuwiki/vdb:videodb">http://www.splitbrain.org/dokuwiki/vdb:videodb</a>. Just visit the site and contribute.</p>
<p>The videoDB development team can be reached at <a href="mailto:videodb-devel@lists.sourceforge.net">videodb-devel@lists.sourceforge.net</a>
</p>
</td></tr></table>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,65 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Installation</h1>
<p>The examples in this document assumes you're using Linux and Apache. The Apaches document root is in <code>/var/www</code> and VideoDB is to be installed in <code>/var/www/videodb</code>. But it shouldn't be difficult for you to follow the steps with any other environment.</p>
<a name="requirements"></a>
<h2>Requirements</h2>
<p>VideoDB works with the typical LAMP and WAMP environments. Here are the requirements in detail:</p>
<ul>
<li>A Webserver wich supports PHP (<a href="http://httpd.apache.org" target="_blank">Apache</a> recommended)</li>
<li>A recent version of <a href="http://www.php.net" target="_blank">PHP 4</a>, at least 4.1.0 is required</li>
<li>A <a href="http://www.mysql.com" target="_blank">MySQL</a> Database</li>
<li>A WebBrowser (something new is probably better)</li>
</ul>
<a name="firsttime"></a>
<h2>First time installation</h2>
<p>Unzip the tarball into a directory below your webserver document root and make the cache directories writable.</p>
<p>Example:</p>
<pre>
$> cd /var/www
$> tar -xzvf ~/videodb-*.tgz
$> chmod 777 videodb/cache/*
</pre>
<p>Then create a new database using the <code>install.sql</code> file in the <code>install</code> directory</p>
<p>Example:</p>
<pre>
$> mysqladmin -p create videodb
$> mysql -p videodb < /var/www/videodb/install/install.sql
</pre>
<p>Now edit the <code>config.inc.php</code> file to match your database settings.</p>
<p>Thats it. Now point your webbrowser to your new videodb and add some movies</p>
<a name="update"></a>
<h2>Update from a previous version</h2>
<p>For updating from a previous version just delete all files but the cache directory and keep your database. Then unzip the new tarball as described <a href="installation.html#firsttime">above</a>. Then apply the <code>upgrade.sql</code> to your database using the the <code>-f</code> parameter to ignore errors.</p>
<p>Example:</p>
<pre>
$> mysql -p -f videodb < /var/www/videodb/install/upgrade.sql
</pre>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,31 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Usage</h1>
<h2>Access Keys</h2>
<p>The default template implements the use of access keys to speed up accessing certain parts
of VideoDB. Here is a list of currently assigned Keys.</p>
<table>
<tr><th>Key</th><th></th></tr>
<tr><td><code>Alt+i</code></td><td>Brings you back to the <b>i</b>ndex page</td></tr>
<tr><td><code>Alt+f</code></td><td>Opens the search page to <b>f</b>ind a movie</td></tr>
<tr><td><code>Alt+n</code></td><td>This creates a <b>n</b>ew entry in the database</td></tr>
<tr><td><code>Alt+e</code></td><td>Using this combination you can <b>e</b>dit the current movie</td></tr>
<tr><td><code>Alt+b</code></td><td>This opens the <b>b</b>orrowmanager</td></tr>
<tr><td><code>Alt+h</code></td><td>Opens the <b>h</b>elp with the user manual</td></tr>
<tr><td><code>Alt+l</code></td><td>Use this for <b>l</b>logging in or out</td></tr>
<tr><td><code>Alt+s</code></td><td>Pressing this key lets you <b>s</b>ave entered formdata</td></tr>
</table>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,30 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Usage</h1>
<h2>Multiuser Options</h2>
<p>VideoDB can work with multiple user as an option. To enable this go to the <a href="configview.html">Configuration Screen</a> and check the <code>Multiuser Support</code> checkbox.</p>
<h3>Logging in</h3>
<p>When the Multiusermode is enabled a new menu item <code>Login</code> appears. Use your Username and Password to login. You must have cookies enabled or it won't work!! When you check the <code>stay logged in</code> checkbox the cookie will not expire after the actual browser session.</p>
<p>On database creation an initial user with administration rights is created: Username: <code>admin</code> Password: <code>admin</code></p>
<h3>Add and modify users</h3>
<p>Follow the link <code>Usermanagement</code> from the <a href="configview.html">Configuration Screen</a>.</p>
<p>Be sure to change the password of the <code>admin</code> user!</p>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,18 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Usage</h1>
<h2>User Profile</h2>
<b>needs to be written</b>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,29 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Usage</h1>
<h2>Searching the Database</h2>
<p>The search screen allows you to search for one or more movies that match your criteria.</p>
<p>The simplest thing is to search for one or more keywords. Just put into the textfield and hit <code>Search</code>. The search is caseinsensitive and matches word parts, too. To search phrases you can enclose them in quotes <code>"</code>.<p>
<p>Examples:<br />
<code>wood</code> matches <code>Ed Wood</code> as well as <code>Clint Eastwood</code><br />
<code>"Ed wood"</code> only matches <code>Ed Wood</code> but <code>Ed Wood</code> matches <code>Eddy got lost in Sherwood Forest.</code>, too<br />
</p>
<p>To refine your search you can use the boolean operators <code>AND</code>, <code>OR</code> and <code>NOT</code></p>
<p>You can restrict your search to some genres by selecting the wanted genres and to some database fields by selecting them in the selectbox. To select multiple fields hold the <code>Ctrl</code>-Key while selecting.</p>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,19 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Development</h1>
<h2>Stylesheets</h2>
<p>Instead of designing a whole new <a href="templates.html">Template</a> you can add new Stylesheets to existing templates. Just copy an exisisting stylesheet to a new name and adjust it to your match your ideas. All <code>.css</code> files become automatically available in the <a href="configview.html">Configuration Screen</a>.</p>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,142 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Development</h1>
<h2>Templates</h2>
<h3>General</h3>
<p>VideoDB uses the <a href="http://smarty.php.net" target="_blank">Smarty Template engine</a>. Thus everybody interested in writing his own templates should have a look at the <a href="http://smarty.php.net/docs.php" target="_blank">Smarty Documentation</a></p>
<p>What follows is a list of all templates used by VideoDB and the variables assigned to them. Of course you can split your templates by using Smarty's <code>{include}</code> statement.</p>
<h3>All Templates</h3>
<p>The following variables are available in all templates:</p>
<table cellspacing="4" cellpadding="4">
<tr>
<th valign="top" nowrap="nowrap">name</th>
<th valign="top" nowrap="nowrap">type</th>
<th valign="top">description</th>
</tr>
<tr>
<td valign="top" nowrap="nowrap">$lang</td>
<td valign="top" nowrap="nowrap">associative array</td>
<td valign="top">Contains all language specific strings for the current language. Have a look at the files in the <code>language</code> directory for available keys.</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap">$config</td>
<td valign="top" nowrap="nowrap">associative array</td>
<td valign="top">All config options as set in the <a href="configview.html">Configuration Screen</a></td>
</tr>
</table>
<h3>header.tpl</h3>
<p>This template is included at the top of every page and should set up the needed HTML headers and include the stylesheet</P>
<table cellspacing="4" cellpadding="4">
<tr>
<th valign="top" nowrap="nowrap">name</th>
<th valign="top" nowrap="nowrap">type</th>
<th valign="top">description</th>
</tr>
<tr>
<td valign="top" nowrap="nowrap">$header</td>
<td valign="top" nowrap="nowrap">associative array</td>
<td valign="top">Contains the URLs for the top navigation. The available keys are: <code>browse, random, search, stats, new, setup, edit, view, del, borrow, imdbBrowser, help</code>. You should check if the key is empty and only display a link when an URL was given.</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap">$style</td>
<td valign="top" nowrap="nowrap">string</td>
<td valign="top">Deprecated - use <code>$config.style</code> instead.</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap">$langcode</td>
<td valign="top" nowrap="nowrap">string</td>
<td valign="top">Deprecated - use <code>$config.language</code> instead.</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap">$localnet</td>
<td valign="top" nowrap="nowrap">boolean</td>
<td valign="top">True if VideoDB is accessed from the localnet else false.</td>
</tr>
</table>
<h3>footer.tpl</h3>
<p>The footer is included at the bottom of every page</p>
<h3>filter.tpl</h3>
<p>This template displays the row of available filters in the browsing view.</p>
<table cellspacing="4" cellpadding="4">
<tr>
<th valign="top" nowrap="nowrap">name</th>
<th valign="top" nowrap="nowrap">type</th>
<th valign="top">description</th>
</tr>
<tr>
<td valign="top" nowrap="nowrap">$filters</td>
<td valign="top" nowrap="nowrap">associative array</td>
<td valign="top">Contains all available filters as keys and their Names (translations) as values</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap">$filter</td>
<td valign="top" nowrap="nowrap">string</td>
<td valign="top">The currently selected filter in the browsing view</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap">$showtv</td>
<td valign="top" nowrap="nowrap">boolean</td>
<td valign="top">True if TV-Episodes are to be shown else false.</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap">$listcolumns</td>
<td valign="top" nowrap="nowrap">integer</td>
<td valign="top">This is currently only used in the modern template and determines how many columns are to be used in the browsing view.</td>
</tr>
</table>
<h3>browse.tpl</h3>
<table cellspacing="4" cellpadding="4">
<tr>
<th valign="top" nowrap="nowrap">name</th>
<th valign="top" nowrap="nowrap">type</th>
<th valign="top">description</th>
</tr>
<tr>
<td valign="top" nowrap="nowrap">$</td>
<td valign="top" nowrap="nowrap"></td>
<td valign="top"></td>
</tr>
</table>
<p>Needs to be continued...</p>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,30 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Development</h1>
<h2>Languages</h2>
<p>VideoDB already comes with a lot of languages, but if your's isn't supported why don't you become a translator?</p>
<p>The first thing you should do is to join the <a href="http://lists.sourceforge.net/mailman/listinfo/videodb-devel" target="_blank">Developer Mailinglist</a> at SourceForge to stay informed when new language strings are added.</p>
<p>To create a new language file just copy the <code>en.php</code> file in the <code>language</code> directory and translate the all the contained strings to your language. I think you'll get the system when you have a look at it ;-).<br />
However pay attention to the <code>$lang[encoding]</code> field. This contains the character encoding you used in the file. You may use another encoding than <code>iso-8859-1</code>. See the <code>bg.php</code> as an example.<br />
You should adjust the the header at the top of the file to reflect your authorship, too. ;-). When updating or correcting a file of someone else just add another <code>@author</code> line with your name.</p>
<p>After translation you should send the file to the mailing list to be included in the next release.</p>
<p>Sometimes translations get slightly behind the english version. Missing translations will are always replaced by the english strings.</p>
<p>Hint: The <a href="contrib.html#langcheck">langcheck.php</a> tool can be very helpful to see a list of missing translations</p>
<!-- end content -->
</body>
</html>

View File

@@ -0,0 +1,37 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>VideoDB - Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<a href="index.html">Table of Contents</a>
<!-- begin content -->
<h1>Usage</h1>
<h2>Usermanagement</h2>
<p>In the usermanagement Screen you can add, delete and modify users for multiuser mode.</p>
<table>
<tr>
<td>Modify own movies</td>
<td>Users with this flag may add, delete and change their own movies. However they can not change movies of other users.</td>
</tr>
<tr>
<td>Modify others movies</td>
<td>Users with this flag may change details of movies belonging to other users, too.</td>
</tr>
<tr>
<td>Administration</td>
<td>Users with this flag may do everything. Setting this implies all other flags.</td>
</tr>
<tr>
<td>See adult movies</td>
<td>You can define movie genres which are not suitable for minors and should be hidden from all users which do not have this permission flag set.</td>
</tr>
</table>
<!-- end content -->
</body>
</html>