public static function prepareData($item, $mysqli)
 {
     include_once getcwd() . '/scripts/data-helpers/elrh_db_extractor.php';
     // determine data according the item request
     if (empty($item)) {
         // if no item selected = show list of all articles
         $data["entries"] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT a.id AS aid, a.cat, a.posted, a.name AS article_name, a.dscr, g.id AS gid, g.name AS gallery_name, u.u_displayed_name AS author_name FROM elrh_articles a LEFT JOIN elrh_gallery_galleries g ON a.gallery=g.id JOIN elrh_users u ON a.author=u.u_name ORDER BY a.posted DESC");
         // notify content renderer, there will be only list of articles
         $data["single"] = false;
     } else {
         // still have to determine between article-id and admin operations
         if (is_numeric($item)) {
             // notify content renderer, there will be only one article
             $data["single"] = true;
             // try to find particular article
             $data["entry"] = ELRHDataExtractor::retrieveRow($mysqli, "SELECT a.id AS aid, a.author, a.cat, a.posted, a.name AS article_name, a.dscr, a.content, g.id AS gid, g.name AS gallery_name, (SELECT count(*) FROM elrh_gallery_images i WHERE i.gallery=g.id) AS images, u.u_displayed_name AS author_name FROM elrh_articles a LEFT JOIN elrh_gallery_galleries g ON a.gallery=g.id JOIN elrh_users u ON a.author=u.u_name WHERE a.id='" . mysqli_real_escape_string($mysqli, $item) . "'");
             if (!empty($data["entry"])) {
                 // page title adjustment
                 $data["item_title"] = ": " . $data["entry"]["article_name"];
                 // notify content renderer, that article exists
                 $data["exists"] = true;
             } else {
                 // notify content renderer, that article not found
                 $data["exists"] = false;
             }
         } else {
             // TODO admin operations
         }
     }
     // save prepared data for renderer
     return $data;
 }
 public static function prepareData($item, $mysqli)
 {
     // get all news
     include_once getcwd() . '/scripts/data-helpers/elrh_db_extractor.php';
     $data["news"] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT n.date, n.content, u.u_displayed_name AS author FROM elrh_news n JOIN elrh_users u ON n.author=u.u_name ORDER BY date DESC");
     // save prepared data for renderer
     return $data;
 }
 public static function prepareData($item, $mysqli)
 {
     // get stored contacts
     include_once getcwd() . '/scripts/data-helpers/elrh_db_extractor.php';
     $data["contacts"] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT contact, name, link FROM elrh_contacts");
     // save prepared data for renderer
     return $data;
 }
 public static function prepareData($item, $mysqli)
 {
     // get relevant interactive map entries
     include_once getcwd() . '/scripts/data-helpers/elrh_db_extractor.php';
     $data["interactives"] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT name, gallery, coord_x, coord_y, size FROM elrh_map");
     // save prepared data for renderer
     return $data;
 }
 public static function prepareData($item, $mysqli)
 {
     // get relevant books
     include_once getcwd() . '/scripts/data-helpers/elrh_db_extractor.php';
     // find all categories
     $data["books_cats"] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT id, name FROM elrh_books_cat ORDER BY ord");
     // find books for each category
     if (!empty($data["books_cats"])) {
         foreach ($data["books_cats"] as $cat) {
             $data["books"][$cat["name"]] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT name, writer, year, dscr, url, thumb, review, review_ext FROM elrh_books WHERE cat='" . $cat["id"] . "' ORDER BY ord");
         }
     }
     // save prepared data for renderer
     return $data;
 }
 public static function prepareData($item, $mysqli)
 {
     include_once getcwd() . '/scripts/admin-helpers/elrh_admin_resolver.php';
     // login-action
     // must be before "logged-in only" section
     if ($item == "login") {
         // tries to log user in (may success or fail)
         $data["admin_output"] = ELRHAdminResolver::loginAction($mysqli);
     }
     // other options only available for logged-in user
     if (isset($_SESSION["user"])) {
         // split request by "/" (there might be some extra data regarding image IDs
         $request = preg_split('~/~', $item);
         // determine action by request
         // excluding "login" action, that already resolved, and "select", that will be resolved later
         switch ($request[0]) {
             case "login":
             case "select_gallery":
             case "select_image":
                 // just to avoid falling into "invalid_request" branch
                 break;
             case "logout":
                 // pefrom logout for current user
                 $data["admin_output"] = ELRHAdminResolver::logoutAction();
                 break;
             case "edit_gallery":
                 // try to perform DB action (add/edit gallery)
                 $data["admin_output"] = ELRHAdminResolver::editGalleryAction($mysqli);
                 // predend "select gallery" action for loading gallery details later in "SELECT actions" block
                 if (!empty($_POST["gid"])) {
                     $request[0] = "load_gallery";
                     $_POST["item"] = $_POST["gid"];
                 }
                 break;
             case "delete_gallery":
                 // try to perform DB action (delete gallery)
                 $data["admin_output"] = ELRHAdminResolver::deleteGalleryAction($mysqli);
                 break;
             case "edit_image":
                 // try to perform DB action (add/edit image)
                 $data["admin_output"] = ELRHAdminResolver::editImageAction($mysqli);
                 // predend "select image" action for loading image details later in "SELECT actions" block
                 if (!empty($_POST["iid"])) {
                     $request[0] = "load_image";
                     $_POST["item"] = $_POST["iid"];
                 }
                 break;
             case "delete_image":
                 // try to perform DB action (delete image)
                 $data["admin_output"] = ELRHAdminResolver::deleteImageAction($mysqli);
                 // predend "select gallery" action for loading gallery details later in "SELECT actions" block
                 // (ID is set inside deleteImageAction method)
                 $request[0] = "load_gallery";
                 break;
             case "move_image":
                 // try to perform DB action (move image to other gallery)
                 $data["admin_output"] = ELRHAdminResolver::moveImageToGalleryAction($mysqli);
                 // predend "select image" action for loading image details later in "SELECT actions" block
                 if (!empty($_POST["iid"])) {
                     $request[0] = "load_image";
                     $_POST["item"] = $_POST["iid"];
                 }
                 break;
             case "move_forwards":
                 $data["admin_output"] = ELRHAdminResolver::moveImageForwardsAction($mysqli, $request[1]);
                 // predend "select image" action for loading image details later in "SELECT actions" block
                 if (!empty($request[1])) {
                     $request[0] = "load_image";
                     $_POST["item"] = $request[1];
                 }
                 break;
             case "move_backwards":
                 $data["admin_output"] = ELRHAdminResolver::moveImageBackwardsAction($mysqli, $request[1]);
                 // predend "select image" action for loading image details later in "SELECT actions" block
                 if (!empty($request[1])) {
                     $request[0] = "load_image";
                     $_POST["item"] = $request[1];
                 }
                 break;
             default:
                 if (!empty($item)) {
                     // requested action doesn't exist
                     $data["admin_output"] = "admin_invalid_request";
                 } else {
                     // no action requested
                     // (just some mock data to avoid errors later)
                     $data["null"] = "null";
                 }
         }
         // SELECT actions
         // default - no item selected
         $id = 0;
         // option 1 - ID given in $_GET request
         // option 2 - ID given in $_POST request
         if (!empty($request[1]) && is_numeric($request[1])) {
             $id = $request[1];
         } elseif (!empty($_POST["item"])) {
             $id = $_POST["item"];
         }
         // if there is request - eleaborate it
         if ($id > 0) {
             switch ($request[0]) {
                 case "select_gallery":
                 case "load_gallery":
                     $data["current_gallery"] = ELRHAdminResolver::selectGalleryAction($mysqli, $id);
                     // for initial select, action result shall be displayed
                     if ($request[0] == "select_gallery") {
                         $data["admin_output"] = $data["current_gallery"]["result"];
                     }
                     break;
                 case "select_image":
                 case "load_image":
                     $data["current_image"] = ELRHAdminResolver::selectImageAction($mysqli, $id);
                     // for initial select, action result shall be displayed
                     if ($request[0] == "select_image") {
                         $data["admin_output"] = $data["current_image"]["result"];
                     }
                     // after loading image, try load details for its gallery
                     if ($data["current_image"]["exists"]) {
                         $data["current_gallery"] = ELRHAdminResolver::selectGalleryAction($mysqli, $data["current_image"]["gallery"]);
                     }
                     break;
                     // select_article and select_link not yet implemented
             }
         }
         // SELECT actions
         // get necessary data to be displayed throughout administration
         include_once getcwd() . '/scripts/data-helpers/elrh_db_extractor.php';
         // get all existing galleries
         $data["galleries"] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT g.id, g.name, (SELECT name FROM elrh_gallery_galleries WHERE id=g.parent) AS parent FROM elrh_gallery_galleries g ORDER BY g.name");
         // if there is selected gallery, pick all images from it
         if (!empty($data["current_gallery"]) && $data["current_gallery"]["exists"]) {
             $data["images"] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT id, name FROM elrh_gallery_images WHERE gallery='" . $data["current_gallery"]["id"] . "' ORDER BY ord");
         } else {
             // notify renderer that gallery selection is empty
             $data["current_gallery"]["exists"] = false;
             // some mock data to avoid errors later
             $data["images"] = "null";
         }
         // notify renderer that image selection is empty, if needed
         if (empty($data["current_image"])) {
             $data["current_image"]["exists"] = false;
         }
     } else {
         // not logged in
         // (just some mock data to avoid errors later)
         $data["null"] = "null";
     }
     // save prepared data for renderer
     return $data;
 }
 public static function prepareData($item, $mysqli)
 {
     include_once getcwd() . '/scripts/data-helpers/elrh_db_extractor.php';
     // determine data according the item request
     if (empty($item)) {
         // notify content renderer, there will be index of galleries
         $data["display"] = "index";
         // try to load galleries
         $data["galleries"] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT id, name, dscr, (SELECT count(*) FROM elrh_gallery_images i WHERE i.gallery=g.id) AS images FROM elrh_gallery_galleries g WHERE parent='0' ORDER BY name");
         // for each gallery load further info
         if (!empty($data["galleries"])) {
             foreach ($data["galleries"] as $gallery) {
                 // first 7 images to feature
                 $data[$gallery["name"]]["images"] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT id, name, image FROM elrh_gallery_images WHERE gallery='" . $gallery["id"] . "' ORDER BY ord LIMIT 7");
                 // related galleries
                 $data[$gallery["name"]]["galleries"] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT id, name, (SELECT count(*) FROM elrh_gallery_images i WHERE i.gallery=g.id) AS images FROM elrh_gallery_galleries g WHERE parent='" . $gallery["id"] . "' ORDER BY name");
                 // related articles
                 $data[$gallery["name"]]["articles"] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT a.id, a.name, u.u_displayed_name AS author_name FROM elrh_articles a JOIN elrh_users u ON a.author=u.u_name WHERE gallery='" . $gallery["id"] . "' ORDER BY name");
             }
         }
     } else {
         // TODO admin operations
         // still have to determine whether displaying particular gallery or particular image
         // split request by "/"
         $request = preg_split('~/~', $item);
         if ($request[0] == "g") {
             // notify content renderer, there will be detail of particular gallery
             $data["display"] = "gallery";
             // try to load gallery details
             $data["entry"] = ELRHDataExtractor::retrieveRow($mysqli, "SELECT g.id AS gid, g.parent AS pid, g.created, g.name, g.dscr, (SELECT count(*) FROM elrh_gallery_images i WHERE i.gallery=g.id) AS images, u.u_displayed_name AS author_name FROM elrh_gallery_galleries g JOIN elrh_users u ON g.author=u.u_name WHERE g.id='" . mysqli_real_escape_string($mysqli, $request[1]) . "'");
             if (!empty($data["entry"])) {
                 // images to display
                 $data["images"] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT id, name, image FROM elrh_gallery_images WHERE gallery='" . $data["entry"]["gid"] . "' ORDER BY ord");
                 // possible parent gallery
                 $data["parent"] = ELRHDataExtractor::retrieveRow($mysqli, "SELECT id, name FROM elrh_gallery_galleries WHERE id='" . $data["entry"]["pid"] . "'");
                 // related galleries
                 $data["galleries"] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT id, name, (SELECT count(*) FROM elrh_gallery_images i WHERE i.gallery=g.id) AS images FROM elrh_gallery_galleries g WHERE parent='" . $data["entry"]["gid"] . "' ORDER BY name");
                 // related articles
                 $data["articles"] = ELRHDataExtractor::retrieveArray($mysqli, "SELECT a.id, a.name, u.u_displayed_name AS author_name FROM elrh_articles a JOIN elrh_users u ON a.author=u.u_name WHERE gallery='" . $data["entry"]["gid"] . "' ORDER BY name");
                 // page title adjustment
                 $data["item_title"] = ": " . $data["entry"]["name"];
                 // notify content renderer, that gallery exists
                 $data["exists"] = true;
             } else {
                 // notify content renderer, that gallery not found
                 $data["exists"] = false;
             }
         } else {
             if ($request[0] == "i") {
                 // notify content renderer, there will be detail of particular gallery
                 $data["display"] = "image";
                 // try to load image details
                 $data["entry"] = ELRHDataExtractor::retrieveRow($mysqli, "SELECT i.id AS iid, i.gallery AS gid, i.created, i.name, i.dscr, i.image, i.prev, i.next, u.u_displayed_name AS author_name FROM elrh_gallery_images i JOIN elrh_users u ON i.author=u.u_name WHERE i.id='" . mysqli_real_escape_string($mysqli, $request[1]) . "'");
                 if (!empty($data["entry"])) {
                     // parent gallery info
                     $data["parent"] = ELRHDataExtractor::retrieveRow($mysqli, "SELECT id, name FROM elrh_gallery_galleries WHERE id='" . $data["entry"]["gid"] . "'");
                     // page title adjustment
                     $data["item_title"] = ": " . $data["entry"]["name"];
                     // notify content renderer, that gallery exists
                     $data["exists"] = true;
                 } else {
                     // notify content renderer, that gallery not found
                     $data["exists"] = false;
                 }
             } else {
                 // notify content renderer, there is an error
                 $data["display"] = "error";
             }
         }
     }
     // save prepared data for renderer
     return $data;
 }