query( 'DELETE FROM strip_t WHERE id=' . (int)$_GET['delete'] ) ) { adminlog("Error deleting type ".(int)$_GET['delete'], MTS_TYPE, MTA_DELETE, E_WARNING); mtdie("Error on deletion of existing type: " . htmlentities(mysqli_error()), 'SQL Error'); } if(! $mtdb->query( 'DELETE FROM meta WHERE type=' . (int)$_GET['delete'] ) ) { adminlog("Error on deletion of type ".(int)$_GET['delete']."'s metadata.", MTS_TYPE, MTA_DELETE, E_WARNING); mtdie("Error on deletion of existing type's metadata: " . htmlentities(mysqli_error()), 'SQL Error'); } $info.='

Deleted type successfully.

'; adminlog("Deleted type ".(int)$_GET['delete'], MTS_TYPE, MTA_DELETE); } if( isset($_POST['action']) && $_POST['action'] == 'new_type' ) { check_nonce('new-type'); $name = trim($_POST['name']); $desc = trim($_POST['description']); if( check_type_name($name) ) { if(! $mtdb->query( sprintf( 'INSERT INTO strip_t(name, description) VALUES("%s", "%s")', mysqli_real_escape_string($mtdb->link, $name), mysqli_real_escape_string($mtdb->link, $desc)) ) ) { adminlog("Error on insertion of new type.", MTS_TYPE, MTA_INSERT, E_WARNING); mtdie("Error on insertion of new type: ". htmlentities(mysqli_error()), 'SQL Error'); } } $info.='

New type created successfully.

'; adminlog("Type '".$name."' created successfully.", MTS_TYPE, MTA_ADD); } if( isset($_POST['action']) && $_POST['action'] == 'edit_type' ) { $id = (int)$_POST['type_id']; check_nonce("save-type-$id"); $name = trim($_POST['name']); $desc = trim($_POST['description']); $meta = $_POST['meta']; $m_delete = $mtdb->getAll("SELECT meta FROM meta WHERE type = $id"); $m_insert = array(); // Key listed in both Insert and Delete lists, so remove from both == Do Nothing foreach( $m_delete as $k=>$v ) { if( array_key_exists( $v->meta, $meta ) ) { unset($m_delete[$k]); unset($meta[$v->meta]); } else { $m_delete[$k] = 'meta=' . (int)$v->meta; } } // Key listed only in Insert list, make proper format foreach( $meta as $k=>$v ) { $m_insert[] = "($id," . (int)$k . ')'; } if( check_type_name( $name ) ) { if( !$mtdb->query( sprintf( 'UPDATE strip_t SET name = "%s", description = "%s" WHERE id = %s', mysqli_real_escape_string($mtdb->link, $name), mysqli_real_escape_string($mtdb->link, $desc), $id)) ) { adminlog("Error on updating type ".$id, MTS_TYPE, MTA_UPDATE, E_WARNING); mtdie("Error on update of existing type: ". htmlentities(mysqli_error()), 'SQL Error'); } $sql_insert = "INSERT INTO meta (type,meta) VALUES " . implode(',',$m_insert); $sql_delete = "DELETE FROM meta WHERE type=$id AND ( " . implode(' OR ',$m_delete) . ' )'; $mtdb->query('START TRANSACTION'); if( count($m_insert) ) if(! $mtdb->query( $sql_insert ) ) { adminlog("Error inserting new metatype association data for type ".$id, MTS_TYPE, MTA_INSERT, E_WARNING); mtdie("There was an error inserting new metatype association data. Transaction aborted. $sql_insert"); } if( count($m_delete) ) if(! $mtdb->query( $sql_delete ) ) { adminlog("Error deleting old metatype association data for type ".$id, MTS_TYPE, MTA_REMOVE, E_WARNING); mtdie("There was an error deleting old metatype data. Transaction aborted. $sql_delete"); } $mtdb->query('COMMIT'); } else { $error.='

Invalid type name!

'; } $info.='

Changes to type saved successfully.

'; adminlog("Type ".$id." updated.", MTS_TYPE, MTA_UPDATE); } //display all types $types = $mtdb->getAll("SELECT strip_t.id AS id, strip_t.name AS name, strip_t.description AS description, COUNT(strip.id) AS strips FROM strip_t LEFT JOIN strip ON strip.type = strip_t.id GROUP BY strip_t.id"); adminhead('Types'); adminmenu(); ?>

Type Management

Make changes to the types which categorize the comics.

getAll("SELECT meta_t.name AS name FROM strip_t JOIN meta ON meta.type = strip_t.id JOIN meta_t ON meta.meta = meta_t.id WHERE strip_t.id = $s->id"); $meta = implode(', ', array_map('_getMetaNameFromObject', $metas) ); ?> >
Type # Name Description Strips Metatypes
id; ?> name); ?> description); ?> strips ?> Edit Delete

Create New Type

Name
Description