Photo Organizer

This is the bug tracker for Photo Organizer.

ID  desc Task Type Severity Category Summary Status Reported In
 583 Bug ReportLowBackend / Core Missing equals sign to set font=red for unwriteable ima ...Closed2.37 Task Description

install.php, line 887

print "<h4><font color\"red\">The image repository '$image_repository_path' is not present or not writable by webserver.  Please ensure the <i>\$image_repository_path</i> setting points to a valid directory.</font></h4>\n";

Should be font color=\"red\"


 527 Feature RequestLowBackend / Core Support direct printing of images ClosedDevel6 Task Description

We could support direct printing via a *system* printer:

* query system printers
* query supported media sizes & resolutions
* automatically scale/crop as needed? (and handle portrait/landscape automatically)
* submit job via CUPS (or directly to printer backend?)

What I'd like to see in particular is a "print contents of spool" and have the printer spit out a pile of photos.

 503 Bug ReportMediumImport Importing images fails / Images are not being processed ClosedDevel4 Task Description

Dear Developers,

I am very impressed with "Photo Organizer" but I am having importing pictures. I am running openSUSE 12.3 and installed it on my "localhost".

When importing images (I just tried uploading using the browser - Firefox 24 - so far) I get the following errors in my Apache-Log files:

[Fri Oct 11 15:22:30 2013] [error] [client] PHP Warning: readlink(): Datei oder Verzeichnis nicht gefunden in /srv/www/htdocs/po/include/import.php on line 70, referer: http://localhost/po/photo.add.php?folder=4
[Fri Oct 11 15:22:32 2013] [error] [client] PHP Fatal error: Call to undefined function mb_detect_encoding() in /srv/www/htdocs/po/include/import.php on line 28, referer: http://localhost/po/photo.add.php?folder=4

Could you point me in the right direction?



 466 Bug ReportCriticalBackend / Core Original photos deleted without adding to database on d ...Closed2.371 Task Description


I'm having a problem with writing to my database, but reads are fine. I am adding images from a local directory. I am using PO 2.36.1.

When I try to add images, I get red text telling me that the transferring the metadata failed and that PO failed to update the database. Unfortunately, PO still goes ahead with "cleaning up the mess".

Luckily I still have a backup of my photos, but this part of the process could probably use some extra checks and an abort before deleting the files.

Thank you,


 465 Bug ReportLowRendering CSS flaw?? Closed2.376 Task Description

Hi Solomon

I put a screenshot. Did you ever notice that? Have it in Firefox and Chromium Browser. Didn't check others. Guess, there has to be a CSS setting to be adjusted.

464Feature RequestLowBackend / CoreAdd support for "adult" filtersNew2.371 Task Description

Users would ahve to explicitly enable "adult" content in order for that to show up in searches, rss feeds, etc etc.

Need to work through use cases of this more carefully.

 450 Bug ReportMediumUser Interface wrong real name display in "I am a client of the follow ...Closed2.371 Task Description

Assume, I am a client "adent" subscribed to one user "fprefect".
When viewing "My Folder", i.e. user.php?user=adent,
at the bottom it says:

I am a client of the following users
User status registration date
Dent, Arthur Accepted May 9, 2011

As far as I understand the source, this is because the function "display_protected_photographers" gets its information from the db view "view_client", which contains real name data from the client of that client-relation; instead of the user of the client relation. This is because in the where clause of "view_client" it says "client.client = users.identifier".

This problem did no arise in 2.35, where "display_protected_photographers" used the db view "view_users_subscribed_to", that does nearly the same as the new "view_client" but stated "client.users = users.identifier".


 449 Bug ReportHighUser Interface PHP can no longer find site_navigator() Closed2.372 Task Description


I have been running my PO site using the hostmonster hosting service for over a year now and all of the sudden it doesn't work. I have tracked it down to PHP not being able to find the site_navigator() function. I am using the aqua theme and I have found the function in the theme.php file. I cannot find where the theme.php file is included.

I have control over the php.ini file for my virtual sever. Can you think of any settings that may cause this problem?

I have already turned off "display_errors".

Thank you,


 448 Bug ReportLowBackend / Core How to specify socket at installation if more than one  ...Closed2.372 Task Description

Hi all!

