14. TODO

14.1. General topics

14.1.1. HTML - CSS

Table 14.1 HTML - CSS topics to be addressed.
  TOPIC STATUS
1 Consistency mobile menu  
a Removed menu items are still visible in the mobile menu. Reason is that menu items are removed in the $(document).ready(function(){}) part of the head section meaning that the mobile menu is already constructed. To avoid this the menu item must be removed in the body part of the HTML document.  
b When selecting menu item, the selected item must persist.  
2 New problem: when mobile device is rotated, thumbnails are still shown.  
3 Back button in “fiets” pages. SOLVED
4 Caption to image (L1) + story information. Story information should be visible when the window size is large enough. For smaller windows and mobile devices, the story information should be shown only as a pop-up window when requested. Solved Oct.29, 2015
a Put story information in modified “phpdefinition.txt”: change file format to XML file format. Solved Oct.25, 2015
b Hide story information when window size width is smaller than 768px. Solved Oct.25, 2015
c Display “Lees meer” button when window size width is smaller than 768px. Solved Oct.26, 2015
d Popup window with story information when “Lees meer” button is pressed. Solved Oct29, 2015
5 Add HTML-5 video to photo gallery. SOLVED
a When video plays, slide loop must pause. When video stops, slide loop must start again. Solved Jan 2016
b Look for “webm” and “mp4” video converter (is PHP topic). Solved Oct.31, 2015
c Change mouse pointer when presenting video media so that it becomes more evident that the user should click for starting video. Solved Feb.2016
6 Add context menu when clicking image:  drop down menu button is added at top right of window / page. Solved Nov.1, 2015
a Full screen display mode (how to go back?),  
b Stop or enable loop mode,  
c Show GPS map,  
d Add comment (private mode),  
e Adapt slide show speed.  

14.1.2. JAVASCRIPT / JQUERY - code

Table 14.2 JAVASCRIPT / JQUERY topics to be addressed.
  TOPIC STATUS
1 Consistency mobile menu  
a Removed menu items are still visible in the mobile menu. Reason is that menu items are removed in the $(document).ready(function(){}) part of the head section meaning that the mobile menu is already constructed. To avoid this the menu item must be removed in the body part of the HTML document.  
b When selecting menu item, the selected item must persist.  
2 In case of mobile device do not show the thumbnails. Using CSS media query: “only screen and (max-width: 479px)”. Solved Sep.16, 2015
3 Adaptable slide speed:  
a Accessible from context menu  
b To be selected from a limited number of options: 600ms, 800ms,1000ms,1500ms, 2000ms  
4 Size of button “previous page” must be responsive (also position). SOLVED
5 From public to private mode in “familie gallerij” and “familie vakantie“page generates error. When going to private mode, start at “familie” page because the number of images must be recalculated. File “pages.txt” modified (fourth entry in sitepage 7 and 8 modified). SOLVED
6 Gallery thumb overview: 12 thumbs are shown. 11 thumbs are shown completely. First and last thumb are only half visible. 🡺 Shift thumbs depending on the number of thumbs.  
7 For admin user: additional menu options  
a Menu option for user administration form: change group, change time limit access, delete user, etcetera, … Solved Oct.19, 2015
b Menu option for “Add user form”. Solved Oct.19, 2015
c These additional menu options must be disabled for other users than admin user. Solved Oct.20, 2015
8 Caption to images (L2):  
a Captions are optional to pictures. If no caption is specified  disable caption area.  
b For mobile devices: show no captions.  
c Ideal would be to have the thumbnails in 2 columns: one at each side of the image. Unfortunately, I do not know if this is possible with JSSOR. Cannot be solved.  
d Move image counter in second type of image slider (all pictures of a holiday in one directory) to the title bar so that caption area becomes available for “real” captions. Image counter will always be visible: also for mobile devices. Solved Oct.21, 2015
e Remove image counter from caption area. Solved Oct.21, 2015
9 For some pages there must be no distinction between public and private modes. Too complicated.  
10 Number of media files in directory overview is not correct: SOLVED
a Show both number of images and number videos. Solved Mar.5, 2016
b Number of videos is not equal to the number of video files. The correct number media files is given in the XML overview file. Solved Mar., 2016
11 For normal user: dialog box 🡺 log on as admin user when updating is needed. Solved Apr.20, 2016
a Give option for showing status window 🡺 VEX with 3 buttons.  
12 Minimize the use of the construct var name=’<?php echo $uname;?>’; –> Use AJAX construct, but take into account it is asynchronous. Open: Jan 9, 2021
13 For admin user: show phpinfo in new window. Solved: Jan 19, 2021

