<?php
/* This file is part of Madcollector.
* Madcollector created by Thomas Andrieu,
* Developped by Mickael Jardet and Thomas Andrieu.
* Madcollector is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
* Madcollector is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
//defines divers
define("DATA", "data/");
define("LIBS", "libs/");
function mad_date()
{
$lang=$_SESSION['lang'];
switch($lang)
{
case "fr" :
return date("j")."/". date("m")."/". date("Y");
break;
default :
return date("F jS, Y");
break;
}
}
function pagination($page, $redirect, $nbPages)
{
echo "Page ";
for($i = 0; $i<$nbPages; $i++)
{
if($i != 0) echo " - ";
if(($i+1)== ($page))
echo " [<a href=\"".$redirect."&page=".($i+1)."\">".($i+1)."</a>]";
else echo " <a href=\"".$redirect."&page=".($i+1)."\">".($i+1)."</a>";
}
}
function pagination_letter($redirect)
{
global $lc_All;
for($i='A';$i!="AA"; $i++)
{
if($i != 'A')
echo " - ";
echo "<a href=\"".$redirect."&letter=".$i."\">".$i."</a>";
}
echo " - <a href=\"".$redirect."&letter=%\">#</a>";
}
function display_story_artists($workertable, $story_number, $artists_list)
{
if($story_number=="") $story_number=0;
$issue_scenarists = array();
$issue_drawers = array();
$issue_letters = array();
$issue_colors = array();
$issue_cover = array();
$issue_editors = array();
global $lc_Issue_Cast,$lc_Issue_Story,$lc_Works_roles,$lc_Issue_Art,$lc_Issue_Letters,$lc_Issue_Colors,$lc_Issue_Covers,$lc_Issue_Editing,$lc_Update,$lc_Delete,$lc_Add_Artist,$lc_Add_Casting,$lc_Pages,$lc_Menu_Browse;
if((sizeOf($workertable)>0)||($_SESSION["level"]>1))
{
echo "<div id=\"main_cast_story".$story_number."\" class=\"parag\"><h3>";
echo $lc_Issue_Cast;
if($_SESSION["level"]>1)
echo ' <a href="#TB_inline?height=155&width=500&inlineId=cast_story'.$story_number.'_form&modal=false" class="thickbox"><img alt="'.$lc_Update.'" src="'.THEME.'/images/edit.gif"/></a>';
echo "</h3>\n";
for($i = 0; $i< sizeOf($workertable); $i++)
{
$loopWorker = $workertable[$i];
$loopArtist = $loopWorker->artist;
$role_to_team = array();
$role_to_team["boss"] = "editing";
$role_to_team["consultant"] = "plot";
$role_to_team["cover"] = "cover";
$role_to_team["colors"] = "colors";
$role_to_team["editor"] = "editing";
$role_to_team["finishes"] = "art";
$role_to_team["inks"] = "art";
$role_to_team["layout"] = "art";
$role_to_team["letters"] = "letters";
$role_to_team["paint"] = "art";
$role_to_team["pencils"] = "art";
$role_to_team["plotter"] = "plot";
$role_to_team["scenarist"] = "plot";
switch($role_to_team[($loopWorker->role)])
{
case "plot":
array_push($issue_scenarists,$workertable[$i]);
break;
case "art":
array_push($issue_drawers,$workertable[$i]);
break;
case "letters":
array_push($issue_letters,$workertable[$i]);
break;
case "colors":
array_push($issue_colors,$workertable[$i]);
break;
case "cover":
array_push($issue_cover,$workertable[$i]);
break;
case "editing":
array_push($issue_editors,$workertable[$i]);
break;
default:
break;
}
}
}
if(sizeOf($issue_scenarists)>0)
{
echo " <div id=\"story_story".$story_number."\">".$lc_Issue_Story." : ";
for($i = 0; $i< sizeOf($issue_scenarists); $i++)
{
if($i>0)
echo ", ";
$loopWorker = $issue_scenarists[$i];
$loopArtist = $loopWorker->artist;
echo "<a href=\"index.php?rub=artist&id_artist=".$loopArtist->id_artist."\">".$loopArtist->toString()."</a>";
if($loopWorker->role != "scenarist")
echo " (".$lc_Works_roles[$loopWorker->role].")";
if($loopWorker->pages != "")
echo " (".$loopWorker->pages.")";
}
echo "</div>\n";
}
if(sizeOf($issue_drawers)>0)
{
echo " <div id=\"art_story".$story_number."\">".$lc_Issue_Art." : ";
for($i = 0; $i< sizeOf($issue_drawers); $i++)
{
if($i>0)
echo ", ";
$loopWorker = $issue_drawers[$i];
$loopArtist = $loopWorker->artist;
echo "<a href=\"index.php?rub=artist&id_artist=".$loopArtist->id_artist."\">".$loopArtist->toString()."</a>";
if($loopWorker->role != "pencils")
echo " (".$lc_Works_roles[$loopWorker->role].")";
if($loopWorker->pages != "")
echo " (".$loopWorker->pages.")";
}
echo "</div>\n";
}
if(sizeOf($issue_letters)>0)
{
echo " <div id=\"letters_story".$story_number."\">".$lc_Issue_Letters." : ";
for($i = 0; $i< sizeOf($issue_letters); $i++)
{
if($i>0)
echo ", ";
$loopWorker = $issue_letters[$i];
$loopArtist = $loopWorker->artist;
echo "<a href=\"index.php?rub=artist&id_artist=".$loopArtist->id_artist."\">".$loopArtist->toString();
echo "</a>";
if($loopWorker->pages != "")
echo " (".$loopWorker->pages.")";
}
echo "</div>\n";
}
if(sizeOf($issue_colors)>0)
{
echo " <div id=\"colors_story".$story_number."\">".$lc_Issue_Colors." : ";
for($i = 0; $i< sizeOf($issue_colors); $i++)
{
if($i>0)
echo ", ";
$loopWorker = $issue_colors[$i];
$loopArtist = $loopWorker->artist;
echo "<a href=\"index.php?rub=artist&id_artist=".$loopArtist->id_artist."\">".$loopArtist->toString();
echo "</a>";
if($loopWorker->pages != "")
echo " (".$loopWorker->pages.")";
}
echo "</div>\n";
}
if(sizeOf($issue_cover)>0)
{
echo " <div id=\"cover_story".$story_number."\">".$lc_Issue_Covers.": ";
for($i = 0; $i< sizeOf($issue_cover); $i++)
{
if($i>0)
echo ", ";
$loopWorker = $issue_cover[$i];
$loopArtist = $loopWorker->artist;
echo "<a href=\"index.php?rub=artist&id_artist=".$loopArtist->id_artist."\">".$loopArtist->toString();
echo "</a>";
}
echo "</div>\n";
}
if(sizeOf($issue_editors)>0)
{
echo " <div id=\"editors_story".$story_number."\">".$lc_Issue_Editing.": ";
for($i = 0; $i< sizeOf($issue_editors); $i++)
{
if($i>0)
echo ", ";
$loopWorker = $issue_editors[$i];
$loopArtist = $loopWorker->artist;
echo "<a href=\"index.php?rub=artist&id_artist=".$loopArtist->id_artist."\">".$loopArtist->toString()."</a>";
if($loopWorker->role != "editor")
echo " (".$lc_Works_roles[$loopWorker->role].")";
}
echo "</div>\n";
}
if((sizeOf($workertable)==0)&&($_SESSION["level"]>1))
{
echo " <div>".$lc_Add_Casting."</div>\n";
}
echo "</div>\n\n";
if($_SESSION["level"]>1)
{
echo "<div id=\"cast_story".$story_number."_form\" style=\"display:none\"><form method=\"post\"><input type=\"hidden\" name=\"id_story\" value=\"".$story_number."\"/><table>\n";
$artistArray = array();
for($i=0;$i<sizeOf($workertable);$i++)
{
$loopWorker = $workertable[$i];
$loopArtist = $loopWorker->artist;
array_push($artistArray,$loopArtist->id_artist);
echo '<tr';
if(($i % 2)!=0) echo " class =\"alternee\"";
echo '><td>'.$loopArtist->toString().'<input type="hidden" name="cast_artist_ids[]" value="'.$loopArtist->id_artist.'"/></td><td><select name="select_artist_role'.$loopArtist->id_artist.'">';
foreach ($lc_Works_roles as $key => $value){
echo '<option value="'.$key.'"';
if($loopWorker->role==$key) echo ' selected="selected"';
echo '>'.$value.'</option>\n';}
echo '</select></td><td>'.$lc_Pages.'</td><td><input type="text" name="artist_pages'.$loopArtist->id_artist.'" value="'.$loopWorker->pages.'"/></td></tr><tr';
if(($i % 2)!=0) echo " class =\"alternee\"";
echo '><td colspan=4>'.$lc_Delete.' <input type="checkbox" name="remove_artist_story[]" value="'.$loopArtist->id_artist.'"/></td></tr>';
}
echo "</table>\n <p>".$lc_Add_Artist." : </p>\n";
echo '<table>';
echo '<tr><td>'.$lc_Menu_Browse.'</td><td colspan=3><select id="letterchooser" name="letterchooser" \'index.php?rub=artistlist\', this);" >';
echo '<option value="" selected="selected"></option>';
echo '<option value="%">#</option>';
for($i='A';$i!='AA'; $i++)
echo '<option value="'.$i.'">'.$i.'</option>';
echo '</select></td></tr>';
echo '<tr><td><select name="new_artist_id" id="new_artist_id">';
echo ' </select></td><td><select name="select_new_artist_role">';
foreach ($lc_Works_roles as $key => $value){
echo '<option value="'.$key.'"';
if($loopWorker->role==$key) echo ' selected="selected"';
echo '>'.$value.'</option>\n';}
echo "</select></td><td>".$lc_Pages.'</td><td><input type="text" name="new_artist_pages"/></td></tr>';
echo '<tr><td colspan=4><input type="submit" name="update_story_cast_submit" value="'.$lc_Update.'"></td></tr></table></form></div>
';
}
}
function parse_content($contenuXML,$tagName)
{
$retour = "";
if($contenuXML=="")
{
return "";
}
if (version_compare(PHP_VERSION,'5','>='))
{
$dom = new DOMDocument();
if(!$dom->loadXML($contenuXML))
return "";
$noeuds = $dom->getElementsByTagName($tagName);
for($i=0; $i < $noeuds->length; $i++)
{
$noeud_loop = $noeuds->item($i);
if($noeud_loop->getAttribute("lang")==$_SESSION["lang"])
$retour = $noeud_loop->nodeValue;
if($noeud_loop->getAttribute("lang")==$_SESSION["en"])
$backup_retour = $noeud_loop->nodeValue;
}
}
else
{
if(!$dom = domxml_open_mem($contenuXML))
return "";
$root = $dom->document_element();
$noeuds = $root->get_elements_by_tagname($tagName);
for($i=0; $i < sizeOf($noeuds); $i++)
{
if($noeuds[$i]->get_attribute("lang")==$_SESSION["lang"])
$retour = $noeuds[$i]->get_content();
if($noeuds[$i]->get_attribute("lang")==$_SESSION["en"])
$backup_retour = $noeuds[$i]->get_content();
}
}
if($retour != "")
return $retour;
else return $backup_retour;
}
function addXML_content($contenuXML,$tagName,$rootName,$addValue)
{
if (version_compare(PHP_VERSION,'5','>='))
{
$dom = new DOMDocument();
$node_found=false;
$my_encoding = mb_detect_encoding($addValue);
if($my_encoding != "UTF-8")
utf8_encode($addValue);
if($contenuXML != "")
{
$addValue = htmlspecialchars(nl2br($addValue));
if(!$dom->loadXML($contenuXML))
return $contenuXML;
$noeuds = $dom->getElementsByTagName($tagName);
$rootNodeList = $dom->getElementsByTagName($rootName);
$rootNode = $rootNodeList->item(0);
$node_found=false;
for($i=0; $i < $noeuds->length; $i++)
{
$noeud_loop = $noeuds->item($i);
if($noeud_loop->getAttribute("lang")==$_SESSION["lang"])
{
$noeud_loop->nodeValue = $addValue;
$node_found=true;
}
}
}
else
{
$node = $dom->createElement($rootName);
$rootNode = $dom->appendChild($node);
}
if(!$node_found)
{
$node = $dom->createElement($tagName,$addValue);
$new_node = $rootNode->appendChild($node);
$new_node->setAttribute("lang", $_SESSION["lang"]);
}
return $dom->saveXML();
}
else
{
if($contenuXML != "")
{
$addValue = htmlspecialchars(nl2br($addValue));
if(!$dom = domxml_open_mem($contenuXML))
return $contenuXML;
$rootNode = $dom->document_element();
$noeuds = $rootNode->get_elements_by_tagname($tagName);
$node_found=false;
for($i=0; $i < $noeuds->length; $i++)
{
$noeud_loop = $noeuds[$i];
$attLang=$noeud_loop->get_attribute_node("lang");
if($attLang[0]==$_SESSION["lang"])
{
$noeud_loop->set_content($addValue);
$node_found=true;
}
}
}
else
{
$dom = domxml_new_doc("1.0");
$rootNode = $dom->create_element($rootName);
$dom->append_child($rootNode);
}
if(!$node_found)
{
$node = $dom->create_element($tagName);
$node->set_content($addValue);
$new_attribute = $dom->create_attribute("lang", $_SESSION["lang"]);
$node->append_child($new_attribute);
$rootNode->append_child($node);
}
return $dom->dump_mem();
}
}
function stripslashes_array($data) {
if (is_array($data)){
foreach ($data as $key => $value){
$data[$key] = stripslashes_array($value);
}
return $data;
}else{
return stripslashes($data);
}
}
function select_month($issue_month)
{
global $lc_months;
$retour = '<option value=""></option>\n';
foreach ($lc_months as $key => $value){
$retour .= '<option value="'.$key.'"';
if($issue_month==$key) $retour .= ' selected="selected"';
$retour .= '>'.$value.'</option>\n';}
return $retour;
}
function select_year($issue_year)
{
$retour = '<option value=""></option>\n';
$myYear=(date("Y")+1);
for ($i=1900;$i<$myYear;$i++){
$retour .= '<option value="'.$i.'"';
if($issue_year==$i) $retour .= ' selected="selected"';
$retour .= '>'.$i.'</option>\n';}
return $retour;
}
function mad_strip($input_text)
{
$temp = ereg_replace("<script.*</script>", "" ,$input_text);
$temp = ereg_replace("<script.*/>", "" ,$temp);
$temp = ereg_replace("<iframe.*</iframe>", "" ,$input_text);
$temp = ereg_replace("<frame.*</frame>", "" ,$input_text);
return $temp;
}
function language_selector(){
global $lang;
echo '<form method="get" name="language_select" action="index.php">';
$get_keys = array_keys($_GET);
for($i=0;$i<sizeOf($get_keys);$i++)
{
echo "<input type=\"hidden\" name=\"".$get_keys[$i]."\" value=\"".$_GET[$get_keys[$i]]."\"/>\n";
}
echo '<select name="lang" label="language">';
if($fp = fopen("locales/lc.locales","r"))
{
while (!feof($fp))
{
$ligne = fgets($fp, 4096);
if (ereg ("^(.+):(.+)$", $ligne, $regs)) {
echo "<option value=\"".$regs[1]."\"";
if($regs[1]==$lang) echo " selected=\"selected\"";
echo ">".$regs[2]."</option>";
}
}
fclose($fp);
}
echo '</optgroup></select><input type="submit" value="OK" style="display:none;"/></form>';
}
function search_input(){
global $lc_Search,$lc_Menu_Search;
echo "<p>".$lc_Menu_Search." : </p>\n" ;
echo '<form method="get" action="index.php"><input type="text" name="search" value="'.$_GET["search"].'"/><input type="hidden" name="rub" value="search"/><input type="submit" value="'.$lc_Search.'" class="submit"/></form>';
}
function connect_form(){
global $lc_Welcome,$lc_MsgDeconnect;
if (($_SESSION['RegUser'])!="")
{
echo "<div id='welcome'>".$lc_Welcome." ".$_SESSION['RegUser']."</div>\n";
echo "<a href='index.php?rub=deconnect'>".$lc_MsgDeconnect."</a>\n";
}
else
{
//no cookie and no session
include (DATA."connect.inc.php");
}
}
?>