summaryrefslogtreecommitdiffstats
path: root/includes
diff options
context:
space:
mode:
Diffstat (limited to 'includes')
-rw-r--r--includes/admin/views/giglog_admin_page.php10
-rw-r--r--includes/admin/views/giglog_import_gigs.php3
-rw-r--r--includes/venue.php75
3 files changed, 73 insertions, 15 deletions
diff --git a/includes/admin/views/giglog_admin_page.php b/includes/admin/views/giglog_admin_page.php
index b7d8397..5fdcc6b 100644
--- a/includes/admin/views/giglog_admin_page.php
+++ b/includes/admin/views/giglog_admin_page.php
@@ -60,7 +60,7 @@ if ( !class_exists( 'GiglogAdmin_AdminPage' ) ) {
{
$select = '<select name="selectvenue">';
foreach ( GiglogAdmin_Venue::all_venues() AS $venue ) {
- $select .= '<option value="' . $venue -> id. '">'.$venue->vname;
+ $select .= '<option value="' . $venue->id() . '">'. $venue->name();
$select .='</option>';
}
$select .= '</select>';
@@ -98,7 +98,13 @@ if ( !class_exists( 'GiglogAdmin_AdminPage' ) ) {
if ( $selected_city != "ALL" ) {
//second drop down for venue
- $venues = array_merge([[0, "ALL"]], GiglogAdmin_Venue::venues_in_city($selected_city));
+ $venues = GiglogAdmin_Venue::venues_in_city($selected_city);
+ $venue_list = array_merge(
+ [0, "ALL"],
+ array_map(
+ function($v) { return [$v->id(), $v->name()]; },
+ $venues));
+
$selected_venue =
filter_input(INPUT_POST, "selectvenue", FILTER_SANITIZE_SPECIAL_CHARS)
|| $venues[0];
diff --git a/includes/admin/views/giglog_import_gigs.php b/includes/admin/views/giglog_import_gigs.php
index 5874ef8..2423c74 100644
--- a/includes/admin/views/giglog_import_gigs.php
+++ b/includes/admin/views/giglog_import_gigs.php
@@ -85,7 +85,8 @@ if ( !class_exists( 'GiglogAdmin_ImportGigsPage' ) ) {
if (is_numeric($venue))
$newconcert[1] = $venue;
else {
- $newconcert[1] = GiglogAdmin_Venue::find_or_create($venue);
+ $v = GiglogAdmin_Venue::find_or_create($venue);
+ $newconcert[1] = $v->id();
}
//not sure how to check dates, hopefully manual verification of files will take care of it
diff --git a/includes/venue.php b/includes/venue.php
index 4951d6b..08e8bb5 100644
--- a/includes/venue.php
+++ b/includes/venue.php
@@ -19,26 +19,50 @@
if ( !class_exists('GiglogAdmin_Venue') ) {
class GiglogAdmin_Venue
{
- static function create($name)
+ private $id;
+ private $name;
+ private $city;
+ private $address;
+ private $webpage;
+
+ /*
+ * Constructs a new venue object from an array of attributes.
+ * The attributes are expected to be named as in the database,
+ * so this constructor can be used to construct the object
+ * directly from the database row.
+ */
+ private function __construct($attrs)
{
- global $wpdb;
+ $this->id = isset($attrs->id) ? $attrs->id : NULL;
+ $this->name = isset($attrs->wpgvenue_name) ? $attrs->wpgvenue_name : NULL;
+ $this->city = isset($attrs->wpgvenue_city) ? $attrs->wpgvenue_city : NULL;
+ $this->address = isset($attrs->wpgvenue_address) ? $attrs->wpgvenue_address : NULL;
+ $this->webpage = isset($attrs->wpgvenue_webpage) ? $attrs->wpgvenue_webpage : NULL;
+ }
- $wpdb->insert('wpg_venues', array(
- 'id' => '',
- 'wpgvenue_name' => $name
- ));
+ static function create($name)
+ {
+ $attrs = new stdClass();
+ $attrs->wpgvenue_name = $name;
+ $venue = new GiglogAdmin_Venue($attrs);
+ $venue->save();
- return $wpdb->insert_id;
+ return $venue;
}
static function find_or_create($name)
{
global $wpdb;
- $venuesql = 'SELECT id FROM wpg_venues WHERE upper(wpgvenue_name)="' . $name . '"';
+ $venuesql = 'SELECT * FROM wpg_venues WHERE upper(wpgvenue_name)="' . $name . '"';
$results = $wpdb->get_results($venuesql);
- return $results ? $results[0]->id : GiglogAdmin_Venue::create($name);
+ if ($results) {
+ return new GiglogAdmin_Venue($results[0]);
+ }
+ else {
+ return GiglogAdmin_Venue::create($name);
+ }
}
static function all_cities()
@@ -53,9 +77,9 @@ if ( !class_exists('GiglogAdmin_Venue') ) {
{
global $wpdb;
- $results = $wpdb->get_results("select id, CONCAT( IFNULL(wpgvenue_name,''),'-',IFNULL(wpgvenue_city,'')) as vname from wpg_venues");
+ $results = $wpdb->get_results("select * from wpg_venues");
- return ($results);
+ return array_map(function ($r) { return new GiglogAdmin_Venue($r); }, $results);
}
@@ -66,7 +90,34 @@ if ( !class_exists('GiglogAdmin_Venue') ) {
"select id, wpgvenue_name from wpg_venues where wpgvenue_city=?", $city);
$results = $wpdb->get_results($q);
- return array_map(function ($r) { return [$r->id, $r->wpgvenue_name]; }, $results);
+ return array_map(function ($r) { return new GiglogAdmin_Venue($r); }, $results);
+ }
+
+ public function save()
+ {
+ global $wpdb;
+
+ $wpdb->insert('wpg_venues', array(
+ 'id' => '',
+ 'wpgvenue_name' => $this->name
+ ));
+
+ $this->id = $wpdb->insert_id;
+ }
+
+ public function id()
+ {
+ return $this->id;
+ }
+
+ public function name()
+ {
+ return $this->name;
+ }
+
+ public function city()
+ {
+ return $this->city;
}
}
}