| Author | $h_author";
    }
    public function sidebar_options(string $mode, ?int $artistID=null, $is_admin=false): void
    {
        global $page, $user;
        $html = "";
        if ($mode == "neutral") {
            $html = "";
        }
        
        if ($mode == "editor") {
            $html = "
					
					";
                    
            if ($is_admin) {
                $html .= "";
            }
            
            $html .= "
						
						
						
						";
        }
        if ($html) {
            $page->add_block(new Block("Manage Artists", $html, "left", 10));
        }
    }
    public function show_artist_editor($artist, $aliases, $members, $urls)
    {
        global $user;
        $artistName = $artist['name'];
        $artistNotes = $artist['notes'];
        $artistID = $artist['id'];
        // aliases
        $aliasesString = "";
        $aliasesIDsString = "";
        foreach ($aliases as $alias) {
            $aliasesString .= $alias["alias_name"]." ";
            $aliasesIDsString .= $alias["alias_id"]." ";
        }
        $aliasesString = rtrim($aliasesString);
        $aliasesIDsString = rtrim($aliasesIDsString);
        // members
        $membersString = "";
        $membersIDsString = "";
        foreach ($members as $member) {
            $membersString .= $member["name"]." ";
            $membersIDsString .= $member["id"]." ";
        }
        $membersString = rtrim($membersString);
        $membersIDsString = rtrim($membersIDsString);
        // urls
        $urlsString = "";
        $urlsIDsString = "";
        foreach ($urls as $url) {
            $urlsString .= $url["url"]."\n";
            $urlsIDsString .= $url["id"]." ";
        }
        $urlsString = substr($urlsString, 0, strlen($urlsString) -1);
        $urlsIDsString = rtrim($urlsIDsString);
        $html = '
			
		';
        global $page;
        $page->add_block(new Block("Edit artist", $html, "main", 10));
    }
    
    public function new_artist_composer()
    {
        global $page, $user;
        $html = "		
		';
        global $page;
        $page->add_block(new Block("Artist Aliases", $html, "main", 20));
    }
    public function show_new_member_composer($artistID)
    {
        global $user;
        $html = '
			
		';
        global $page;
        $page->add_block(new Block("Artist members", $html, "main", 30));
    }
    public function show_new_url_composer($artistID)
    {
        global $user;
        $html = '
			
		';
        global $page;
        $page->add_block(new Block("Artist URLs", $html, "main", 40));
    }
    public function show_alias_editor($alias)
    {
        global $user;
        $html = '
			
		';
        global $page;
        $page->add_block(new Block("Edit Alias", $html, "main", 10));
    }
    public function show_url_editor($url)
    {
        global $user;
        $html = '
			
		';
        global $page;
        $page->add_block(new Block("Edit URL", $html, "main", 10));
    }
    public function show_member_editor($member)
    {
        global $user;
        $html = '
			
		';
        global $page;
        $page->add_block(new Block("Edit Member", $html, "main", 10));
    }
    public function show_artist($artist, $aliases, $members, $urls, $images, $userIsLogged, $userIsAdmin)
    {
        global $page;
        $artist_link = "".str_replace("_", " ", $artist['name'])."";
        $html = " | 
					
						
							|  | ";
            
        if ($userIsLogged) {
            $html .= " | ";
        }
        if ($userIsAdmin) {
            $html .= " | ";
        }
        $html .= " | 
					
					
						| Name: | ".$artist_link."";
        if ($userIsLogged) {
            $html .= " | ";
        }
        if ($userIsAdmin) {
            $html .= " | ";
        }
        $html .= " | 
";
        $html .= $this->render_aliases($aliases, $userIsLogged, $userIsAdmin);
        $html .= $this->render_members($members, $userIsLogged, $userIsAdmin);
        $html .= $this->render_urls($urls, $userIsLogged, $userIsAdmin);
        $html .= "
						| Notes: | ".$artist["notes"]."";
        if ($userIsLogged) {
            $html .= " | ";
        }
        if ($userIsAdmin) {
            $html .= " | ";
        }
        //TODO how will notes be edited? On edit artist? (should there be an editartist?) or on a editnotes?
        //same question for deletion
        $html .= " | 
		
";
        $page->set_title("Artist");
        $page->set_heading("Artist");
        $page->add_block(new Block("Artist", $html, "main", 10));
        //we show the images for the artist
        $artist_images = "";
        foreach ($images as $image) {
            $thumb_html = $this->build_thumb_html($image);
                
            $artist_images .= ''.
                ''.$thumb_html.''.
                '';
        }
            
        $page->add_block(new Block("Artist Images", $artist_images, "main", 20));
    }
    private function render_aliases(array $aliases, bool $userIsLogged, bool $userIsAdmin): string
    {
        $html = "";
        if (count($aliases) > 0) {
            $aliasViewLink = str_replace("_", " ", $aliases[0]['alias_name']); // no link anymore
            $aliasEditLink = "Edit";
            $aliasDeleteLink = "Delete";
            $html .= "
							  | Aliases: | " . $aliasViewLink . "";
            if ($userIsLogged) {
                $html .= " | " . $aliasEditLink . "";
            }
            if ($userIsAdmin) {
                $html .= " | " . $aliasDeleteLink . "";
            }
            $html .= " | 
";
            if (count($aliases) > 1) {
                for ($i = 1; $i < count($aliases); $i++) {
                    $aliasViewLink = str_replace("_", " ", $aliases[$i]['alias_name']); // no link anymore
                    $aliasEditLink = "Edit";
                    $aliasDeleteLink = "Delete";
                    $html .= "
									  |  | " . $aliasViewLink . "";
                    if ($userIsLogged) {
                        $html .= " | " . $aliasEditLink . "";
                    }
                    if ($userIsAdmin) {
                        $html .= " | " . $aliasDeleteLink . "";
                    }
                    $html .= " | 
";
                }
            }
        }
        return $html;
    }
    private function render_members(array $members, bool $userIsLogged, bool $userIsAdmin): string
    {
        $html = "";
        if (count($members) > 0) {
            $memberViewLink = str_replace("_", " ", $members[0]['name']); // no link anymore
            $memberEditLink = "Edit";
            $memberDeleteLink = "Delete";
            $html .= "
							| Members: | " . $memberViewLink . "";
            if ($userIsLogged) {
                $html .= " | " . $memberEditLink . "";
            }
            if ($userIsAdmin) {
                $html .= " | " . $memberDeleteLink . "";
            }
            $html .= " | 
";
            if (count($members) > 1) {
                for ($i = 1; $i < count($members); $i++) {
                    $memberViewLink = str_replace("_", " ", $members[$i]['name']); // no link anymore
                    $memberEditLink = "Edit";
                    $memberDeleteLink = "Delete";
                    $html .= "
							|  | " . $memberViewLink . "";
                    if ($userIsLogged) {
                        $html .= " | " . $memberEditLink . "";
                    }
                    if ($userIsAdmin) {
                        $html .= " | " . $memberDeleteLink . "";
                    }
                    $html .= " | 
";
                }
            }
        }
        return $html;
    }
    private function render_urls(array $urls, bool $userIsLogged, bool $userIsAdmin): string
    {
        $html = "";
        if (count($urls) > 0) {
            $urlViewLink = "" . str_replace("_", " ", $urls[0]['url']) . "";
            $urlEditLink = "Edit";
            $urlDeleteLink = "Delete";
            $html .= "
							| URLs: | " . $urlViewLink . "";
            if ($userIsLogged) {
                $html .= " | " . $urlEditLink . "";
            }
            if ($userIsAdmin) {
                $html .= " | " . $urlDeleteLink . "";
            }
            $html .= " | 
";
            if (count($urls) > 1) {
                for ($i = 1; $i < count($urls); $i++) {
                    $urlViewLink = "" . str_replace("_", " ", $urls[$i]['url']) . "";
                    $urlEditLink = "Edit";
                    $urlDeleteLink = "Delete";
                    $html .= "
								|  | " . $urlViewLink . "";
                    if ($userIsLogged) {
                        $html .= " | " . $urlEditLink . "";
                    }
                    if ($userIsAdmin) {
                        $html .= " | " . $urlDeleteLink . "";
                    }
                    $html .= " | 
";
                }
                return $html;
            }
        }
        return $html;
    }
}