Example #1
0
 public function run()
 {
     $faker = Faker\Factory::create();
     for ($i = 0; $i < 50; $i++) {
         UserModel::create(['name' => $faker->firstName . " " . $faker->lastName, 'email' => $faker->safeEmail, 'password' => 'password', 'phone' => '']);
     }
 }
 public function register($user_name, $password, $first_name, $last_name)
 {
     if (!is_null(UserModel::findFirst(array('user_name' => $user_name)))) {
         return UserHandler::ERROR_EXISTS;
     }
     $user = UserModel::create(array('user_name' => $user_name, 'password' => Utilities::hash($password, static::$salt), 'first_name' => $first_name, 'last_name' => $last_name, 'lang' => I18N::lang()));
     $this->_login($user);
     return $user;
 }
Example #3
0
 public function run()
 {
     $faker = Faker\Factory::create();
     $access = [1 => 'staff', 2 => 'associate'];
     for ($i = 0; $i < 5; $i++) {
         $user = UserModel::create(['name' => $faker->firstName . " " . $faker->lastName, 'email' => $faker->safeEmail, 'password' => 'password', 'phone' => '']);
         $staff = StaffModel::create(['user_id' => $user->id, 'title' => '', 'access' => $faker->numberBetween(1, 2), 'instruction' => (int) true]);
         Artisan::call('scheduler:services', ['staff' => $staff->id, 'level' => $access[$staff->access]]);
     }
 }
Example #4
0
 function create()
 {
     $usr = new UserDAO();
     $usr->setName($_POST['name']);
     $usr->setAge($_POST['age']);
     $model = new UserModel();
     $res = $model->create($usr);
     if ($res == 1) {
         header("Location: " . SITE_URL . "/user/addnew/?e=1");
     }
 }
Example #5
0
 public function registerAction()
 {
     /**
      * ToDo: Registration success messages
      */
     if (isset($_POST["registerForm"]) && !empty($_POST["registerForm"])) {
         $filteredUserInfo = array();
         foreach ($_POST["registerForm"] as $key => $value) {
             $filteredUserInfo[$key] = filterGetValue($value);
         }
         $model = new UserModel();
         $model->create($filteredUserInfo);
     }
     $this->render("register", "user");
 }
 public function run()
 {
     $users = array(array('name' => "Brian Jacobs", 'email' => "*****@*****.**", 'password' => "nikegolf", 'phone' => '585-415-9323', 'address' => '284 Chambers St. Spencerport, NY'), array('name' => "David VanScott", 'email' => "*****@*****.**", 'password' => "alpha312", 'phone' => '585-576-8260', 'address' => '2145 East Ave. Apt H Rochester, NY 14610'));
     foreach ($users as $user) {
         UserModel::create($user);
     }
     $staff = array(array('user_id' => 1, 'access' => 2, 'title' => "Senior Instructor", 'instruction' => (int) true), array('user_id' => 2, 'access' => 3, 'title' => "Web Developer"));
     foreach ($staff as $s) {
         $item = StaffModel::create($s);
         // Create general availability
         for ($d = 0; $d <= 6; $d++) {
             StaffScheduleModel::create(array('staff_id' => $item->id, 'day' => $d, 'availability' => '9:00-17:00'));
         }
     }
 }
 protected function populateTables()
 {
     $users = [['name' => "Brian Jacobs", 'email' => "*****@*****.**", 'password' => "nikegolf", 'phone' => '585-415-9323', 'address' => '284 Chambers St. Spencerport, NY'], ['name' => "David VanScott", 'email' => "*****@*****.**", 'password' => "alpha312", 'phone' => '585-576-8260', 'address' => '2145 East Ave. Apt H Rochester, NY 14610']];
     foreach ($users as $user) {
         UserModel::create($user);
     }
     $staff = [['user_id' => 1, 'access' => 3, 'title' => "Director of Instruction", 'instruction' => (int) true], ['user_id' => 2, 'access' => 4, 'title' => "Web Developer"]];
     foreach ($staff as $s) {
         $item = StaffModel::create($s);
         // Create general availability
         for ($d = 0; $d <= 6; $d++) {
             StaffScheduleModel::create(['staff_id' => $item->id, 'day' => $d, 'availability' => '9:00-17:00']);
         }
     }
 }
Example #8
0
 public function createAction()
 {
     CApp::setTitle(CApp::getAppName() . " | " . CApp::getTranslate('createUser'));
     if ($_SESSION["userRole"] == CApp::settings("USER_ROLES")->ADMIN) {
         $model = new UserModel();
         if (!empty($_POST["user"])) {
             foreach ($_POST["user"] as $key => $value) {
                 $arrPost[$key] = filterGetValue($value);
             }
             $model->create($arrPost);
         }
         $this->render("create", "user");
     } else {
         CApp::redirect("/");
     }
 }
 public function run()
 {
     // Start a customers array
     $customers = array();
     if (App::environment() != 'production') {
         $faker = Faker\Factory::create();
     }
     // Open the file for reading
     $handle = fopen(App::make('path.base') . '/CustomerList.csv', 'r');
     // Make sure we have a file to use
     if ($handle) {
         $rowCount = 0;
         while (($data = fgetcsv($handle)) !== false) {
             // The first row should be ignored...
             if ($rowCount > 0) {
                 // Clean up the names
                 $name = str_replace('    ', ' ', $data[0]);
                 $name = str_replace('   ', ' ', $name);
                 $name = str_replace('  ', ' ', $name);
                 $name = trim($name);
                 $name = ucwords($name);
                 // Don't use real email addresses in DEV
                 $email = App::environment() == 'production' ? $data[3] : $faker->safeEmail;
                 // Clean up the phone number
                 $phone = preg_replace('~.*(\\d{3})[^\\d]*(\\d{3})[^\\d]*(\\d{4}).*~', '$1-$2-$3', $data[2]);
                 // Set the address
                 $address = $data[1];
                 $customers[] = array('name' => $name, 'email' => $email, 'phone' => $phone, 'address' => $address, 'password' => Hash::make('password'));
             }
             ++$rowCount;
         }
     }
     // Close the file
     fclose($handle);
     foreach ($customers as $customer) {
         UserModel::create($customer);
     }
 }