14.1.3. PHP - code

Table 14.3 PHP topics to be addressed.
  TOPIC STATUS
1 Private mode on VERSIO host (PHP version on site: 5.3.29). PHP version on VERSIO server has been upgraded june 2015. SOLVED
2 User administration form  
a Register new user, SOLVED
b General initialization of site: Test existence of tmp directory in the web’s root directory  
c Setup of MYSQL database  
3 When processing images (in resizing process) also extract GPS and date taken info (date is already written to information file) 🡺 write it to information file. The file “iminfo.txt” in each directory would be a good candidate (and only one) for storing this info. Solved Oct.23, 2015
4 Change “iminfo.txt” file to XML format. XML is much more flexible (easy to extend: e.g. for adding figure captions), easier to process by PHP (standard procedures already available). The problem with adding figure captions to “iminfo.xml” file is that this file is automatically generated so that the caption info must also be stored somewhere else. SOLVED
5 What is purpose of variable ‘$finalState’ in function StatusInfoWindow (myFunction.php)?  
6 Get info about operating system of host provider: PHP_OS. Reason to know: for automatically generating video thumbs an executable program is needed. This different for Linux, Window, OS based service provider (the executable program is probably not provided by the ISP). It is tested on my local host, which is Window based system. (See item 14)  
7 Web-based filemanager (only available for admin user):  
a In modal dialog box, or new window? New window. Solved Mar. 1, 2016
b Account menu (when logged on), cursor should change when hovering menu item. Solved Feb.29, 2016
c Disable delete files. Solved Mar. 1, 2016
d Only media directories should be accessible. Solved Mar. 2, 2016
e

Minimize layout: do not show

  • txt-files,
  • xml files
 
f Disable Download option: in file “dialog.php”: line 917 has been commented. Solved Mar. 3, 2016
g Thumb images should not be shown in filemanager. Code in “dialog.php” modified: lines 780 🡺 781. Solved Mar. 7, 2016
8 When user is logged on (not admin user) 🡺 switch to admin user when updating is needed. Solved May 10, 2016
9 System error codes: see section 12.3 (????).  
10 Update iminfo.xml from IMINFO.TXT  
a Include media entry if Transferred2SiteDir status is 0 (= TRANSFERNONE)  
11 Update iminfo.xml from iminfo.xml  
a What is the reference content?  
12 Media on different host. Not needed anymore: unlimited web space on A2 Hosting provider. Solved Oct. 7, 2016
13 Media Processing Status dialog box:  
a Show correct server IP address (instead of 127.0.0.1) Solved Sep. 5, 2016
14 Show PHP version used by web server: only when admin user is logged on (account 🡺 Admin tools). Solved Oct. 7, 2016
15 PHP - MYSQL  
a updateLogfile($id,$em_C) 🡺 updateLogfile($id,$em_C, $SqlConnObj), where $SqlConnObj is a stdClass object Solved Aug.27, 2020
b updateLogDatabaseTable($id,$em_C,$ip) 🡺 updateLogDatabaseTable($id,$em_C, $SqlConnObj, $ip) Solved Aug.27, 2020
c Remove public member $conn from emailContent class Solved Aug.27, 2020
d Change second input argument of CreateEmailContainer() from new mysqli object to interface object as defined in Section 12.8.2.1 Solved Aug.27, 2020
e Change output parameters of CreateEmailContainer(): from array with 2 elements to a single output parameter (MyPHPMailer class object). Change function calls CreateEmailContainer() so that #input parameters is consistent. Solved Aug.31, 2020
16 Function PageVisitNotification  
a Output arguments are not used: array($nlines,(002),$msg); by calling functions. 🡺 remove from output arguments Solved Sep. 2, 2020
17 Check file prepareDirOverviewGalleryAjax.php: ALL_MEDIA_PROCESSING and imageresizeprogress.php. Open: Jan.19, 2021
  1. Main media container (“dialog.php”); <ul id=”main-item-container” class=”grid cs-style-2 list-view1”> It does not yet contain video mediafiles. See lines Foreach at line 780, 877,

14.2. Security topics

Table 14.4 Security topics to be addressed.
  TOPIC STATUS