What a nice project! I am very eager to get this up and running. I am trying to set up the current version of Photo Organizer on my Synology NAS and had to install a separate ipkg version of postgres to be able to do "createlang" at the installation step (the "native" version seems to lack some things).

I now have two postgres instances running, the native one on port 5432 and socket /tmp/.s.PGSQL.5432 and the new one on port 5433 and socket /tmp/.s.PGSQL.5433. I can connect to both at the same time on the CLI and with phpPgAdmin using either the socket or, but not at all with Photo Organizer. I get this error:

"Database connection failed; Are credentials valid?"

My "config_site.php" has:

$db_dsn = "host= port=5433 dbname=po_db user=po_user password=passwordgoeshere";

I have tried without the host and port specifications and with my postgres user as well. My "pg_hba.conf" is set to prompt for "password" for all connections.

Is there a problem in the code with regards to multiple sockets on a single machine? How can I move forward?

 447 Bug ReportLowTranslations Chinese translation Closed2.37 Task Description

Thanks for this great project. Attached are the Traditional Chinese translation and Simplified Chinese translation, please kindly add them to your next release.


446Bug ReportLowBackend / Corelocation search always return nothing in Advanced Searc...Unconfirmed2.37 Task Description

Only location in advanced text is not work, others works fine.

I can't find the meaning of ||| by google. But I change ||| to || in file search.text.advanced.php at line 172

$sql_search_string['location'] = build_sql_search_string($keywords['location'], "(||||view_location.state||");

and change view_location all columns NULL value (if any) to '' by sql command, then it seems work.

Here is the sql command to change view_location

create view view_location as
select location.identifier,,,
COALESCE ( (select value from state where state.identifier=location.state), '' ) as state,
(select value from country where as country,
users, last_modified_date,
latitude, longitude, private
from location;

 445 Bug ReportLowBackend / Core Modification for utf8 Closed2.371 Task Description

Wrong encoding handling (result in garbage character displayed) in

1. If you import iptc(utf8) into PO (utf8).
I need to add '-charset IPTC=UTF8' to the exiftool command in include/import.php at line 149 to make it work

case 'IPTC' :
$exclude_args = "-iptc:all -charset IPTC=UTF8";

2. Incorrect charset in outgoing mail's headers due to the PHP function mail
I need to add function mail_utf8 and change every PHP mail function to mail_utf8 in include/mail.php

function mail_utf8($to, $subject, $message, $header) {
$header_ = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n";
mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header_ . $header);

then change every if (!mail($user_data['email'], $subject, $message, $headers))
to if (mail_utf8($user_data['email'], $subject, $message, $headers))

443Bug ReportLowBackend / CoreWrong user name displayedUnconfirmed2.37 Task Description

In tab My Folders or My Datebook, logged in user name displayed instead of owner user name under 'I am a client of the following users', nevertheless the link is correct. Here is my quick and dirty solution.

--- include/contacts.php.orig
+++ include/contacts.php
@@ -117,7 +117,8 @@
$owner = "";

- $all_subscribed_users = pg_query($database, " select identifier, users, last_name, first_name, date_of_creation, value from view_client where client='$my_user_id' and status!='4' $owner ");
+ $all_subscribed_users = pg_query($database, " select view_client.identifier, view_client.users, view_contact_info.last_name, view_contact_info.first_name, view_client.date_of_creation, view_client.value from view_client, view_contact_info where view_client.client='$my_user_id' and view_client.users=view_contact_info.identifier and status!='4' $owner ");
$num_of_subscribed_users = pg_num_rows($all_subscribed_users);

if ($num_of_subscribed_users) {

442Feature RequestLowUser InterfaceUI EnhancementsAssigned2.371 Task Description

This will be a placeholder for the various ideas I have for reworking parts or all of PO's UI. Ideas that are fleshed out can be moved into their own tickets for actual implementation.

* AJAX-ish tabs on the photo page
- instead of a separate page reload for each tab, load all tab info at once and let the UI manage paging.
* Client-side sorting of all tabular data
- eg folder/album listings
* Dynamic client-side pagination of the slide view
- "dump" all slides at once, and let client-side manage their pagination?
- Probably can't sort this way though
* Lightbox-esque view of photos
- Intended for guest access, hiding details of photos.
- Slideshow capabilities
- Easy navigation (eg using left/right arrows)
* Replace ad-hoc toolbars with more coherent ones
* Replace hackish button/checkbox theming script with something saner.
* Replace wz_tooltips and js_calendar with better integrated stuff.
* Modal login/password form
- pops up on top of current page
- Can force current page to reload afterwards
- What to do about 401/403 errors?
* Replace all "confirmation" pages with modal dialogs.

I'm leaning towards Query and jQueryUI for actual implementations.

Initial implementation will probably require current themes to be taken out back and shot.

 441 Feature RequestLowBackend / Core Create a WebDAV view into the repository. Closed2.371 Task Description


/user/ --> list of usernames.
/folders/ --> list of [toplevel] folders
/albums/ --> list of [toplevel] albums
/photos/ --> list of photos in folder/album
/folders/ --> list of ALL [toplevel] folders.
/albums/ --> list of ALL [toplevel] albums.
/photos/ --> list of ALL photos. (???? -- do we want to enable listing this here?)



Something like that?

440Bug ReportMediumBackend / CorePossible to set an album/folder's parent to itself.New2.37 Task Description

We need to enforce that rule to prevent the DB from going nuts.

Either via SQL:

1) Trigger to test that parent != id
2) the (folders|albums)_and_sub(folders|albums) function needs to abort if it sees it

