foreach ($categories as $table => $values) { if (!$numbers[$table]) { unset($categories[$table]); } } if ($categories) { ProgressBar::start($numbers['categories'] * count($categories)); ProgressBar::setMessage('Adding categories...'); foreach (array_keys($categories) as $table) { $levels = array_fill_keys(array(1, 2, 3), array()); $date_min = new DateTime('-3 years'); $date_max = new DateTime(); for ($i = 0; $i < $numbers['categories']; $i++) { $row = Library\ObjectManager::getInstance()->getObject('com:categories.model.categories')->getItem(); $row->title = $generator->words(pick_random(range(1, 5))); $row->description = $generator->sentences(pick_random(range(0, 3))); $row->table = $table; $row->published = (int) (rand(0, 20) > 0); $created = new DateTime('@' . rand($date_min->format('U'), $date_max->format('U'))); $row->created_on = $created->format('Y-m-d H:i:s'); $row->created_by = pick_random($users); $level = pick_random(range(1, 3)); if ($level > 1) { if ($parent_id = pick_random($levels[$level - 1])) { $row->parent_id = $parent_id; } } $row->save(); $levels[$level + 1][] = $row->id; $categories[$table][] = $row->id; print ProgressBar::next();