Example #10
0
 public function createAction()
 {
     if (!isset($_POST['name']) && !isset($_POST['prenom']) && !isset($_POST['pseudo']) && !isset($_POST['password']) && !isset($_POST['mail'])) {
         return json_encode(["error" => "titre_article missing"]);
     }
     $name = strip_tags($_POST['name']);
     $name = htmlentities($name);
     $name = trim($name);
     $prenom = strip_tags($_POST['prenom']);
     $prenom = htmlentities($prenom);
     $prenom = trim($prenom);
     $pseudo = strip_tags($_POST['pseudo']);
     $pseudo = htmlentities($pseudo);
     $pseudo = trim($pseudo);
     $password = strip_tags($_POST['password']);
     $password = htmlentities($password);
     $password = trim($password);
     $password = sha1($password);
     $mail = strip_tags($_POST['email']);
     $mail = htmlentities($mail);
     $mail = trim($mail);
     $user = UserModel::create($this->pdo, $name, $prenom, $pseudo, $password, $mail);
     return json_encode(["message" => "Créé !", "name" => $name, "prenom" => $prenom, "pseudo" => $pseudo, "password" => $password, "mail" => $mail]);
 }
 /**
  * Creates a new user using the information received in the parameters
  *
  * @global Array $STRINGS
  * @param Array $params
  */
 public function users_create($params)
 {
     global $STRINGS;
     $valid = true;
     $duplicate = false;
     // check all the params
     foreach ($params as $param) {
         if (empty($param)) {
             $valid = false;
             break;
         }
     }
     //remove url params
     $params = array_slice($params, 2);
     // cast the params to object
     $user = (object) $params;
     //encrypt password
     $user->password = sha1($user->password);
     // check if the identifier is already registred
     if (UserModel::find_by_identifier($user->identifier) == true) {
         $duplicate = true;
     }
     if ($valid && !$duplicate) {
         $result = UserModel::create($user);
         $result == true ? $alert = BootstrapHelper::alert('success', $STRINGS['event:success'], $STRINGS['user:create:success']) : ($alert = BootstrapHelper::alert('error', $STRINGS['event:error'], $STRINGS['user:create:failed']));
         $this->_data->page = 0;
         $this->_data->users = UserModel::find_page(0);
         new AdminUsersView($this->_data, $alert);
     } else {
         if (!$valid && !$duplicate) {
             new AdminUserCreateView(null, BootstrapHelper::alert('error', $STRINGS['event:error'], $STRINGS['user:create:failed']));
         } else {
             if ($duplicate) {
                 $this->_data->page = 0;
                 $this->_data->users = UserModel::find_page(0);
                 new AdminUsersView($this->_data, BootstrapHelper::alert('error', $STRINGS['event:error'], $STRINGS['user:create:duplicate']));
             }
         }
     }
 }
 /**
  * Tests the delete method
  */
 public function testDelete()
 {
     //create fake user
     $user = new stdClass();
     $user->id = '999997';
     $user->identifier = 'tester3';
     //store the fake user
     UserModel::create($user);
     //delete the fake user
     UserModel::delete('999997');
     //check that the user is gone
     $this->assertFalse(UserModel::find('999997'));
 }
Example #13
0
 /**
  * ��������� ������ ������ ������
  * @param $id
  * @throws Kohana_Exception
  */
 public function addResponse($id)
 {
     try {
         // ���������� �� +1 ����� ���������� ������
         $this->_model->total_responses = $this->_totalResponses + 1;
         $this->_model->save();
         // ���������� �� +1 ����� ���������� �������
         $modelAnswer = QuizAnswerModel::find($id);
         $modelAnswer->responses_count = $this->_answers[$id]['count'] + 1;
         $modelAnswer->save();
         UserModel::create(['user_name' => 'TEST', 'ip' => \App::instance()->http()->getIpAddress()]);
         // ��������� ������ ������
         QuizResponsesModel::create(['user_id' => $this->_userId, 'quiz_id' => $this->_quizId, 'quiz_answer_id' => $id]);
     } catch (Exception $e) {
     }
     // ��������� �������
     $this->find();
 }
 public function shebei_save()
 {
     $data['id'] = $this->_post('id');
     $data['num'] = $this->_post('num');
     $data['home'] = $this->_post('home');
     $data['tsj'] = $this->_post('tsj');
     $data['xsq'] = $this->_post('xsq');
     $shiyong = new UserModel('shiyong');
     if (!$shiyong->create()) {
         $this->error($shiyong->getError());
     } else {
         $list = $shiyong->save($data);
         if ($list) {
             $this->success('修改成功!', U('User/index'));
         } else {
             $this->error('修改失败!');
         }
     }
 }
 public function adding()
 {
     $data['username'] = $this->_post('username');
     $data['yourname'] = $this->_post('yourname');
     $data['password'] = md5($this->_post('password'));
     $data['status'] = $this->_post('status');
     $user = new UserModel('user');
     if (!$user->create()) {
         // 如果创建失败 表示验证没有通过 输出错误提示信息
         $this->error($user->getError());
     } else {
         $list = $user->add($data);
         $id['role_id'] = $this->_post('role_id');
         $id['user_id'] = $list;
         $role = M('roleUser')->add($id);
         $shiyong = M('shiyong');
         $data_id['pid'] = $list;
         $data_id['tsj'] = '143';
         $data_id['xsq'] = '136';
         $slist = $shiyong->add($data_id);
         $testuser = M('testuser');
         $test['pid'] = $list;
         $testlist = $testuser->add($test);
         if ($list and $role and $slist and $testlist) {
             $this->success('注册成功!', U('User/index'));
         } else {
             $this->error('注册失败!');
         }
     }
     /*
     if($data['username']!='' and $data['yourname']!=''){
     	if($pwd==$pwds and $pwd!='' and $pwds!=''){
     				$user = M('user');
     				$data['password'] = md5($pwds);
     				$list=$user->data($data)->add();
     				if($list){
     					$this->success('添加成功','index');
     				}else{
     					$this->error('添加失败,清理联系管理员!');
     				}
     	}else{
     		$this->error('密码有误!!!');
     	}
     }else{
     	$this->error('员工账号和用户姓名不能为空!!!');
     }
     */
 }
Example #16
0
 public function saveuserinfo()
 {
     $id = session('userid');
     if (!empty($id)) {
         $postData = array_intersect_key($_POST, array_flip(['id', 'nickname', 'email', 'telphone']));
         $user = new UserModel();
         $data = $user->create($postData);
         if (false !== $user->save()) {
             $this->message2('编辑成功', 'reinfo');
         } else {
             $this->message2('编辑失败' . $user->getError(), 'reinfo');
         }
     } else {
         $this->message2('请选择编辑对象', __URL__ . '/index');
     }
 }
 /**
 * Create a user in our mysql DB works with form and $_Post
 * @author TSCM
 */
 public function createUser()
 {
     if (isset($_POST['createUser'])) {
         unset($_POST['createUser']);
         //delete the content of the createBook button
         $_POST['password'] = Utilities::hash($_POST['password'], USER_SALT);
         UserModel::create($_POST);
         //create book
     }
 }
Example #18
0
 public function passsave()
 {
     $user = new UserModel();
     $id = I('id', 0);
     if ($data = $user->create()) {
         if (0 < $id) {
             $data['password'] = md5($data['password']);
             if (false !== $user->where('id=\'' . $id . '\'')->data($data)->save()) {
                 $this->message('操作成功', __URL__ . '/index');
             } else {
                 $this->message('操作失败:' . $user->getDbError(), __URL__ . '/index');
             }
         } else {
             $this->message('请选择编辑用户', __URL__ . '/index');
         }
     } else {
         $this->message('操作失败:数据验证( ' . $user->getError() . ' )', __URL__ . '/index');
     }
 }
Example #19
0
 public function saveuserinfo()
 {
     $id = session('userid');
     if (!empty($id)) {
         $user = new UserModel();
         $data = $user->create();
         if (false !== $user->save()) {
             $this->message2('编辑成功', 'reinfo');
         } else {
             $this->message2('编辑失败' . $user->getError(), 'reinfo');
         }
     } else {
         $this->message2('请选择编辑对象', __URL__ . '/index');
     }
 }
