<?php
/* This file is part of Madcollector.
* Madcollector created by Thomas Andrieu,
* Developped by 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.
* 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_echo($hookname,$content)
{
global $madPluginManager;
$beforehooktable = $madPluginManager->get_plugin_before_hook($hookname);
for($i=0;$i<sizeOf($beforehooktable);$i++)
{
$content = call_user_func($beforehooktable[$i], $content);
}
$hooktable = $madPluginManager->get_plugin_hook($hookname);
for($i=0;$i<sizeOf($hooktable);$i++)
{
$content = call_user_func($hooktable[$i], $content);
}
$afterhooktable = $madPluginManager->get_plugin_after_hook($hookname);
for($i=0;$i<sizeOf($afterhooktable);$i++)
{
$content = call_user_func($afterhooktable[$i], $content);
}
echo $content;
}
function use_globalfilters()
{
global $madPluginManager;
$globalfilters = $madPluginManager->get_globalfilters();
for($i=0;$i<sizeOf($globalfilters);$i++)
{
$content = ob_get_contents();
$content = call_user_func($globalfilters[$i],$content);
}
echo $content;
}
function mad_date($date)
{
$lang=$_SESSION['lang'];
if($date==null)
$date = time();
else $date = strtotime($date);
if($date=="") return "";
switch($lang)
{
case "fr" :
return date("d/m/Y",$date);
break;
default :
return date("F jS, Y",$date);
break;
}
}
function pagination($page, $redirect, $nbPages)
{
global $compteurpagination;
$compteurpagination++;
if(!($nbPages<1))
{
global $locales;
$content = '<form action="'.$redirect.'" method="GET" name="pagination_page_select'.$compteurpagination.'">'.$locales["Browse_Page"].": \n";
$get_keys = array_keys($_GET);
for($i=0;$i<sizeOf($get_keys);$i++)
{
if($get_keys[$i] !="page") $content .= "<input type=\"hidden\" name=\"".$get_keys[$i]."\" value=\"".$_GET[$get_keys[$i]]."\"/>";
}
$content.= '<select name="page" >.$compteurpagination.'.submit();">';
for($i = 0; $i<$nbPages; $i++)
{
$content.= "<option value=\"".($i+1)."\"";
if($page==($i+1)) $content.= ' selected="selected"';
$content.= ">".($i+1)."</option>";
}
$content .= '</select><input type="submit" name="pagination_page_submit" value="OK" style="display:none;"/></form>'."\n";
return $content;
}
}
function pagination_letter($redirect)
{
global $locales,$letter;
$content = '<form action="'.$redirect.'" method="GET" name="pagination_letter_select">'.$locales["Browse_Letter"].": \n";
$get_keys = array_keys($_GET);
for($i=0;$i<sizeOf($get_keys);$i++)
{
if($get_keys[$i] !="letter") $content .= "<input type=\"hidden\" name=\"".$get_keys[$i]."\" value=\"".$_GET[$get_keys[$i]]."\"/>";
}
$content.= '<select name="letter" >;
$content.= "<option value=\"%\"";
if($letter=="[0-9]") $content.= ' selected="selected"';
$content.=">#</option>";
for($i='A';$i!="AA"; $i++)
{
$content.= "<option value=\"".$i."\"";
if(strtoupper($letter)==$i) $content.= ' selected="selected"';
$content.= ">".$i."</option>";
}
$content .= '</select><input type="submit" name="pagination_letter_submit" value="OK" style="display:none;"/></form>'."\n";
return $content;
}
function display_items_per_page()
{
global $locales,$nbrEnregPage;
echo '<div id="form_nb_page"><form method="get" action="index.php">'.$locales["Items_Per_Page"].' : ';
foreach($_GET as $key=>$value)
if(($key != "page")&&($key != "enreg"))
echo '<input type="hidden" name="'.$key.'" value="'.$value.'"/>';
echo '<input type="text" name="enreg" value="'.$nbrEnregPage.'" size="3"/><input type="submit" name="submitEnreg" value="'.$locales["Send"].'"/></form></div>';
}
function display_story_artists($workertable, $story_number)
{
switch($_GET["format"])
{
case "xml" :
for($i=0;$i<sizeOf($workertable);$i++)
{
$loopWorker = $workertable[$i];
$loopArtist = $loopWorker->artist;
echo '<worker><artist id="'.$loopArtist->id_artist.'">';
if($loopArtist->firstname !="") echo '<firstname>'.htmlspecialchars($loopArtist->firstname).'</firstname>';
if($loopArtist->middlename !="") echo '<middlename>'.htmlspecialchars($loopArtist->middlename).'</middlename>';
echo '<lastname>'.htmlspecialchars($loopArtist->lastname).'</lastname></artist><role>'.$loopWorker->role.'</role>';
if($loopWorker->pages!="") echo '<pages>'.htmlspecialchars($loopWorker->pages).'</pages>';
echo '</worker>';
}
break;
default :
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 $locales;
if((sizeOf($workertable)>0)||($_SESSION["level"]>1))
{
echo "<div id=\"main_cast_story".$story_number."\" class=\"parag\"><h3>";
echo $locales["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="'.$locales["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."\">".$locales["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 " (".$locales["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."\">".$locales["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 " (".$locales["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."\">".$locales["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."\">".$locales["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."\">".$locales["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."\">".$locales["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 " (".$locales["Works_roles"][$loopWorker->role].")";
}
echo "</div>\n";
}
if((sizeOf($workertable)==0)&&($_SESSION["level"]>1))
{
echo " <div>".$locales["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 ($locales["Works_roles"] as $key => $value){
echo '<option value="'.$key.'"';
if($loopWorker->role==$key) echo ' selected="selected"';
echo '>'.$value.'</option>\n';}
echo '</select></td><td>'.$locales["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>'.$locales["Delete"].' <input type="checkbox" name="remove_artist_story[]" value="'.$loopArtist->id_artist.'"/></td></tr>';
}
echo "</table>\n <p>".$locales["Add_Artist"]." : </p>\n";
echo '<table>';
echo '<tr><td>'.$locales["Menu_Browse"].'</td><td colspan=3><select id="letterchooser'.$story_number.'" name="letterchooser" >.$story_number.'\', \'index.php?rub=artist&format=xml\', 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'.$story_number.'" style="display:none">';
echo ' </select></td><td><select name="select_new_artist_role">';
foreach ($locales["Works_roles"] as $key => $value){
echo '<option value="'.$key.'"';
if($loopWorker->role==$key) echo ' selected="selected"';
echo '>'.$value.'</option>\n';}
echo "</select></td><td>".$locales["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="'.$locales["Update"].'"></td></tr></table></form></div>
';
}
break;
}
}
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)
{
$addValue = htmlspecialchars(nl2br($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 != "")
{
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 != "")
{
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 $locales;
$retour = '<option value=""></option>\n';
foreach ($locales["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 = preg_replace ( array(
'@<script[^>]*?.*?</script>@siu',
'@<script[^>]*?.*?/>@siu',
'@<object[^>]*?.*?</object>@siu',
'@<embed[^>]*?.*?</embed>@siu',
'@<applet[^>]*?.*?</applet>@siu',
'@<noframes[^>]*?.*?</noframes>@siu',
'@<noscript[^>]*?.*?</noscript>@siu',
'@<form[^>]*?.*?</form>@siu',
'@<input[^>]*?.*?>@siu',
'@<noembed[^>]*?.*?</noembed>@siu',),
array(
'','', '', '', '', '', '', '', '', ''),$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++)
{
if($get_keys[$i] != "lang")
echo "<input type=\"hidden\" name=\"".$get_keys[$i]."\" value=\"".$_GET[$get_keys[$i]]."\"/>";
}
echo '<select name="lang" label="'.$locales["Language"].'">';
if($fp = fopen("locales/lc.locales","r"))
{
while (!feof($fp))
{
$ligne = fgets($fp, 4096);
if (preg_match("/^(.+):(.+)$/", $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 $locales;
echo "<p>".$locales["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="'.$locales["Search"].'" class="submit"/></form>';
}
function close_series($retour,$series)
{
global $locales;
echo $retour;
echo "<tr><td></td><td><a href=\"javascript:checkAll('form".$series->id_series."','check_".$series->id_series."[]');\">".$locales["All"]."</a>/<a href=\"javascript:uncheckAll('form".$series->id_series."','check_".$series->id_series."[]');\">".$locales["None"]."</a></td></tr>\n";
switch($_GET['action'])
{
case "searched" :
echo "<tr><td>".$locales["WithSelection"]." : <select name=\"typeaction\">\n";
echo "<option value=\"collect\">".$locales["Move_Collection"]."</option>\n";
echo "<option value=\"delete\">".$locales["Delete"]."</option>\n";
echo "</select></td><td><input type=\"submit\" name=\"update\" value=\"".$locales["Update"]."\" class=\"submit\"/></td></tr>";
break;
case "forsale" :
global $table_currencies,$table_conditions;
echo "<tr><td>".$locales["Issue_Price"].' : <input type="text" name="price_update" size="5"/>';
echo $locales["Issue_Currency"].' : <select name="currency_update">';
foreach ($table_currencies as $key => $value){
echo '<option value="'.$key.'">'.$value.'</option>\n';}
echo "</select>".$locales["Issue_Condition"].' : <select name="condition_update">';
for($i=0;$i<sizeOf($table_conditions);$i++)
echo "<option value=\"".$table_conditions[$i][0]."\">".$table_conditions[$i][1]."</option>";
echo "</select>";
echo "<tr><td>".$locales["WithSelection"]." : <select name=\"typeaction\">\n";
echo "<option value=\"update_price\">".$locales["Update"]."</option>\n";
echo "<option value=\"delete\">".$locales["Delete"]."</option>\n";
echo "</select></td><td><input type=\"submit\" name=\"update\" value=\"".$locales["Update"]."\" class=\"submit\"/></td></tr>";
break;
default :
echo "<tr><td>".$locales["Collection_Place"].' : <input type="text" name="emplacement"/></td><td></td></tr>';
echo "<tr><td>".$locales["WithSelection"]." : <select name=\"typeaction\">\n";
echo "<option value=\"update\">".$locales["Update"]."</option>\n";
echo "<option value=\"delete\">".$locales["Delete"]."</option>\n";
echo "</select></td><td><input type=\"submit\" name=\"update\" value=\"".$locales["Update"]."\" class=\"submit\"/></td></tr>";
break;
}
echo "</table></form></div>\n";
}
function vote_form($id_series,$issue,$id_story,$popularity,$votes)
{
global $locales;
echo '<div id="story_vote_'.$id_story.'"';
if((isset($_COOKIE["story_voted"][$id_series][$issue][$id_story]))&&(($_COOKIE["story_voted"][$id_series][$issue][$id_story]!="")))
echo ' class="voted"';
echo '>';
if($votes>0)
echo $locales["Popularity"]." : ".round(100*$popularity/$votes)."% (".$votes." ".$locales["Votes"].")";
if(((!isset($_COOKIE["story_voted"][$id_series][$issue][$id_story]))||(($_COOKIE["story_voted"][$id_series][$issue][$id_story]=="")))&&(($_SESSION['id_user'] != "")&&(isset($_SESSION['id_user']))))
{
if($votes>0)
echo "<br/>\n";
echo $locales["Vote"].' : <a href="javascript:story_vote(\''.$id_series.'\',\''.$issue.'\',\''.$id_story.'\',\'increase\')"><img alt="+" src="'.THEME.'/images/thumbsup.gif" style="border:0px;"/></a><a href="javascript:story_vote(\''.$id_series.'\',\''.$issue.'\',\''.$id_story.'\',\'decrease\')"><img alt="-" src="'.THEME.'/images/thumbsdown.gif" style="border:0px;"/></a>';
}
echo '</div>';
}
function get_issue_data($issue_series,$issue_num)
{
global $DB_connexion,$cfg_table_prefix;
$requete_issue = 'SELECT * FROM '.$cfg_table_prefix.'issues,'.$cfg_table_prefix.'series WHERE '.$cfg_table_prefix.'issues.id_series="'.$issue_series.'" AND '.$cfg_table_prefix.'issues.issue="'.$issue_num.'" AND '.$cfg_table_prefix.'issues.id_series='.$cfg_table_prefix.'series.id_series;';
$envoi_requete = mysql_query($requete_issue,$DB_connexion);
if($envoi_requete) $nb_occur = mysql_num_rows($envoi_requete);
if(($nb_occur == 0)||($nb_occur == ""))
{
return array();
}
else
{
$table_resultats = mysql_fetch_array($envoi_requete, MYSQL_BOTH);
mysql_free_result($envoi_requete);
return $table_resultats;
}
}
function get_issue_covers($issue_series,$issue_num)
{
global $DB_connexion,$cfg_table_prefix;
$requete_issue = 'SELECT * FROM '.$cfg_table_prefix.'issue_variantcovers WHERE id_series="'.$issue_series.'" AND issue="'.$issue_num.'"';
$envoi_requete = mysql_query($requete_issue,$DB_connexion);
if($envoi_requete) $nb_occur = mysql_num_rows($envoi_requete);
$table_resultats = array();
if(($nb_occur == 0)||($nb_occur == ""))
{
return $table_resultats;
}
else
{
while($ligne = mysql_fetch_array($envoi_requete, MYSQL_BOTH))
array_push($table_resultats,$ligne);
mysql_free_result($envoi_requete);
return $table_resultats;
}
}
function get_story_data($issue_series,$issue_num,$idStory)
{
global $DB_connexion,$cfg_table_prefix;
$requete_issue = 'SELECT * FROM '.$cfg_table_prefix.'stories WHERE id_series="'.$issue_series.'" AND issue="'.$issue_num.'" AND id_story=\''.$idStory.'\';';
$envoi_requete = mysql_query($requete_issue,$DB_connexion);
if(envoi_requete) $nb_occur = mysql_num_rows($envoi_requete);
if(($nb_occur == 0)||($nb_occur == ""))
{
return array();
}
else
{
$table_resultats = mysql_fetch_array($envoi_requete, MYSQL_BOTH);
mysql_free_result($envoi_requete);
return $table_resultats;
}
}
function get_publisher_data($id_publisher)
{
global $DB_connexion,$cfg_table_prefix;
$requete_id_publisher = 'SELECT * FROM '.$cfg_table_prefix.'publishers WHERE id_publisher="'.$id_publisher.'";';
$envoi_requete_id_publisher = mysql_query($requete_id_publisher,$DB_connexion);
if($envoi_requete_id_publisher) $nb_occur_id_publisher = mysql_num_rows($envoi_requete_id_publisher);
if($nb_occur_id_publisher >0) {
$table_resultats = mysql_fetch_array($envoi_requete_id_publisher, MYSQL_BOTH);
mysql_free_result($envoi_requete_id_publisher);
return $table_resultats;
}
else
{
return null;
}
}
function get_series_data($id_series)
{
global $DB_connexion,$cfg_table_prefix;
$requete_id_series = 'SELECT * FROM '.$cfg_table_prefix.'series WHERE id_series="'.$id_series.'";';
$envoi_requete_id_series = mysql_query($requete_id_series,$DB_connexion);
if($envoi_requete_id_series) $nb_occur_id_series = mysql_num_rows($envoi_requete_id_series);
if($nb_occur_id_series >0 )
{
$table_resultats = mysql_fetch_array($envoi_requete_id_series, MYSQL_BOTH);
mysql_free_result($envoi_requete_id_series);
}
return $table_resultats;
}
function get_arc_data($id_arc)
{
global $DB_connexion,$cfg_table_prefix;
$table_resultats = array();
$requete_issue_arc = 'SELECT * FROM '.$cfg_table_prefix.'arcs WHERE id_arc="'.$id_arc.'";';
$envoi_requete_arc = mysql_query($requete_issue_arc,$DB_connexion);
if($envoi_requete_arc) $nb_occur_issue_arc = mysql_num_rows($envoi_requete_arc);
if($nb_occur_issue_arc >0)
{
$table_resultats = mysql_fetch_array($envoi_requete_arc, MYSQL_BOTH);
mysql_free_result($envoi_requete_arc);
}
return $table_resultats;
}
function get_label_data($id_label)
{
global $DB_connexion,$cfg_table_prefix;
$table_resultats = array();
$requete_label = 'SELECT * FROM '.$cfg_table_prefix.'labels WHERE id_label="'.$id_label.'";';
$envoi_requete = mysql_query($requete_label,$DB_connexion);
if($envoi_requete) $nb_occur_issue_label = mysql_num_rows($envoi_requete);
if($nb_occur_issue_label >0)
{
$table_resultats = mysql_fetch_array($envoi_requete, MYSQL_BOTH);
mysql_free_result($envoi_requete);
}
return $table_resultats;
}
function get_artist_data($id_artist)
{
global $cfg_table_prefix,$DB_connexion;
$requete_issue = 'SELECT * FROM '.$cfg_table_prefix.'artists WHERE id_artist="'.$id_artist.'";';
$envoi_requete = mysql_query($requete_issue,$DB_connexion);
if($envoi_requete) $nb_occur = mysql_num_rows($envoi_requete);
if(($nb_occur == 0)||($nb_occur == ""))
{
return array();
}
else
{
$table_resultats = mysql_fetch_array($envoi_requete, MYSQL_BOTH);
mysql_free_result($envoi_requete);
return $table_resultats;
}
}
function get_periodicities()
{
global $DB_connexion,$cfg_table_prefix;
$table_periodicities = array();
$requete_periodicities = 'SELECT * FROM '.$cfg_table_prefix.'periodicities';
$envoi_requete_periodicities = mysql_query($requete_periodicities,$DB_connexion);
if($envoi_requete_periodicities) $nb_occur = mysql_num_rows($envoi_requete_periodicities);
while($table_temp = mysql_fetch_array($envoi_requete_periodicities, MYSQL_NUM))
{
$table_periodicities[$table_temp[0]] = $table_temp[1];
}
if($nb_occur >0) mysql_free_result($envoi_requete_periodicities);
return $table_periodicities;
}
function get_currencies()
{
global $DB_connexion,$cfg_table_prefix;
$table_currencies = array();
$requete_currencies = "SELECT * FROM ".$cfg_table_prefix."currencies";
$envoi_requete_currencies = mysql_query($requete_currencies,$DB_connexion);
if($envoi_requete_currencies) $nb_occur = mysql_num_rows($envoi_requete_currencies);
while($temp = mysql_fetch_array($envoi_requete_currencies, MYSQL_NUM))
$table_currencies[$temp[0]]=$temp[1];
if($nb_occur >0) mysql_free_result($envoi_requete_currencies);
return $table_currencies;
}
function get_conditions()
{
global $DB_connexion,$cfg_table_prefix;
$table_conditions = array();
$requete_conditions = "SELECT * FROM ".$cfg_table_prefix."conditions";
$envoi_requete_conditions = mysql_query($requete_conditions,$DB_connexion);
$table_conditions = array();
if($envoi_requete_conditions) $nb_occur = mysql_num_rows($envoi_requete_conditions);
while($temp = mysql_fetch_array($envoi_requete_conditions, MYSQL_NUM))
array_push($table_conditions,array($temp[0],$temp[1]));
if($nb_occur >0) mysql_free_result($envoi_requete_conditions);
return $table_conditions;
}
function write_log($filename,$content)
{
global $cfg_max_log_entries;
if(($cfg_max_log_entries==0)||($cfg_max_log_entries==""))
return;
if (version_compare(PHP_VERSION,'5','>='))
{
$my_encoding = mb_detect_encoding($content);
if($my_encoding != "UTF-8")
utf8_encode($content);
$dom = new DOMDocument();
$contentdom = new DOMDocument();
if(!$contentdom->loadXML($content))
return;
$content_roots = $contentdom->getElementsByTagName("modifications");
$content_root = $content_roots->item(0);
if((!is_file($filename))||(!$dom->load($filename)))
{
$node = $dom->createElement("modifications");
$rootNode = $dom->appendChild($node);
}
$rootNodes = $dom->getElementsByTagName("modifications");
$rootNode = $rootNodes->item(0);
$newNode = $dom->importNode($content_root->firstChild,true);
$rootNode->appendChild($newNode);
$current_elements = $dom->getElementsByTagName("modification");
$current_size = $current_elements->length;
for($i=0;$i<($current_size-$cfg_max_log_entries);$i++)
{
$loop_nodes = $dom->getElementsByTagName("modification");
$loop_node = $loop_nodes->item(0);
$rootNode->removeChild($loop_node);
}
return $dom->save($filename);
}
else
{
if(!$contentdom = domxml_open_mem($content))
return;
$contentroot = $contentdom->document_element();
if((is_file($filename)&&($dom=domxml_open_file($filename))))
$rootNode = $dom->document_element();
else
{
$dom = domxml_new_doc("1.0");
$rootNode = $dom->create_element("modifications");
$dom->append_child($rootNode);
}
$noeuds = $contentroot->get_elements_by_tagname("modification");
$noeud = $noeuds[0];
$newNode = $noeud->clone_node(true);
$rootNode->append_child($newNode);
$current_size = sizeOf($dom->get_elements_by_tagname("modification"));
for($i=0;$i<($current_size-$cfg_max_log_entries);$i++)
{
$loop_nodes = $dom->get_elements_by_tagname("modification");
$loop_node = $loop_nodes[0];
$rootNode->remove_child($loop_node);
}
return $dom->dump_file($filename);
}
}
function create_thumbnail($file,$destination)
{
global $error_messages,$locales;
$tmp_file = $file['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
array_push($error_messages,$locales["ErrMsg_NoFile_Uploaded"]);
return;
}
$type_file = $file['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
{
array_push($error_messages,$locales["ErrMsg_NoImage_File"]);
return;
}
// on copie le fichier dans le dossier de destination
$name_file = $file['name'];
$check_extensions = get_loaded_extensions();
if(in_array("gd",$check_extensions))
{
switch($type_file)
{
case "image/gif" :
$new_im=imagecreatefromgif($tmp_file);
break;
case "image/jpeg" :
$new_im=imagecreatefromjpeg($tmp_file);
break;
}
$nouvelle_image=imagecreatetruecolor(imagesx($new_im),imagesy($new_im));
imagecopyresized($nouvelle_image,$new_im,0,0,0,0,imagesx($new_im),imagesy($new_im),imagesx($new_im),imagesy($new_im));
imagejpeg($nouvelle_image,COVER.$destination);
// Start the thumbnail generation
$n_width=80; // Fix the width of the thumb nail image
$n_height=120; // Fix the height of the thumb nail image
$im=imagecreatefromjpeg(COVER.$destination);
$width=imagesx($im);
$height=imagesy($im);
$newimage=imagecreatetruecolor($n_width,$n_height);
imagecopyresized($newimage,$im,0,0,0,0,$n_width,$n_height,$width,$height);
imagejpeg($newimage,PREVIEWCOVER.$destination);
}
// End of JPG thumbnail creation
}
function import_publisher($publisher)
{
global $DB_connexion,$cfg_table_prefix;
$requete_publishers = 'SELECT * FROM '.$cfg_table_prefix.'publishers WHERE publisher_name like "'.addslashes($publisher->name).'"';
$envoi_requete_publishers = mysql_query($requete_publishers,$DB_connexion);
$nb_occur_publishers = mysql_num_rows($envoi_requete_publishers);
if(($nb_occur_publishers != 0)&&($nb_occur_publishers != ""))
{
$table_resultats = mysql_fetch_array($envoi_requete_publishers, MYSQL_BOTH);
mysql_free_result($envoi_requete_publishers);
return $table_resultats["id_publisher"];
}
else
{
if($_SESSION["level"]>1)
{
$requete_insert_publisher = "INSERT INTO ".$cfg_table_prefix."publishers (publisher_name) VALUES ('".addslashes(mad_strip($publisher->name))."')";
$resultat_insert_publisher= mysql_query($requete_insert_publisher,$DB_connexion);
if(!$resultat_insert_publisher)
{
return -1;
}
else
{
$idReturn = mysql_insert_id($resultat_insert_publisher);
return $idReturn;
}
}
else return -1;
}
}
function import_label($label)
{
global $DB_connexion,$cfg_table_prefix;
$requete_labels = 'SELECT * FROM '.$cfg_table_prefix.'labels WHERE label_name like "'.addslashes($label->name).'" AND id_publisher="'.$label->publisher.'"';
$envoi_requete_labels = mysql_query($requete_labels,$DB_connexion);
$nb_occur_labels = mysql_num_rows($envoi_requete_labels);
if(($nb_occur_labels != 0)&&($nb_occur_labels != ""))
{
$table_resultats = mysql_fetch_array($envoi_requete_labels, MYSQL_BOTH);
mysql_free_result($envoi_requete_labels);
return $table_resultats["id_label"];
}
else
{
if($_SESSION["level"]>1)
{
$requete_insert_label = "INSERT INTO ".$cfg_table_prefix."labels (label_name,id_publisher) VALUES ('".addslashes(mad_strip($label->name))."','".$label->publisher."')";
$resultat_insert_label= mysql_query($requete_insert_label,$DB_connexion);
if(!$resultat_insert_label)
{
return -1;
}
else
{
$idReturn = mysql_insert_id($resultat_insert_label);
return $idReturn;
} }
else return -1;
}
}
function import_series($series)
{
global $DB_connexion,$cfg_table_prefix;
$requete_series = 'SELECT * FROM '.$cfg_table_prefix.'series WHERE series_name like "'.addslashes($series->name).'" AND id_publisher="'.$series->publisher.'"AND series_volume="'.$series->volume.'" ORDER BY series_volume ASC';
$envoi_requete_series = mysql_query($requete_series,$DB_connexion);
$nb_occur_labels = mysql_num_rows($envoi_requete_series);
if(($nb_occur_series != 0)&&($nb_occur_series != ""))
{
$table_resultats = mysql_fetch_array($envoi_requete_series, MYSQL_BOTH);
mysql_free_result($envoi_requete_series);
return $table_resultats["id_series"];
}
else
{
if($_SESSION["level"]>1)
{
$requete_insert_series = "INSERT INTO ".$cfg_table_prefix."series (series_name,id_label,id_publisher,series_volume) VALUES ('".addslashes(mad_strip($series->name))."','".$series->label."','".$series->publisher."','".$series->volume."')";
$resultat_insert_series = mysql_query($requete_insert_series,$DB_connexion);
if(!$resultat_insert_series)
{
return -1;
}
else
{
$idReturn = mysql_insert_id($resultat_insert_series);
return $idReturn;
} }
else return -1;
}
}
function import_issue($issue)
{
global $DB_connexion,$cfg_table_prefix;
$requete_issue = 'SELECT * FROM '.$cfg_table_prefix.'issues WHERE id_series="'.$issue->id_series.'" AND issue="'.$issue->number.'"';
$envoi_requete_issue = mysql_query($requete_issue,$DB_connexion);
$nb_occur_labels = mysql_num_rows($envoi_requete_issue);
if(($nb_occur_issue != 0)&&($nb_occur_issue != ""))
{
mysql_free_result($envoi_requete_issue);
return true;
}
else
{
if($_SESSION["level"]>1)
{
$requete_insert_issue = "INSERT INTO ".$cfg_table_prefix."issues (id_series,issue,issue_title,issue_month,issue_year,last_date) VALUES ('".$issue->id_series."','".(mad_strip($issue->number))."','".addslashes($issue->title)."','".$issue->month."','".$issue->year."',NOW());";
$resultat_insert_issue= mysql_query($requete_insert_issue,$DB_connexion);
$nb_occur_insert_issue = mysql_affected_rows($resultat_insert_issue);
if($nb_occur_insert_issue == -1)
return false;
else return true;
}
else return false;
}
}
?>