/** * will delete old images and create new ones */ private function createImages() { foreach ($this->slider->getImages() as $image) { $image->delete(); } $descriptions = []; $linkTargets = []; foreach ($_POST as $key => $value) { if (strstr($key, "description")) { $descriptions[] = stripslashes($value); } if (strstr($key, "link_target")) { $linkTargets[] = $value; } } $newImages = []; for ($i = 0; $i < count($descriptions); $i++) { $image = Image::create(["slider_id" => $this->slider->id, "title" => $_POST["title"][$i], "description" => $descriptions[$i], "order" => $i + 1, "image_url" => $_POST["image_url"][$i], "image_link" => $_POST["image_link"][$i], "image_link_new_window" => $linkTargets[$i] == "on" ? 1 : 0]); $image->save(); $newImages[] = $image; } $this->slider->images = $newImages; }
/** * creates the first instant of an image */ public function createPlaceholderImage() { $this->images = []; $this->images[] = Image::create(["id" => 0]); }
/** * See: http://plugin.michael-simpson.com/?page_id=101 * Called by install() to create any database tables if needed. * Best Practice: * (1) Prefix all table names with $wpdb->prefix * (2) make table names lower case only * @return void */ protected function installDatabaseTables() { Image::install_table(); Slider::install_table(); }