or in PHP:

3) Test the values in the php pages [[ (album|folder).(add|edit).2.php ]] and kick back an error.

I don't think there's another way to mangle things.

This can result in a DoS.

 439 Bug ReportHighBackend / Core photos not shown after update  Closed2.379 Task Description


after update from 2.36 to 2.37 photos are not visible anymore.
The first try of update failed with an error at "DROP OPERATOR ||| (character varying, character varying)". Verifying the staetment on the command line show operator does not exist. After commenting out this line the update was succesfull (no error messages).
No errors are shown postgres or webserver log.

Different behaviour, depended if logged or not:
not logged in: only numbers of photos shown
logged in: after click on number a three available sizes are shown, click on one of them give : "Warning: ini_set() [ref.outcontrol]: Cannot change zlib.output_compression - headers already sent in /home/www/ on line 59" whcih is confusing - zlib is available and compress_pages is off

regards, Gerd

 438 Bug ReportLowUser Interface Blank pages in UI. Closed2.361 Task Description

When accessing a password protected folder, a page
with the following URL comes up:


When I enter the correct password, I'm taken to this:


which is a blank page!

A similar thing happens when accepting a client.

You'd think other people would see this and report
it. Local installation problem?

 437 Bug ReportLowUser Interface Resource password input control not behave like a passw ...Closed2.361 Task Description

When accessing a protected folder, the user is prompted with a password input which shows the input (does not cover it with black dots). Moreover, auto-completion is not disabled on this input field. When the user goes back to that screen, he can type the first character of the password and a completion comes up.

 436 Bug ReportLowBackend / Core Permission model not working for me. Closed2.365 Task Description

Maybe I am doing something wrong.

In addition to "admin", I have two users in my system, call them Bob and Alice.

Bob has registered Alice as his client.

Likewise, Alice has registered Bob as her client.

Both Alice and Bob have folders which are marked Protected, and in which all images are likewise marked Protected.

Yet, Alice and Bob cannot see each other's pictures and folders at all. Each can only search for his own pictures and folders.

Correctly, an anonymous guest cannot see anything.

Correctly, if either Alice or Bob switch a picture to Public, then everyone can see it, including the anonymous guest.

Correctly, the administrator account sees everything.