1 For security reasons, retrieve e-mail data from MYSQL database instead of hard coded PHP.  
a Create isp (internet service provider) database with webserver table in MYSQL with server data. Solved Jan. 2, 2018
b Use of local php function to implement new isp entry in webserver table 🡺 Call PHP file register_isp.php located in the locale directory of document directory. To add a new isp: add a call to the function install_isp(hostname, root, root password , email, SMTPSecure protocol, port, sql_link). Solved Jan. 3, 2018
c The password in the webserver table must be encrypted such that it can be decrypted. This different from the login members database table (in this table the passwords are encrypted but cannot be decrypted.) Solved Jan. 4, 2018
2 Generate e-mail when admin user is logged on. Solved Apr.23, 2016
3 Additional log file (webpage_visits.log in log directory) where each line represents a visit to photo album web page. Each line has the following info: Solved Aug.25, 2016
a Date, Solved Aug.25, 2016
b IP-address (store IP-address in server or session variable) Solved Aug.25, 2016
c Photo album directory Solved Aug.25, 2016
4 Send notification e-mail when photo album web pages have been visited N times. E-mail contains the last N lines of “webpage_visits.log” file. Solved Aug.25, 2016
5 Limit idle time to finite (e.g. 10minutes) when logged on 🡺 log off automatically after 10 minutes (time interval to be set). Implemented with JQUERY plugin “jquery-idleTimeout-plus”. Solved Dec.31, 2017
6 After idle timeout session variables w.r.t. login are not cleared (e.g. $_SESSION[‘sess_username’], …) and return webpage – URL is not complete (i.e. parameters are not specified resulting in non-functional webpage). At the client-side URL parameters (including the “?”) are retrieved with the JAVASCRIPT command window.location.search.  
7 Session variables not cleared after timeout.  
8 After login 2 different session id numbers are seen:  
a Session ID in e-mail and ID in session file (xampp/tmp/sess_xxxx.txt) file are the same. 🡺 When is this sess_xxxx file generated? All public files with a php extension, have a php section ahead of the html tag (html extension files with the same php header section will have ignored this php section). This php section in public webpages have a call to the function sec_session_start(). This function generates an empty sess_xxxx file.  
b Session ID seen in the private version of the webpage (written to file session_data.txt in the document root directory) and xxxx are equal. However, the session ID’s in a) and b) are different.  
Reason why there are 2 session id seen is that the call to sec_session_start() invokes the function session_regenerate_id(), for increased security.  
9 With a cleared internet history (also all cookies have been deleted), automatic log-off by the idle timer plugin leads to the following observations:  
a IE11: Undefined index: sess_username in logout.php line 5, and the session tmp file is not emptied (session is NOT reset). After the first time, cookies are stored, and the session tmp file is emptied after log-off by idle timer.  
b Chrome: session tmp file is not emptied after log-off by idle timer. After the first time, cookies are stored, and the session tmp file is emptied after log-off by idle timer.  
c Firefox:  
10 Make differentiation between admin user and regular user and guest/anonymous user  

14.3. Manual source code

  TOPIC STATUS
1 Chapter 5 prepareDirOverviewGallery.php: interface definition, source code  
a RProc_FProc_Status_X00FF0() Solved Sep.14, 2020
b StatusInfoWindow() Solved Sep.14, 2020
c StatusInfoNewOrDeletedMedia() Solved Sep.14, 2020
d StatusInfoDirectoryAccessDates() Solved Sep.14, 2020
2 Chapter 4 process_flow.txt: rearrange paragraphs  
a Move section “Updating process: what needs to be updated?” after section “Album file structure” Solved Sep.14, 2020
b Move section “Process flow: GUI” after section “Automatic code generation” Solved Sep.14, 2020
c Reshuffle and move sections into “Process flow of generating a gallery” (renaming of “Process flow: GUI”) Solved Sep.14, 2020
d Move section “Action/status codes: 0xFFFFFF” into section “Process flow of generating a gallery” Solved Sep.14, 2020
e Move sections “Processing approach based on IMINFO.TXT file” and “Processing approach based on IMINFO.XML file” into section “Process flow of generating a gallery”. Solved Sep.14, 2020
3 White-space in code listings are default too long. This is determined by the CSS property “tab-size”, which has a default value of 8. “tab-size” has been set to 4 (see /manual/Sphinx/source/_static/myStyle.css ). (see also https://css-tricks.com/almanac/properties/t/tab-size/ ) Solved Oct. 3, 2020
4 Description and purpose of file pages.txt Solved Dec.28, 2020
5 Link to benoy website, accessible from each page in the manual.