The use of CGI incites us to manage pictures, however – although it would be possible in principle to store images as blobs within the database – I have chosen to proceed differently, in order to keep unid bases not too big.
As of Unidatab-CGI version 1.1.1, images are stored in a dedicated directory within the HTTP server path and the mention of a word ending in .jpg or .gif makes the server check for the existence of an image of this type in there.
The path of the image directory can be set in Unidatab.cgi (variable $UNID_PIX) and defaults to http://localhost/devel/Unidatab/image/.
Again, users can define this way some kind of image policy of their own by specifying naming conventions. For instance, one could impose that images from one database should be differentiated by a prefix. The picture “saturn.jpg” would be renamed “test-saturn.jpg” in order to visualize clearly which content pertains to which db simply looking at the value of $UNID_PIX. However the Perl code doesn’t require anything like this, saturn.jpg is accepted as well as test-saturn.jpg.
The size of displayed image is limited by height to the value of $PicSize (120 px), and – as images may appear in titles too – the size of related thumbnails in lists is limited by $IcSize to 40 pixels. Both of these variables can be set in the user-defined values of Unidatab.cgi.
Here are screenshots of theses results:
If we look at the symbol id=-485, with unid-adm, the db input strings look like :
[1: /test.unid ] ? select show_symbol(-485) show_symbol(-485) ~ : i ~ a ~ d ~ n ~ t ~ u ~ -485 ~ 221 ~ 0 ~ 220 ~ 1541836361952 ~ 1537979864000 ~ location:test-milkyway.jpg https://en.wikipedia.org/wiki/Milky_Way (the Milky Way). ~ This test-saturn.jpg is Saturn. ~
The rough example above suggests some educational benefit one could expect from Unidatab.