Ejemplo n.º 1
0
 public function createDeveloper()
 {
     $validator = Validator::make(Input::all(), array('dev_username' => 'required|unique:developers|alpha_num|min:4', 'dev_email' => 'required|email', 'dev_phone' => 'required|numeric|min:9'));
     if ($validator->fails()) {
         //		    print_r($validator->errors());
         return Redirect::route('developer')->withErrors($validator)->with('alertError', 'Error! Please correct the errors on the form and try again')->withInput();
     } else {
         //create developer account
         $devaccount = new Developer();
         $salt = '**i_hy';
         $devaccount->dev_id = Auth::user()->id;
         $devaccount->dev_key = sha1(base64_encode(Input::get('dev_username')) . $salt);
         $devaccount->dev_username = Input::get('dev_username');
         $devaccount->dev_email = Input::get('dev_email');
         $devaccount->dev_number = Input::get('dev_phone');
         $devaccount->dev_paymentprovider = Input::get('merhantprovider');
         $devaccount->dev_status = 0;
         //sandbox mode
         if ($devaccount->save()) {
             // Redirect to the developer page
             return Redirect::route('developer')->with('alertMessage', 'New developer account created');
         } else {
             return Redirect::route('developer')->with('alertError', 'Unable to add developer account. A similar account already exists.');
         }
     }
     return Redirect::route('developer')->with('alertError', 'There was a problem adding your developer account. Please try again');
 }
 function testAddBeforeSave()
 {
     $nb_devels = SActiveStore::count('Developer');
     $nb_projs = SActiveStore::count('Project');
     $peter = new Developer(array('name' => 'peter'));
     $proj1 = new Project(array('name' => 'WebNuked2.0'));
     $proj2 = new Project(array('name' => 'TotalWebInnov'));
     $peter->projects[] = $proj1;
     $peter->projects[] = $proj2;
     $this->assertTrue($peter->isNewRecord());
     $this->assertTrue($proj1->isNewRecord());
     $peter->save();
     $this->assertFalse($peter->isNewRecord());
     $this->assertEqual($nb_devels + 1, SActiveStore::count('Developer'));
     $this->assertEqual($nb_projs + 2, SActiveStore::count('Project'));
     $this->assertEqual(2, $peter->countProjects());
     $peter->projects(True);
     $this->assertEqual(2, $peter->countProjects());
 }
 protected function parse()
 {
     $data = array();
     $details = $this->getResponseObject()->query('//*[@id="gameDetailsSection"]/div/ul[@class="fields"]')->item(0);
     if ($details) {
         $items = $this->nodeToXPath($details)->query('//li');
         if ($items->length > 0) {
             foreach ($items as $bundle_item) {
                 $val = $this->cleanData($bundle_item->nodeValue);
                 //pre($val);
                 //continue;
                 if (stristr($val, 'release')) {
                     $date = $this->parseValue($val, '/^.+:\\040?(.+)$/');
                     $data['release_date'] = date('Y-m-d H:i:s', strtotime($date));
                 } elseif (stristr($val, 'developer')) {
                     $data['developer'] = $this->parseValue($val, '/^.+:\\040?(.+)$/');
                 } elseif (stristr($val, 'publisher')) {
                     $data['publisher'] = $this->parseValue($val, '/^.+:\\040?(.+)$/');
                 } elseif (stristr($val, 'genre')) {
                     $genres = $this->parseValue($val, '/^.+:\\040?(.+)$/');
                     if ($genres) {
                         $data['genres'] = explode(',', $genres);
                     }
                 } elseif (stristr($val, 'size')) {
                     $val = $this->parseValue($val, '/^.+:\\040?(.+)$/');
                     $data['size'] = $this->parseSize($val);
                 }
             }
         }
         $data['description'] = $this->parseDescription();
         $data['price'] = $this->parsePrice();
         //$data['facebook_iframe_url'] = $this->parseFacebookIframeUrl();
         //pre($data,1);
         if (isset($data['developer'])) {
             $dobject = DeveloperModel::findOneByTitle($data['developer']);
             if (!$dobject) {
                 $dobject = new Developer();
                 $dobject->fromArray(array('title' => $data['developer']));
                 $developer_id = $dobject->save();
             } else {
                 $developer_id = $dobject->id;
             }
             $data['developer_id'] = $developer_id;
         }
         if (isset($data['publisher'])) {
             $dobject = PublisherModel::findOneByTitle($data['publisher']);
             if (!$dobject) {
                 $dobject = new Publisher();
                 $dobject->fromArray(array('title' => $data['publisher']));
                 $publisher_id = $dobject->save();
             } else {
                 $publisher_id = $dobject->id;
             }
             $data['publisher_id'] = $publisher_id;
         }
         $data = $this->cleanData($data);
         pre($data, 1);
         $data['processed'] = 1;
         $this->content_object->fromArray($data);
         $this->content_object->save();
         if (isset($data['genres'])) {
             // remove old genres associations
             $res = ContentToGenreModel::deleteByContentId($this->content_object->id);
             if ($res) {
                 foreach ($data['genres'] as $genre) {
                     $gobject = GenreModel::findOneByTitle($genre);
                     if (!$gobject) {
                         $gobject = new Genre();
                         $gobject->fromArray(array('title' => $genre));
                         $genre_id = $gobject->save();
                     } else {
                         $genre_id = $gobject->id;
                     }
                     $ctg = new ContentToGenre();
                     $ctg->fromArray(array('content_id' => $this->content_object->id, 'genre_id' => $genre_id));
                     $ctg->save();
                 }
             }
         }
     }
 }