Just this Protected access is not doing what I think it should.

 435 Bug ReportHighBackend / Core Security problem: world readable files in /tmp (and may ...Closed2.363 Task Description

I've noticed that in various situations, Photo Organizer creates files in /tmp.
These have loose permissions due to an inadequate umask.

What's the point of Alice making her pictures private, so that Bob can't
see them, if Bob has a shell account on the box and can see Alice's
data as it passes through /tmp?

My /var/lib/photoorganizer-data directory behaves the same way.
Everything under that is rwxr-xr-x or rwxr--r--.

The data is correctly owned by the apache user account (www-data
in my installation) but files should should be rw-------,
and directories and rwx------.

Is this something that can be done globally with PHP or some Apache2
umask setting?

 434 Feature RequestLowBackend / Core Alternative authentication desired. Closed2.362 Task Description

It would be good to be able to disable the e-mail registration mechanism and use some other means of authentication. For instance, Linux passwords!

I don't want strange people going into my server, registering accounts and uploading pictures. Moreover, I don't want authorized users to have to go through a registration dance to obtain yet another password. This is one of the things many people hate about websites!!! Everyone and his dog wants you to register a user name and password, then validate it through e-mail (and this is one of the bad qualities of the online photo management companies we can avoid by running it ourelves).

I would like to be able to create an account for someone at the OS level, and then have that user name and password simply work in every application.

 433 Bug ReportLowImport New location always added even exist ClosedDevel3 Task Description

In v2.37rc2 if you leave STATE blank when importing.
I need to comment out line 52 in include/iptc.php to disable redundant STATE check.
line 52 ( and location.state = state.identifier )
Is it logical to set it default? For example, if you took some photos from Bangkok, you will file it with CITY Bangkok, COUNTRY Thailand and leave STATE blank, you even don't know what to fill in STATE as a tourist.

 432 Bug ReportLowImport Generic focal length stored instead of 35mm equivalent ClosedDevel1 Task Description

In v2.37rc2. Generic focal length stored instead of 35mm equivalent.
In my Panasonic camera, the exif string 'Scale Factor To 35mm Equivalent' should read as 'Scale Factor To 35 mm Equivalent', has a space between 35 and mm. Is it a typo? I need to change the string in file include/exif.php line 362 to make it work.

 431 Bug ReportLowBackend / Core MJPEG AVI files not supported Closed2.362 Task Description

Apparently only uncompressed AVIs are supported. This makes this feature rather worthless....

So, some sort of hack will be necessary to show a thumbnail etc for AVI files.

 430 Bug ReportHighJavascript BASE tag not working properly with Internet Exporer Closed2.36
 429 Bug ReportLowBackend / Core Admin force changing user password not working Closed2.36
 426 Bug ReportMediumUser Interface Cross Customer Relations Closed2.362
 425 Bug ReportLowBackend / Core Number of imported photos not shown ClosedDevel3
 424 Bug ReportLowBackend / Core embedded preview as master doesn't work ClosedDevel1
 423 Bug ReportLowBackend / Core Error importing photos ClosedDevel2
 422 Bug ReportLowBackend / Core Not possible to set the country ClosedDevel
 421 Bug ReportLowBackend / Core My Settings - Photobrowser not shown ClosedDevel
420Bug ReportLowUser InterfaceReally Minor Login Page ProbUnconfirmed2.362
 414 Feature RequestLowBackend / Core 'category' field in the photo is a mere three character ...Closed2.36
 413 Bug ReportLowImport empty folders are not deleted when using local bulk upl ...Closed2.362
 412 Bug ReportMediumDatabase Recursive redundancies make it impossible to restore an ...Closed2.367
411Feature RequestLowBackend / CoreOpenID supportNew2.361
 410 Bug ReportCriticalInstaller Password displayed instead of database during install w ...Closed2.36
 409 Bug ReportCriticalWeb site Demo/Test Site Delivers empty page after valid login ClosedDevel2
 408 Bug ReportLowWeb site Clients get an error when subscribing to a user Closed2.36
407Feature RequestLowBackend / CoreAdd a 'start/end date' to folder/albumsNew2.361
 406 Feature RequestMediumBackend / Core resource password storing Closed2.363
 405 Bug ReportHighUser Interface mail.php not included by subscription.add.php Closed2.36
 404 Bug ReportMediumUser Interface $user_display_string undefined in subscription.add.php Closed2.36
 403 Bug ReportMediumBackend / Core profile.del.2.php missing when deleting camera from pro ...ClosedDevel1
 402 Feature RequestLowBackend / Core Practical way to bypass e-mail portion of registration Closed2.362
 401 Bug ReportLowImport Exif.Photo.UserComment imported into Title field ClosedDevel1
 400 Feature RequestLowBackend / Core Shopping cart infrastructure/integration Closed2.36
 399 Feature RequestLowBackend / Core Create fake "FTP" server Closed2.363
Showing tasks 1 - 50 of 448 Page 1 of 9

Available keyboard shortcuts


Task Details

Task Editing