'; foreach($script as $id => $line) { $ret .= ''; $ret .= utfentities($script[$id]['speech']); $ret .= ''; } $ret .= ''; } return $ret; } static function getStripTranscript($comic, $xml=false) { if(!validate_comic_id($comic)) { return false; } $script = array(); $panels = MTAPIi::getNumPanels((int)$comic); #Panel numbering is 1-indexed, not 0-indexed, for semantic reasons for($i=1; $i <= $panels; $i++) { $script[]= MTAPIi::getPanelTranscript($comic, $i, $xml); } if(!$xml) { return $script; } else { $ret = ''; $ret .= implode($script, ''); $ret .= ''; } return $ret; } static function getCharactersByPanel($comic, $panel, $speakersOnly=false) { if(!validate_panel_id($comic, $panel)) { return false; } $panels = MTAPIi::getNumPanels($comic); $query = 'SELECT DISTINCT speaker FROM transcript WHERE strip = '.(int)$comic; $query .= ' AND panel = '.(int)$panel; $query .= ' AND speaker NOT LIKE "#%" '; if($speakersOnly) { $query .= " AND search != '' "; } $query .= 'ORDER BY speaker'; return query_to_array($query); } static function getCharactersByStrip($comic, $speakersOnly=false) { if(!validate_comic_id($comic)) { return false; } $query = 'SELECT DISTINCT speaker FROM transcript WHERE strip = '.(int)$comic; $query .= ' AND speaker NOT LIKE "#%" '; if($speakersOnly) { $query .= " AND search != '' "; } $query .= 'ORDER BY speaker'; return query_to_array($query); } static function getStripTitle($comic) { if(!validate_comic_id($comic)) { return false; } $strip = load_strip($comic); return $strip['title']; } static function getStripPubdate($comic) { if(!validate_comic_id($comic)) { return false; } $strip = load_strip($comic); return $strip['published']; } static function getStripType($comic) { if(!validate_comic_id($comic)) { return false; } $strip = load_strip($comic); return $strip['type']; } static function getStripTypeName($comic) { if(!validate_comic_id($comic)) { return false; } #load_strip() really isn't the best tool for this job, as it would mean two queries instead of one $query = 'SELECT description FROM strip_t JOIN strip ON strip.type = strip_t.id WHERE strip.id = '.(int)$comic; $qr = query_to_array($query); return $qr[0]; } static function getStripMeta($comic) { if(!validate_comic_id($comic)) { return false; } $query = 'SELECT meta_t.id FROM meta_t JOIN meta ON meta_t.id = meta.meta JOIN strip_t ON meta.type = strip_t.id JOIN strip ON strip.type = strip_t.id WHERE strip.id = '.(int)$comic.' ORDER BY meta_t.id'; $qr = query_to_array($query); return $qr; } static function getStrip($comic) { if(!validate_comic_id($comic)) { return false; } $strip = load_strip($comic); $strip['type'] = self::getStripTypeName($strip['type']); $strip['number'] = self::getStripNumberInType($comic); unset($strip['udate']); return $strip; } static function getStripNumberInType($comic) { if(!validate_comic_id($comic)) { return false; } $type = self::getStripType($comic); $query = "SELECT count(*) FROM strip_t JOIN strip ON strip_t.id = strip.type WHERE strip.id < {$comic}+1 AND strip.type = {$type}"; $qr = query_to_array($query); return $qr[0]; } static function getStripMetaName($comic) { if(!validate_comic_id($comic)) { return false; } $query = 'SELECT meta_t.name FROM meta_t JOIN meta ON meta_t.id = meta.meta JOIN strip_t ON meta.type = strip_t.id JOIN strip ON strip.type = strip_t.id WHERE strip.id = '.(int)$comic.' ORDER BY meta_t.name'; $qr = query_to_array($query); return $qr; } static function getTypeMeta($type) { if(!validate_type_id($type)) { return false; } $query = 'SELECT meta_t.id FROM meta_t JOIN meta ON meta_t.id = meta.meta JOIN strip_t ON meta.type = strip_t.id WHERE strip_t.id = '.(int)$type.' ORDER BY meta_t.id'; $qr = query_to_array($query); return $qr; } static function getTypeMetaName($type) { if(!validate_type_id($type)) { return false; } $query = 'SELECT meta_t.name FROM meta_t JOIN meta ON meta_t.id = meta.meta JOIN strip_t ON meta.type = strip_t.id WHERE strip_t.id = '.(int)$type.' ORDER BY meta_t.name'; $qr = query_to_array($query); return $qr; } static function getStripsByType($type) { if(!validate_type_id($type)) { return false; } $query = 'SELECT strip.id FROM strip WHERE strip.type = '.(int)$type.' ORDER BY strip.id'; $qr = query_to_array($query); return $qr; } static function getStripsByMeta($meta) { if(!ctype_digit($meta) || $meta < 1) { return false; } $query = 'SELECT strip.id FROM strip JOIN strip_t ON strip.type = strip_t.id JOIN meta ON strip_t.id = meta.type JOIN meta_t ON meta.meta = meta_t.id WHERE meta_t.id = '.(int)$meta.' ORDER BY strip.id'; $qr = query_to_array($query); return $qr; } } ?>