//if(isset($_REQUEST['clear_tables']) && $_REQUEST['clear_tables'] == true) {
$db->drop('user');
$db->drop('book');
$db->drop('order');
$db->drop('position');
$db->drop('genre');
$db->drop('bookgenre');
$db->drop('type');
// }
TypeModel::create(array('key' => 'Taschenbuch2', 'name' => 'Taschenbuch2'));
//Check if there is the user Table, if not, create some entries
if (!$db->tableExists('user')) {
    UserModel::create(array('user_name' => 'tony', 'password' => Utilities::hash('12345', USER_SALT), 'first_name' => 'Tony', 'last_name' => 'Stark', 'lang' => 'de', 'isAdmin' => false, 'streetname' => 'Schwalbenweg', 'streetnumber' => '10a', 'zip' => 3012, 'city' => 'Bern', 'state' => 'Schweiz', 'email' => '*****@*****.**'));
    UserModel::create(array('user_name' => 'hulk', 'password' => Utilities::hash('12345', USER_SALT), 'first_name' => 'Bruce', 'last_name' => 'Banner', 'lang' => 'de', 'isAdmin' => true, 'streetname' => 'Tiefenaugasse', 'streetnumber' => '17', 'zip' => 3012, 'city' => 'Bern', 'state' => 'Schweiz', 'email' => '*****@*****.**'));
    UserModel::create(array('user_name' => 'thor', 'password' => Utilities::hash('12345', USER_SALT), 'first_name' => 'Thor', 'last_name' => 'Odinsson', 'lang' => 'de', 'isAdmin' => false, 'streetname' => 'Molkereiweg', 'streetnumber' => '31', 'zip' => 3217, 'city' => 'Thun', 'state' => 'Schweiz', 'email' => '*****@*****.**'));
    UserModel::create(array('user_name' => 'max', 'password' => Utilities::hash('12345', USER_SALT), 'first_name' => 'Max', 'last_name' => 'Muster', 'lang' => 'en', 'isAdmin' => true, 'streetname' => 'Ahornweg', 'streetnumber' => '4', 'zip' => 4212, 'city' => 'New York', 'state' => 'USA', 'email' => '*****@*****.**'));
}
//Check if there is the book Table, if not, create some entries
if (!$db->tableExists('book')) {
    BookModel::create(array('name' => "Angel Of The Dark", 'isbn' => "0062073451", 'cover' => "theme/images/books/0062073451.jpg", 'title' => "Angel Of The Dark", 'author' => "Sidney Sheldon", 'year_of_publication' => 2012, 'price' => 11.1, 'currency' => "CHF", 'available' => "Sofort", 'language' => "EN", 'description' => "As the future prima, or head witch of her clan, Angela McAllister is expected to bond with her consort during her twenty-first year, thus ensuring that she will come into her full powers at the appointed time. The clock is ticking down, and her consort has yet to make an appearance. Instead, her dreams are haunted by a man she's never seen, the one she believes must be her intended match.\n\nBut with time running out, and dark forces attempting to seize her powers for their own, Angela is faced with a terrible choice: give up her dreams of the man she may never meet and take the safer path, or risk leaving her clan and everyone in it at the mercy of those who seek their ruin.\n\nDarkangel is the first book in the Witches of Cleopatra Hill, a paranormal romance series set in the haunted town of Jerome, Arizona.", 'original_language' => "EN", 'number_of_pages' => 400, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Krimi"));
    BookModel::create(array('name' => "Max fährt mit", 'isbn' => "3197495950", 'cover' => "theme/images/books/3197495950.jpg", 'title' => "Max fährt mit", 'author' => "Ulrike Fischer", 'year_of_publication' => 2014, 'price' => 9.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "DE", 'description' => "Zielgruppe: Kinder ab 2 Jahren Auf dem Bauernhof gibt es viele Fahrzeuge. Doch wie staunt Max erst, als er in die Stadt kommt! Max fährt mit ist der sechste Titel in der Reihe bilibrini – die kleinen Zweisprachigen und widmet sich in kurzen, einfachen Sätzen dem Thema Fahrzeuge. Die farbenfrohen Illustrationen laden Kinder ab 2 Jahren zum Betrachten ein. Die Wort-Bild-Leiste auf jeder Seite greift wichtige Gegenstände erneut auf und ermöglicht eine aktive Förderung des Wortschatzes schon für die Kleinsten.", 'original_language' => "DE", 'number_of_pages' => 16, 'version' => 1, 'type' => "Hardcover Buch", 'genre' => "Kinderbuch"));
    BookModel::create(array('name' => "Wind", 'isbn' => "3453410831", 'cover' => "theme/images/books/3453410831.jpg", 'title' => "Wind", 'author' => "Stephen King", 'year_of_publication' => 2013, 'price' => 24.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "DE", 'description' => "Ein Sturm zieht auf\n\n\nRoland Deschain, der letzte Revolvermann, und seine Gefährten haben den Grünen Palast hinter sich gelassen. Als sie auf dem Pfad des Balkens ins Land Donnerschlag unterwegs sind, zieht ein heftiger Sturm herauf, und sie finden Schutz in einer verlassenen Hütte. Dort erzählt Roland seinen Begleitern, was in seiner Jugend geschah, nachdem er unbeabsichtigt seine Mutter umgebracht hatte: Sein Vater schickte ihn zu einer entlegenen Ranch, wo grausame Morde stattfanden. Alle Anzeichen deuteten auf einen Gestaltwandler als Täter hin, und es gab nur einen Zeugen – einen kleinen Jungen, der jetzt seines Lebens nicht mehr sicher war.\n\n\nMit Wind legt Stephen King einen achten Roman seines großen Endzeitepos um den Dunklen Turm vor, bei dem es sich nach eigenem Bekunden um sein wichtigstes Werk handelt. Derzeit befindet sich eine Verfilmung des gesamten Zyklus in der Vorproduktion.", 'original_language' => "EN", 'number_of_pages' => 432, 'version' => 1, 'type' => "Hardcover Buch", 'genre' => "Fantasy"));
    BookModel::create(array('name' => "Ein perfekter Freund", 'isbn' => "3257233787", 'cover' => "theme/images/books/3257233787.jpg", 'title' => "Ein perfekter Freund", 'author' => "Martin Suter\n", 'year_of_publication' => 2003, 'price' => 15.99, 'currency' => "CHF", 'available' => "Vergriffen", 'language' => "DE", 'description' => "Welch ein Erwachen! Kaum Gefühl im Gesicht, keine Ahnung, wo man ist. Und die Frau, die sich so rührend um einen kümmert, soll die eigene Freundin sein? Der Journalist Fabio Rossi hat einen Gedächtnisverlust erlitten. Irgendjemand hat ihm kräftig auf den Schädel gehauen. 50 Tage fehlen ihm seitdem. Und in diesen paar Tagen habe er sein Leben komplett umgekrempelt, habe Wohnung und Partnerin gewechselt, sei überhaupt nicht mehr der, der er einst wahr. Und das nicht zu seinem Vorteil. Als Journalist begibt er sich nun auf Recherche in eigener Sache und rekonstruiert die letzten Tage vor dem Black-out.\nMartin Suter hat die Geschichte raffiniert konstruiert und taucht die Leser immer wieder in widersprüchliche Gefühle. Ist Rossi nun wirklich der moralisch überlegene Journalist, hat ihm sein Kumpel den Scoop um BSE in Schokostängeln geklaut? Warum ist die frisch gebackene Witwe des Forschers so glücklich -- und plötzlich auch finanziell gut gepolstert? Rossi stand -- und steht nun wieder -- kurz vor der Enthüllung eines riesigen Skandals, als er die Macht der Lebensmittelkonzerne zu spüren bekommt. Ihr Angebot ist eines, das man nicht ablehnen sollte.\n\nMartin Suters Romane sind fehlerlos. Die Sprache ist präzis, manchmal von einer fast unheimlichen Trockenheit. Und vor allem ist Ein perfekter Freund höchst spannend -- und nebenbei auch noch lehrreich. Dass der Humor bei Suter nicht zu kurz kommt, vor allem der schwarze, kennt man. Und auch da liefert er höchst amüsante Müsterchen, die beispielsweise die Techniken des Gedächtnistrainings betreffen. So in dem Stil, wenn die Marlen plötzlich Lilli heißt.", 'original_language' => "DE", 'number_of_pages' => 352, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Roman"));
    BookModel::create(array('name' => "Thor: God of Thunder", 'isbn' => "785168427", 'cover' => "theme/images/books/785168427.jpg", 'title' => "Thor: God of Thunder", 'author' => "Marvel\n", 'year_of_publication' => 2013, 'price' => 19.99, 'currency' => "CHF", 'available' => "Vergriffen", 'language' => "DE", 'description' => "Der letzte Kampf der Götter. Irgendwo am Ende der Zeit werden alle Götter des Universums als Sklaven gehalten. Dort werden sie gezwungen, eine Maschine zu errichten, die das Antlitz der Schöpfung für immer verändern wird. Was ist der wahre Sinn und Zweck der ... Götterbombe? Und was kann Thor, der letzte freie Gott im Kosmos, tun, um sie und Gorr, den Gottesschlächter, aufzuhalten? Das spektakuläre Finale der Gorr-Saga mit den US-Ausgaben Thor- God of Thunder 7-11 von Jason Aaron und Esad Ribic. Erstmals dabei: Die Mädchen des Donners!", 'original_language' => "EN", 'number_of_pages' => 136, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Comic"));
    BookModel::create(array('name' => "My Travel Journal: Mein Reisetagebuch", 'isbn' => "1445486857", 'cover' => "theme/images/books/1445486857.jpg", 'title' => "My Travel Journal: Mein Reisetagebuch", 'author' => "Parragon", 'year_of_publication' => 2012, 'price' => 7.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "DE", 'description' => "Wunderschönes Design im Retro-Stil Für Ihre Listen, Tagespläne und Gedanken Zum Einkleben von Tickets, Fotos, Stadtplänen und Visitenkarten Mit einer Tasche für Erinnerungsstücke Im praktischen Taschenformat, perfekt zum Mitnehmen Auffallende Covergestaltung auf Dekokarton mit nostalgischem Flair", 'original_language' => "DE", 'number_of_pages' => 144, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Reisen"));
    BookModel::create(array('name' => "Pazifik - Ozean der Zukunft", 'isbn' => "3782210174", 'cover' => "theme/images/books/3782210174.jpg", 'title' => "Pazifik - Ozean der Zukunft", 'author' => "Joachim Feyerabend", 'year_of_publication' => 2010, 'price' => 11.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "DE", 'description' => "Der Pazifische Ozean ist das mit Abstand größte Weltmeer und bedeckt über ein Drittel der Erdoberfläche. Eingerahmt von einem gewaltigen Vulkangürtel - dem Ring of Fire - war er in der Vergangenheit Tummelplatz von Entdeckern und Eroberern und beflügelte unter dem Begriff Südsee die Phantasien von Seeleuten und Dichtern. Heute rückt der Pazifik mit seinen zahlreichen Randmeeren immer mehr in den Blickpunkt der Weltöffentlichkeit, politisch, ökonomisch und klimatisch. Der Autor stellt in seinem Buch dieses Weltmeer von seiner erdgeschichtlichen Entstehung bis hin zu den Folgen des fortschreitenden Klimawandels vor.", 'original_language' => "DE", 'number_of_pages' => 208, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Geografie"));
    BookModel::create(array('name' => "Geschichte der Alchemie", 'isbn' => "3406616011", 'cover' => "theme/images/books/3406616011.jpg", 'title' => "Geschichte der Alchemie", 'author' => "Claus Priesner", 'year_of_publication' => 2011, 'price' => 10.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "DE", 'description' => "Seit jeher umgibt die Alchemie die Aura des Geheimnisvoll-Verbotenen. Hervorgegangen in der Antike aus der wechselseitigen Durchdringung der ägyptischen und griechischen Kultur, war die Alchemie, wie ihre spannende und wechselvolle Geschichte zeigt, nie nur praktische Laborarbeit, etwa zu dem Behuf, den Stein der Weisen herzustellen. Vielmehr erschuf sie zugleich ein Weltbild, in dem Mensch und Natur, Geist und Materie aufs Engste miteinander verwoben sind. Nicht zuletzt dies ist der Grund für die bis heute anhaltende Faszination am alchemistischen Denken. ", 'original_language' => "DE", 'number_of_pages' => 128, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Kochen"));
    BookModel::create(array('name' => "Unter dem Jolly Roger: Piraten im Goldenen Zeitalter", 'isbn' => "3862414000", 'cover' => "theme/images/books/3862414000.jpg", 'title' => "Unter dem Jolly Roger: Piraten im Goldenen Zeitalter", 'author' => "Gabriel Kuhn", 'year_of_publication' => 2011, 'price' => 14.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "DE", 'description' => "Die Piraten des Goldenen Zeitalters, die von 1690 bis 1725 die Meere zwischen der Karibik und dem Indischen Ozean unsicher machten, haben bis heute nur wenig an Faszination verloren. Die politische Deutung ihrer Aktivitäten ist jedoch umstritten. Das Buch untersucht die Kultur und Ökonomie, die moralischen Prinzipien und sozialen Organisationsformen der Piraten, um neue Perspektiven auf ihre Lebensweise zu eröffnen. Die Studie versteht sich als wissenschaftlicher Beitrag zur Piratenforschung, ein abschließender Essay untersucht die Bedeutung des Goldenen Zeitalters für politischen Aktivismus heute.", 'original_language' => "DE", 'number_of_pages' => 232, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Fachliteratur"));
    BookModel::create(array('name' => "How to Read a Book", 'isbn' => "671212095", 'cover' => "theme/images/books/671212095.jpg", 'title' => "How to Read a Book", 'author' => "Mortimer J. Adler, Charles Van Doren", 'year_of_publication' => 1972, 'price' => 17.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "EN", 'description' => "Die Piraten des Goldenen Zeitalters, die von 1690 bis 1725 die Meere zwischen der Karibik und dem Indischen Ozean unsicher machten, haben bis heute nur wenig an Faszination verloren. Die politische Deutung ihrer Aktivitäten ist jedoch umstritten. Das Buch untersucht die Kultur und Ökonomie, die moralischen Prinzipien und sozialen Organisationsformen der Piraten, um neue Perspektiven auf ihre Lebensweise zu eröffnen. Die Studie versteht sich als wissenschaftlicher Beitrag zur Piratenforschung, ein abschließender Essay untersucht die Bedeutung des Goldenen Zeitalters für politischen Aktivismus heute.", 'original_language' => "EN", 'number_of_pages' => 426, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Lernmittel"));
    BookModel::create(array('name' => "JavaScript: The Definitive Guide:\nActivate Your Web Pages (Definitive Guides)", 'isbn' => "0596805527", 'cover' => "theme/images/books/0596805527.jpg", 'title' => "JavaScript: The Definitive Guide:\nActivate Your Web Pages (Definitive Guides)", 'author' => "David Flanagan", 'year_of_publication' => 2014, 'price' => 32.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "DE", 'description' => "JavaScript: The Definitive Guide has been the bible for JavaScript programmers-a programmer's guide and comprehensive reference to the core language and to the client-side JavaScript APIs defined by web browsers.\n\nThe 6th edition covers HTML5 and ECMAScript 5. Many chapters have been completely rewritten to bring them in line with today's best web development practices. New chapters in this edition document jQuery and server side JavaScript. It's recommended for experienced programmers who want to learn the programming language of the Web, and for current JavaScript programmers who want to master it.", 'original_language' => "EN", 'number_of_pages' => 1076, 'version' => 1, 'type' => "Hardcover", 'genre' => "Fachliteratur"));
    BookModel::create(array('name' => "The Adventures of Sherlock Holmes", 'isbn' => "149964244X", 'cover' => "theme/images/books/149964244X.jpg", 'title' => "The Adventures of Sherlock Holmes", 'author' => " Sir Arthur Conan Doyle", 'year_of_publication' => 2014, 'price' => 8.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "EN", 'description' => "These are the first of the Sherlock Holmes short stories, originally published as single stories in the Strand Magazine from July 1891 to June 1892. The book was published in England on 14 October 1892 by George Newnes Ltd and in a US Edition on 15 October by Harper. The initial combined print run was 14,500 copies.", 'original_language' => "EN", 'number_of_pages' => 202, 'version' => 1, 'type' => "Paperback", 'genre' => "Krimi"));
Example #21
0
 public function upload()
 {
     $attrModel = new AttributesModel();
     $configArr = (array) $attrModel->getConfig();
     if ($configArr['beginRow'] == 0) {
         Tool::alertBackNoRefresh('请先设置上传文件的数据格式:)');
         return;
     }
     $allAttr = $attrModel->getAttributes();
     $allAttrArray = array();
     foreach ($allAttr as $attr) {
         $allAttrArray[] = $attr->attributeName;
     }
     $attributes = array_values(array_slice($configArr, 4, 57));
     $attributesFlip = array_flip($attributes);
     /*print_r($attributesFlip);
       echo '<hr/>';*/
     $sheetNumArr = explode('-', $configArr['dataSheetNum']);
     foreach ($sheetNumArr as $key => &$sheetNum) {
         if (trim($sheetNum)) {
             $sheetNum = trim($sheetNum) - 1;
         } else {
             unset($sheetNumArr[$key]);
         }
     }
     if (isset($_POST['send'])) {
         $beginTime = microtime(true);
         $fileName = $_FILES['excel']['name'];
         $explodeArr = explode('.', $fileName);
         $extensionName = $explodeArr[count($explodeArr) - 1];
         $inputFileName = $_FILES['excel']['tmp_name'];
         require '../Extension/PHPExcel_1.8.0/Classes/PHPExcel.php';
         require '../Extension/PHPExcel_1.8.0/Classes/PHPExcel/Writer/Excel2007.php';
         require '../Extension/PHPExcel_1.8.0/Classes/PHPExcel/Writer/Excel5.php';
         $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
         if ($inputFileType != 'Excel2007' && $inputFileType != 'Excel5') {
             Tool::alertBackNoRefresh('上传文件格式不正确:(');
             return;
         }
         $objReader = PHPExcel_IOFactory::createReader($inputFileType);
         $PHPExcel = $objReader->load($inputFileName);
         //根据自己的数据表的大小修改
         $arr = array('A' => 1, 'B' => 2, 'C' => 3, 'D' => 4, 'E' => 5, 'F' => 6, 'G' => 7, 'H' => 8, 'I' => 9, 'J' => 10, 'K' => 11, 'L' => 12, 'M' => 13, 'N' => 14, 'O' => 15, 'P' => 16, 'Q' => 17, 'R' => 18, 'S' => 19, 'T' => 20, 'U' => 21, 'V' => 22, 'W' => 23, 'X' => 24, 'Y' => 25, 'Z' => 26, 'AA' => 27, 'AB' => 28, 'AC' => 29, 'AD' => 30, 'AE' => 31, 'AF' => 32, 'AG' => 33, 'AH' => 34, 'AI' => 35, 'AJ' => 36, 'AK' => 37, 'AL' => 38, 'AM' => 39, 'AN' => 40, 'AO' => 41, 'AP' => 42, 'AQ' => 43, 'AR' => 44, 'AS' => '45', 'AT' => 46, 'AU' => 47, 'AV' => 48, 'AW' => 49, 'AX' => 50, 'AY' => 51, 'AZ' => 52, 'BA' => 53, 'BB' => 54, 'BC' => 55, 'BD' => 56, 'BE' => 57);
         $sexArr = array('男' => 1, '女' => 0);
         $BMIArr = array('肥胖' => 0, '超重' => 1, '低体重' => 2, '正常' => 3);
         $otherArr = array('不及格' => 0, '及格' => 1, '良好' => 2, '优秀' => 3);
         $year = $_POST['year'];
         $year = str_replace('-', '_', $year);
         $tableName = 'tice_data_' . $year;
         $model = new DataModel();
         $model->dbName = 'tice';
         $model->tableName = $tableName;
         if (!$model->tableExist()) {
             $model->createTable();
         }
         $model = new DataModel();
         foreach ($allAttrArray as $attr) {
             $model->{$attr} = 0;
         }
         $user = new UserModel();
         $totalEmptyErrorArr = array();
         $totalInsertErrorArr = array();
         //检查插入失败数据的二维数组
         $emptyErrorArr = array();
         //检查不完整的数据的二维数组
         $sqlParams = array();
         $affectedRows = 0;
         foreach ($sheetNumArr as $i) {
             $currentSheet = $PHPExcel->getSheet($i);
             //获得工作表,从0开始
             $highestRow = $currentSheet->getHighestRow();
             // 取得总行数
             $highestColumn = $currentSheet->getHighestColumn();
             //取得总列数 比如 ‘AJ'列这样子
             //                echo $currentSheet->getTitle() . ' ' . $highestRow . '<br/>'; // 得到当前工作表的名字
             //读取一个工作表的数据 每次读取一行,再在行中循环每列的数值
             for ($row = $configArr['beginRow']; $row <= $highestRow; $row++) {
                 $listRow = array();
                 for ($column = self::BEGIN_COL; $column <= $arr[$highestColumn]; $column++) {
                     $val = $currentSheet->getCellByColumnAndRow($column, $row)->getValue();
                     $listRow[] = $val;
                     $listRow['row'] = $row;
                 }
                 //                    print_r($listRow);
                 //检查数据的完整性
                 if (!self::checkDataComplete($configArr['schoolType'], $listRow, $attributesFlip)) {
                     $empty = array();
                     $empty['sheetName'] = $currentSheet->getTitle();
                     $empty['row'] = $row;
                     $emptyErrorArr[] = $empty;
                     unset($empty);
                 }
                 $model->tableName = $tableName;
                 $listRow[$attributesFlip['sex']] = $sexArr[trim($listRow[$attributesFlip['sex']])];
                 $listRow[$attributesFlip['BMIGrade']] = $BMIArr[trim($listRow[$attributesFlip['BMIGrade']])];
                 $listRow[$attributesFlip['FVCGrade']] = $otherArr[trim($listRow[$attributesFlip['FVCGrade']])];
                 $listRow[$attributesFlip['_50mGrade']] = $otherArr[trim($listRow[$attributesFlip['_50mGrade']])];
                 $listRow[$attributesFlip['SARGrade']] = $otherArr[trim($listRow[$attributesFlip['SARGrade']])];
                 $listRow[$attributesFlip['SLJGrade']] = $otherArr[trim($listRow[$attributesFlip['SLJGrade']])];
                 $listRow[$attributesFlip['ChinUpGrade']] = $otherArr[trim($listRow[$attributesFlip['ChinUpGrade']])];
                 $listRow[$attributesFlip['SitUpsGrade']] = $otherArr[trim($listRow[$attributesFlip['SitUpsGrade']])];
                 $listRow[$attributesFlip['_1000mGrade']] = $otherArr[trim($listRow[$attributesFlip['_1000mGrade']])];
                 $listRow[$attributesFlip['_800mGrade']] = $otherArr[trim($listRow[$attributesFlip['_800mGrade']])];
                 $listRow[$attributesFlip['_400mGrade']] = $otherArr[trim($listRow[$attributesFlip['_400mGrade']])];
                 $listRow[$attributesFlip['ropeSkippingGrade']] = $otherArr[trim($listRow[$attributesFlip['ropeSkippingGrade']])];
                 $listRow[$attributesFlip['SumUpGrade']] = $otherArr[trim($listRow[$attributesFlip['SumUpGrade']])];
                 $user->stuId = trim($listRow[$attributesFlip['stuId']]);
                 $user->password = sha1(substr(trim($listRow[$attributesFlip['stuId']]), -6));
                 $sqlParams[] = array('userFlag' => true, 'sql' => $user->create(true), 'sheetName' => $currentSheet->getTitle(), 'row' => $listRow['row']);
                 foreach ($attributes as $key => $attr) {
                     $listRow[$key] = str_replace(' ', '', trim($listRow[$key]));
                     $model->{$attr} = $listRow[$key];
                     if (empty($model->{$attr})) {
                         $model->{$attr} = 0;
                     }
                 }
                 //                    print_r($model);
                 $model->stuName = mb_substr($model->stuName, mb_strlen($model->stuName) - 2);
                 $model->stuName = "*" . $model->stuName;
                 //将 姓氏 转化成*
                 $sqlParams[] = array('userFlag' => false, 'sql' => $model->create(true), 'sheetName' => $currentSheet->getTitle(), 'row' => $listRow['row']);
                 unset($listRow);
                 //每个页面每1000行提交一次
                 if ($row % 1000 == 0 || $row == $highestRow) {
                     $model->multipleExecute($sqlParams, false, $errorRowArr, $affectedRows);
                     unset($sqlParams);
                     if (count($errorRowArr) && !empty($errorRowArr[0]['sheetName'])) {
                         $totalInsertErrorArr[] = $errorRowArr;
                         unset($errorRowArr);
                     }
                 }
             }
             //记录数据不完整的行
             if (count($emptyErrorArr)) {
                 $totalEmptyErrorArr[] = $emptyErrorArr;
                 $emptyErrorArr = array();
             }
         }
         /*if (count($totalEmptyErrorArr)) {
               echo '有' . count($totalEmptyErrorArr) . '条数据不完整';
               print_r($totalEmptyErrorArr);
           }
           if (count($totalInsertErrorArr)) {
               echo '有' . count($totalInsertErrorArr) . '条数据插入失败';
               var_dump($totalInsertErrorArr);
           }*/
     }
     $currentYear = date('Y');
     $yearArr = array($currentYear - 1 . '-' . $currentYear, $currentYear . '-' . ($currentYear + 1), $currentYear - 2 . '-' . ($currentYear - 1));
     $this->render('data/upload', array('yearArr' => $yearArr, 'totalEmptyErrorArr' => $totalEmptyErrorArr, 'totalInsertErrorArr' => $totalInsertErrorArr, 'post' => isset($_POST['send']) ? true : false, 'affectedRows' => $affectedRows, 'usedTime' => sprintf("%0.2f", microtime(true) - $beginTime)));
 }
//if(isset($_REQUEST['clear_tables']) && $_REQUEST['clear_tables'] == true) {
$db->drop('user');
$db->drop('book');
$db->drop('order');
$db->drop('position');
$db->drop('genre');
$db->drop('bookgenre');
$db->drop('type');
// }
TypeModel::create(array('key' => 'Taschenbuch2', 'name' => 'Taschenbuch2'));
//Check if there is the user Table, if not, create some entries
if (!$db->tableExists('user')) {
    UserModel::create(array('user_name' => 'tony', 'password' => Utilities::hash('12345', USER_SALT), 'first_name' => 'Tony', 'last_name' => 'Stark', 'lang' => 'de'));
    UserModel::create(array('user_name' => 'hulk', 'password' => Utilities::hash('12345', USER_SALT), 'first_name' => 'Bruce', 'last_name' => 'Banner', 'lang' => 'de'));
    UserModel::create(array('user_name' => 'thor', 'password' => Utilities::hash('12345', USER_SALT), 'first_name' => 'Thor', 'last_name' => 'Odinsson', 'lang' => 'de'));
    UserModel::create(array('user_name' => 'max', 'password' => Utilities::hash('12345', USER_SALT), 'first_name' => 'Max', 'last_name' => 'Muster', 'lang' => 'en'));
}
//Check if there is the book Table, if not, create some entries
if (!$db->tableExists('book')) {
    BookModel::create(array('name' => "My Book", 'isbn' => "D2342f3i", 'title' => "Kennzahlen aus der Wirtschaft", 'author' => "Duran Elton", 'year_of_publication' => 1998, 'price' => 43.1, 'currency' => "CHF", 'available' => "Sofort", 'language' => "Deutsch", 'description' => "Hier ist ein Lorem Ipsum Text Hier ist ein Lorem Ipsum Text Hier ist ein Lorem Ipsum Text Hier ist ein Lorem Ipsum Text Hier ist ein Lorem Ipsum Text Hier ist ein Lorem Ipsum Text Hier ist ein Lorem Ipsum Text ", 'original_language' => "Englisch", 'number_of_pages' => 1872, 'version' => 1.2, 'type' => "Taschenbuch", 'genre' => "Krimi"));
    BookModel::create(array('name' => "Angel Of The Dark", 'isbn' => "0062073451", 'title' => "Angel Of The Dark", 'author' => "Sidney Sheldon", 'year_of_publication' => 2012, 'price' => 11.1, 'currency' => "CHF", 'available' => "Sofort", 'language' => "EN", 'description' => "As the future prima, or head witch of her clan, Angela McAllister is expected to bond with her consort during her twenty-first year, thus ensuring that she will come into her full powers at the appointed time. The clock is ticking down, and her consort has yet to make an appearance. Instead, her dreams are haunted by a man she's never seen, the one she believes must be her intended match.\n\nBut with time running out, and dark forces attempting to seize her powers for their own, Angela is faced with a terrible choice: give up her dreams of the man she may never meet and take the safer path, or risk leaving her clan and everyone in it at the mercy of those who seek their ruin.\n\nDarkangel is the first book in the Witches of Cleopatra Hill, a paranormal romance series set in the haunted town of Jerome, Arizona.", 'original_language' => "EN", 'number_of_pages' => 400, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Krimi"));
    BookModel::create(array('name' => "Max fährt mit", 'isbn' => "3197495950", 'title' => "Max fährt mit", 'author' => "Ulrike Fischer", 'year_of_publication' => 2014, 'price' => 9.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "DE", 'description' => "Zielgruppe: Kinder ab 2 Jahren Auf dem Bauernhof gibt es viele Fahrzeuge. Doch wie staunt Max erst, als er in die Stadt kommt! Max fährt mit ist der sechste Titel in der Reihe bilibrini – die kleinen Zweisprachigen und widmet sich in kurzen, einfachen Sätzen dem Thema Fahrzeuge. Die farbenfrohen Illustrationen laden Kinder ab 2 Jahren zum Betrachten ein. Die Wort-Bild-Leiste auf jeder Seite greift wichtige Gegenstände erneut auf und ermöglicht eine aktive Förderung des Wortschatzes schon für die Kleinsten.", 'original_language' => "DE", 'number_of_pages' => 16, 'version' => 1, 'type' => "Hardcover Buch", 'genre' => "Kinderbuch"));
    BookModel::create(array('name' => "Wind", 'isbn' => "3453410831", 'title' => "Wind", 'author' => "Stephen King", 'year_of_publication' => 2013, 'price' => 24.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "DE", 'description' => "Ein Sturm zieht auf\n\n\nRoland Deschain, der letzte Revolvermann, und seine Gefährten haben den Grünen Palast hinter sich gelassen. Als sie auf dem Pfad des Balkens ins Land Donnerschlag unterwegs sind, zieht ein heftiger Sturm herauf, und sie finden Schutz in einer verlassenen Hütte. Dort erzählt Roland seinen Begleitern, was in seiner Jugend geschah, nachdem er unbeabsichtigt seine Mutter umgebracht hatte: Sein Vater schickte ihn zu einer entlegenen Ranch, wo grausame Morde stattfanden. Alle Anzeichen deuteten auf einen Gestaltwandler als Täter hin, und es gab nur einen Zeugen – einen kleinen Jungen, der jetzt seines Lebens nicht mehr sicher war.\n\n\nMit Wind legt Stephen King einen achten Roman seines großen Endzeitepos um den Dunklen Turm vor, bei dem es sich nach eigenem Bekunden um sein wichtigstes Werk handelt. Derzeit befindet sich eine Verfilmung des gesamten Zyklus in der Vorproduktion.", 'original_language' => "EN", 'number_of_pages' => 432, 'version' => 1, 'type' => "Hardcover Buch", 'genre' => "Fantasy"));
    BookModel::create(array('name' => "Ein perfekter Freund", 'isbn' => "3257233787", 'title' => "Ein perfekter Freund", 'author' => "Martin Sutter\n", 'year_of_publication' => 2003, 'price' => 15.99, 'currency' => "CHF", 'available' => "Vergriffen", 'language' => "DE", 'description' => "Welch ein Erwachen! Kaum Gefühl im Gesicht, keine Ahnung, wo man ist. Und die Frau, die sich so rührend um einen kümmert, soll die eigene Freundin sein? Der Journalist Fabio Rossi hat einen Gedächtnisverlust erlitten. Irgendjemand hat ihm kräftig auf den Schädel gehauen. 50 Tage fehlen ihm seitdem. Und in diesen paar Tagen habe er sein Leben komplett umgekrempelt, habe Wohnung und Partnerin gewechselt, sei überhaupt nicht mehr der, der er einst wahr. Und das nicht zu seinem Vorteil. Als Journalist begibt er sich nun auf Recherche in eigener Sache und rekonstruiert die letzten Tage vor dem Black-out.\nMartin Suter hat die Geschichte raffiniert konstruiert und taucht die Leser immer wieder in widersprüchliche Gefühle. Ist Rossi nun wirklich der moralisch überlegene Journalist, hat ihm sein Kumpel den Scoop um BSE in Schokostängeln geklaut? Warum ist die frisch gebackene Witwe des Forschers so glücklich -- und plötzlich auch finanziell gut gepolstert? Rossi stand -- und steht nun wieder -- kurz vor der Enthüllung eines riesigen Skandals, als er die Macht der Lebensmittelkonzerne zu spüren bekommt. Ihr Angebot ist eines, das man nicht ablehnen sollte.\n\nMartin Suters Romane sind fehlerlos. Die Sprache ist präzis, manchmal von einer fast unheimlichen Trockenheit. Und vor allem ist Ein perfekter Freund höchst spannend -- und nebenbei auch noch lehrreich. Dass der Humor bei Suter nicht zu kurz kommt, vor allem der schwarze, kennt man. Und auch da liefert er höchst amüsante Müsterchen, die beispielsweise die Techniken des Gedächtnistrainings betreffen. So in dem Stil, wenn die Marlen plötzlich Lilli heißt.", 'original_language' => "DE", 'number_of_pages' => 352, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Roman"));
    BookModel::create(array('name' => "Thor: God of Thunder", 'isbn' => "785168427\n", 'title' => "Thor: God of Thunder", 'author' => "Marvel\n", 'year_of_publication' => 2013, 'price' => 19.99, 'currency' => "CHF", 'available' => "Vergriffen", 'language' => "DE", 'description' => "Der letzte Kampf der Götter. Irgendwo am Ende der Zeit werden alle Götter des Universums als Sklaven gehalten. Dort werden sie gezwungen, eine Maschine zu errichten, die das Antlitz der Schöpfung für immer verändern wird. Was ist der wahre Sinn und Zweck der ... Götterbombe? Und was kann Thor, der letzte freie Gott im Kosmos, tun, um sie und Gorr, den Gottesschlächter, aufzuhalten? Das spektakuläre Finale der Gorr-Saga mit den US-Ausgaben Thor- God of Thunder 7-11 von Jason Aaron und Esad Ribic. Erstmals dabei: Die Mädchen des Donners!", 'original_language' => "EN", 'number_of_pages' => 136, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Comic"));
    BookModel::create(array('name' => "Thor: God of Thunder", 'isbn' => "785168427\n", 'title' => "Thor: God of Thunder", 'author' => "Marvel\n", 'year_of_publication' => 2013, 'price' => 19.99, 'currency' => "CHF", 'available' => "Vergriffen", 'language' => "DE", 'description' => "Der letzte Kampf der Götter. Irgendwo am Ende der Zeit werden alle Götter des Universums als Sklaven gehalten. Dort werden sie gezwungen, eine Maschine zu errichten, die das Antlitz der Schöpfung für immer verändern wird. Was ist der wahre Sinn und Zweck der ... Götterbombe? Und was kann Thor, der letzte freie Gott im Kosmos, tun, um sie und Gorr, den Gottesschlächter, aufzuhalten? Das spektakuläre Finale der Gorr-Saga mit den US-Ausgaben Thor- God of Thunder 7-11 von Jason Aaron und Esad Ribic. Erstmals dabei: Die Mädchen des Donners!", 'original_language' => "EN", 'number_of_pages' => 136, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Comic"));
    BookModel::create(array('name' => "My Travel Journal: Mein Reisetagebuch", 'isbn' => "1445486857", 'title' => "My Travel Journal: Mein Reisetagebuch", 'author' => "Parragon", 'year_of_publication' => 2012, 'price' => 7.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "DE", 'description' => "Wunderschönes Design im Retro-Stil Für Ihre Listen, Tagespläne und Gedanken Zum Einkleben von Tickets, Fotos, Stadtplänen und Visitenkarten Mit einer Tasche für Erinnerungsstücke Im praktischen Taschenformat, perfekt zum Mitnehmen Auffallende Covergestaltung auf Dekokarton mit nostalgischem Flair", 'original_language' => "DE", 'number_of_pages' => 144, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Reisen"));
    BookModel::create(array('name' => "Pazifik - Ozean der Zukunft", 'isbn' => "3782210174", 'title' => "Pazifik - Ozean der Zukunft", 'author' => "Joachim Feyerabend", 'year_of_publication' => 2010, 'price' => 11.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "DE", 'description' => "Der Pazifische Ozean ist das mit Abstand größte Weltmeer und bedeckt über ein Drittel der Erdoberfläche. Eingerahmt von einem gewaltigen Vulkangürtel - dem Ring of Fire - war er in der Vergangenheit Tummelplatz von Entdeckern und Eroberern und beflügelte unter dem Begriff Südsee die Phantasien von Seeleuten und Dichtern. Heute rückt der Pazifik mit seinen zahlreichen Randmeeren immer mehr in den Blickpunkt der Weltöffentlichkeit, politisch, ökonomisch und klimatisch. Der Autor stellt in seinem Buch dieses Weltmeer von seiner erdgeschichtlichen Entstehung bis hin zu den Folgen des fortschreitenden Klimawandels vor.", 'original_language' => "DE", 'number_of_pages' => 208, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Geografie"));
    BookModel::create(array('name' => "Geschichte der Alchemie", 'isbn' => "3406616011", 'title' => "Geschichte der Alchemie", 'author' => "Claus Priesner", 'year_of_publication' => 2011, 'price' => 10.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "DE", 'description' => "Seit jeher umgibt die Alchemie die Aura des Geheimnisvoll-Verbotenen. Hervorgegangen in der Antike aus der wechselseitigen Durchdringung der ägyptischen und griechischen Kultur, war die Alchemie, wie ihre spannende und wechselvolle Geschichte zeigt, nie nur praktische Laborarbeit, etwa zu dem Behuf, den Stein der Weisen herzustellen. Vielmehr erschuf sie zugleich ein Weltbild, in dem Mensch und Natur, Geist und Materie aufs Engste miteinander verwoben sind. Nicht zuletzt dies ist der Grund für die bis heute anhaltende Faszination am alchemistischen Denken. ", 'original_language' => "DE", 'number_of_pages' => 128, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Kochen"));
    BookModel::create(array('name' => "Unter dem Jolly Roger: Piraten im Goldenen Zeitalter", 'isbn' => "3862414000", 'title' => "Unter dem Jolly Roger: Piraten im Goldenen Zeitalter", 'author' => "Gabriel Kuhn", 'year_of_publication' => 2011, 'price' => 14.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "DE", 'description' => "Die Piraten des Goldenen Zeitalters, die von 1690 bis 1725 die Meere zwischen der Karibik und dem Indischen Ozean unsicher machten, haben bis heute nur wenig an Faszination verloren. Die politische Deutung ihrer Aktivitäten ist jedoch umstritten. Das Buch untersucht die Kultur und Ökonomie, die moralischen Prinzipien und sozialen Organisationsformen der Piraten, um neue Perspektiven auf ihre Lebensweise zu eröffnen. Die Studie versteht sich als wissenschaftlicher Beitrag zur Piratenforschung, ein abschließender Essay untersucht die Bedeutung des Goldenen Zeitalters für politischen Aktivismus heute.", 'original_language' => "DE", 'number_of_pages' => 232, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Fachliteratur"));
    BookModel::create(array('name' => "How to Read a Book", 'isbn' => "671212095", 'title' => "How to Read a Book", 'author' => "Mortimer J. Adler, Charles Van Doren", 'year_of_publication' => 1972, 'price' => 17.0, 'currency' => "CHF", 'available' => "Sofort", 'language' => "EN", 'description' => "Die Piraten des Goldenen Zeitalters, die von 1690 bis 1725 die Meere zwischen der Karibik und dem Indischen Ozean unsicher machten, haben bis heute nur wenig an Faszination verloren. Die politische Deutung ihrer Aktivitäten ist jedoch umstritten. Das Buch untersucht die Kultur und Ökonomie, die moralischen Prinzipien und sozialen Organisationsformen der Piraten, um neue Perspektiven auf ihre Lebensweise zu eröffnen. Die Studie versteht sich als wissenschaftlicher Beitrag zur Piratenforschung, ein abschließender Essay untersucht die Bedeutung des Goldenen Zeitalters für politischen Aktivismus heute.", 'original_language' => "EN", 'number_of_pages' => 426, 'version' => 1, 'type' => "Taschenbuch", 'genre' => "Lernmittel"));
Example #23
0
 /**
  * 更新 个人资料
  */
 function update_profile()
 {
     $user = new UserModel();
     $username = $_SESSION['username'];
     $userinfo = $user->getByUsername($username);
     //如果旧密码正确
     if (md5($_POST['old_password']) == $userinfo['password']) {
         if (!!($data = $user->create())) {
             if ($user->save() !== false) {
                 $this->assign('jumpUrl', __APP__ . '/Manage/index');
                 $this->success('修改个人资料成功');
             } else {
                 $this->assign('jumpUrl', __URL__ . '/profile');
                 $this->error('更新失败' . $user->getDbError());
             }
         } else {
             $this->assign('jumpUrl', __URL__ . '/profile');
             $this->error('更新失败' . $user->getError());
         }
     } else {
         $this->assign('jumpUrl', __URL__ . '/profile');
         $this->error('您输入的旧密码不正确');
     }
 }