Example #1
0
 public static function create(array $args = array())
 {
     $v = new PuzzleTemplate();
     if ($v->validate($args)) {
         $pt = new PuzzleTemplate();
         $pt->name = $args['name'];
         $pt->width = $args['width'];
         $pt->height = $args['height'];
         $pt->user_id = $args['user_id'];
         $pt->active = 1;
         $pt->timestamp_utc = time();
         $pt->slug = PuzzleTemplate::findSlug($args['name']);
         $pt->save();
         $clue_number = 1;
         for ($row = 1; $row <= $pt->height; $row++) {
             for ($col = 1; $col <= $pt->width; $col++) {
                 $sq = new PuzzleTemplateSquare();
                 $sq->puzzle_template_id = $pt->id;
                 $sq->row = $row;
                 $sq->col = $col;
                 if (in_array($row . '-' . $col, $args['blackSquares'])) {
                     $sq->square_type = 'black';
                 } else {
                     if ($row == 1 || $col == 1 || in_array($row - 1 . '-' . $col, $args['blackSquares']) || in_array($row . '-' . ($col - 1), $args['blackSquares'])) {
                         $sq->clue_number = $clue_number++;
                     }
                     $sq->square_type = 'white';
                 }
                 $sq->save();
             }
         }
         return $pt;
     } else {
         return array('errors' => $v->errors);
     }
 }
Example #2
0
 public static function create(array $args = array())
 {
     $v = new Puzzle();
     if ($v->validate($args)) {
         $p = new Puzzle();
         $p->name = $args['name'];
         $p->slug = self::findSlug($args['name']);
         $p->user_id = $args['user_id'];
         $p->puzzle_template_id = $args['puzzle_template_id'];
         $p->timestamp_utc = time();
         $p->save();
         $ptss = PuzzleTemplateSquare::where('puzzle_template_id', $args['puzzle_template_id'])->get();
         foreach ($ptss as $pts) {
             $ps = new PuzzleSquare();
             $ps->puzzle_id = $p->id;
             $ps->row = $pts->row;
             $ps->col = $pts->col;
             $letter = "";
             if (isset($args['puzzle_squares'])) {
                 foreach ($args['puzzle_squares'] as $puzzle_square) {
                     if ($puzzle_square['row'] == $pts->row && $puzzle_square['col'] == $pts->col) {
                         $letter = $puzzle_square['letter'];
                     }
                 }
             }
             $ps->letter = $letter;
             $ps->square_type = $pts->square_type;
             $ps->save();
         }
         if (isset($args['clues'])) {
             foreach ($args['clues'] as $c) {
                 $p->clues()->save($c);
             }
         }
         return $p;
     } else {
         return array('errors' => $v->errors);
     }
 }