Files
bm/public_html/public/cms/scripts/import-persons.php
2025-09-24 13:26:28 +02:00

223 lines
6.5 KiB
PHP

<?php
define(ROOT, "../../");
require_once(ROOT."include/db.inc.php");
require_once(ROOT."include/config.inc.php");
define(ARTIST_LIST, 593);
define(AUTHOR_LIST, 594);
$artists = array(437 => "Assmann Peter",
445 => "Berger Gabriele",
217 => "Buttinger-Caspar Andreas",
483 => "Eisenmann Therese",
227 => "Fischbacher Franz",
205 => "Hager Ernst",
485 => "Kraml Peter",
237 => "Luger Christoph",
519 => "Mayrhofer Christa",
471 => "Riedl Alois",
481 => "Riedl Annerose",
327 => "Salzmann Heinrich",
415 => "Starrermayr Astrid",
387 => "Steininger Erich",
343 => "Strobl Thomas");
$authors = array(519 => "Donhauser Michael",
213 => "Fischer Eva",
225 => "Fuchs Margarita",
235 => "Habringer Rudolf",
449 => "Janacs Christoph",
209 => "Krenner Günter Giselher",
301 => "Pauli Herbert",
219 => "Rathenböck Elisabeth Vera",
221 => "Schmid Ernst",
469 => "Schöggl Ernst Reinhard",
431 => "Strauß Ester",
229 => "Wall Richard");/*,
431 => "Wiplinger Peter Paul");*/
// === SQL FUNCTIONS =========================================================================== //
# selects a database
function select($db){
mysql_select_db($db);
}
# executes an insert query
function insert($query){
mysql_query($query);
return mysql_insert_id();
}
# executes an update query
function update($query){
mysql_query($query);
}
# returns the result set
function getAll($query){
return mysql_query($query);
}
# returns one result line
function getOne($query){
$r = mysql_query($query);
return mysqli_fetch_array($r, MYSQLI_ASSOC);
}
// ==== IMPORT FUNCTIONS ======================================================================== //
# imports an artist or author
function importPerson($eventId, $name, $listId){
echo "import person $name<br>\n";
//get ticket page
$query = sprintf("SELECT childObjects FROM bruckmuehle_index WHERE id = %d", $eventId);
$line = getOne($query);
$childObjects = explode("\t", $line['childObjects']);
$query = sprintf("SELECT classId FROM bruckmuehle_index WHERE id = %d", $childObjects[0]);
$line = getOne($query);
//get page contents
$query = sprintf("SELECT buildingBlocks FROM bruckmuehle_stdpage WHERE id = %d", $line['classId']);
$line = getOne($query);
$buildingBlocks = explode("\t", $line['buildingBlocks']);
$blocks = array();
foreach($buildingBlocks as $b){
$bl = explode(",", $b);
switch($bl[0]){
case "textblock": $blocks[] = copyTextBlock($bl[1]);
break;
case "headingblock": $blocks[] = copyHeadingBlock($bl[1]);
break;
case "imageblock": $blocks[] = copyImageBlock($bl[1]);
break;
case "fileblock": $blocks[] = copyFileBlock($bl[1]);
break;
case "galleryblock": $blocks[] = copyGalleryBlock($bl[1]);
break;
}
}
//create person page
$query = sprintf("INSERT INTO bruckmuehle_stdpage (template, buildingBlocks) VALUES ('bruckmuehle.html', %s)",
sqlstring(implode("\t", $blocks)));
$classId = insert($query);
$query = sprintf("INSERT INTO bruckmuehle_index (name, class, classId, parentId, lastUpdate, editable, listable, visible)
VALUES (%s, 'PersonPage', %d, 0, NOW(), '2', '1', 1)",
sqlstring($name),
$classId);
$personPageId = insert($query);
//create person
$query = sprintf("INSERT INTO bruckmuehle_person (job) VALUES ('')");
$classId = insert($query);
$query = sprintf("INSERT INTO bruckmuehle_index (name, class, classId, parentId, lastUpdate, editable, listable, visible, childObjects)
VALUES (%s, 'Person', %d, %d, NOW(), '2', '1', 1, %s)",
sqlstring($name),
$classId,
$listId,
sqlstring($personPageId));
$personId = insert($query);
$query = sprintf("UPDATE bruckmuehle_index SET parentId = %d WHERE id = %d",
$personId,
$personPageId);
update($query);
//update person list
$query = sprintf("SELECT childObjects FROM bruckmuehle_index WHERE id = %d", $listId);
$line = getOne($query);
if(empty($line['childObjects'])){
$childObjects = $personId;
}
else{
$childObjects = $line['childObjects']."\t".$personId;
}
$query = sprintf("UPDATE bruckmuehle_index SET childObjects = %s WHERE id = %d",
sqlstring($childObjects),
$listId);
update($query);
}
# copies a text block
# returns id
function copyTextBlock($id){
$line = getOne(sprintf("SELECT * FROM bruckmuehle_textblock WHERE id = %d", $id));
$query = sprintf("INSERT INTO bruckmuehle_textblock (content) VALUES (%s)",
sqlstring($line['content']));
$blockId = insert($query);
return "textblock,$blockId";
}
# copies a heading block
# returns id
function copyHeadingBlock($id){
$line = getOne(sprintf("SELECT * FROM bruckmuehle_headingblock WHERE id = %d", $id));
$query = sprintf("INSERT INTO bruckmuehle_headingblock (content, level) VALUES (%s, %d)",
sqlstring($line['content']),
$line['level']);
$blockId = insert($query);
return "headingblock,$blockId";
}
# copies an image block
# returns id
function copyImageBlock($id){
$line = getOne(sprintf("SELECT * FROM bruckmuehle_imageblock WHERE id = %d", $id));
$query = sprintf("INSERT INTO bruckmuehle_imageblock (file, caption, hyperlink) VALUES (%s, %s, %s)",
sqlstring($line['file']),
sqlstring($line['caption']),
sqlstring($line['hyperlink']));
$blockId = insert($query);
return "imageblock,$blockId";
}
# copies a file block
# returns id
function copyFileBlock($id){
$line = getOne(sprintf("SELECT * FROM bruckmuehle_fileblock WHERE id = %d", $id));
$query = sprintf("INSERT INTO bruckmuehle_fileblock (file, displayName) VALUES (%s, %s)",
sqlstring($line['file']),
sqlstring($line['displayName']));
$blockId = insert($query);
return "fileblock,$blockId";
}
# copies a gallery block
# returns id
function copyGalleryBlock($id){
$line = getOne(sprintf("SELECT * FROM bruckmuehle_galleryblock WHERE id = %d", $id));
$query = sprintf("INSERT INTO bruckmuehle_galleryblock (galleryId) VALUES (%d)",
$line['galleryId']);
$blockId = insert($query);
return "galleryblock,$blockId";
}
// === MAIN =================================================================================================== //
mysql_connect(DBHOST, DBUSER, DBPWD);
mysql_select_db(DBNAME);
foreach($artists as $i=>$j){
importPerson($i, $j, ARTIST_LIST);
}
echo "<hr>";
foreach($authors as $i=>$j){
importPerson($i, $j, AUTHOR_LIST);
}
mysql_close();
?>