public function categories() { $view = Input::get('view'); if ($view == null) { return redirect('/admin/categories?view=hierarchy'); } $levels = ['Main Category', 'Subcategory', 'Post Sub Category']; $types = ['main-categories', 'sub-categories', 'post-sub-categories']; $views = ['Hierarchy', 'Type', 'All']; $cats = Category::roots()->get(); $category = Input::get('category'); $_category = Category::find($category); if ($view == 'type') { $type = Input::get('type'); if ($type == null) { $type = $types[0]; } // array_keys() = get keys from value // appends() = add 'get' variables (to url) $cats = Category::whereDepth(array_keys($types, $type))->paginate(25)->appends(Input::except('page')); } else { if ($view == 'all') { $cats = Category::paginate(25)->appends(Input::except('page')); } } return view('admin.main')->with('category', $_category)->with('cats', $cats)->with('levels', $levels)->with('view', $view)->with('views', $views)->with('types', $types); // only for 'type' view }
public function run() { // Get the categories subtree of the first root category $categories = Category::roots()->first()->getDescendantsAndSelf(); // Pretend first ser has logged in auth()->loginUsingId($i = 1); // Add a page for each category of the subtree foreach ($categories as $category) { Page::create(['name' => "Page {$i}", 'source' => "Content of page {$i}", 'category_id' => $category->id]); $i++; } }
public function edit(Course $course) { $user = $this->user; $mainCategories = Category::roots()->lists('name', 'id'); $main = []; $main[0] = 'انتخاب کنید'; foreach ($mainCategories as $key => $value) { $main[$key] = $value; } $subCategoriesQuery = $course->categories(); $subCategories = $subCategoriesQuery->lists('name', 'id'); //dd($subCategories); $selectedMainCategory = $subCategoriesQuery->getParent()->id; $tagsQuery = $course->tags(); $tags = $tagsQuery->lists('name', 'name'); $selected = $tagsQuery->lists('name')->toArray(); return view('admin.course.edit', compact('course', 'user', 'tags', 'selected'))->with(['title' => 'ویرایش دوره', 'main' => $main, 'subCategories' => $subCategories, 'selectedMainCategory' => $selectedMainCategory, 'selectedSubCategories' => $subCategoriesQuery->lists('id')->toArray()]); }
public function recursive() { $cats = Category::roots()->get(); $supercatset = []; foreach ($cats as $cat) { $catset = []; echo $cat->name . '<br>'; foreach ($cat->children()->get() as $sub) { $subcatset = []; echo ' ' . $sub->name . '<br>'; foreach ($sub->children()->get() as $post) { echo ' ' . $post->name . '<br>'; $subcatset[strtolower($post->name)]['title'] = $post->name; } $catset[strtolower($sub->name)]['title'] = $sub->name; $catset[strtolower($sub->name)]['children'] = $subcatset; } $supercatset[strtolower($cat->name)]['title'] = $cat->name; $supercatset[strtolower($cat->name)]['children'] = $catset; } return $supercatset; }
public function getCatSet() { $roots = Category::roots()->get(); $catset = []; // complete category set, ready to display $counter = 0; foreach ($roots as $cat) { if ($counter > 11) { break; } $catset[$cat->name]['title'] = $cat->name; $catset[$cat->name]['id'] = $cat->id; // $catset[$cat->name]['type'] = 'cat'; // not the solution // echo '<br>' . $cat->name . '<br>'; $subcats = $cat->children()->get(); $subcatcounter = 0; $subcatcount = count($subcats); for ($col = 0; $col < 3; $col++) { if ($subcatcounter == $subcatcount) { break; } // echo 'col ' . $col . '<br>'; $rowcounter = 0; $fillmore = true; $postcatcounter = 0; $postcats = []; $postcatcount = 0; $fillhead = true; $colarray = []; while ($fillmore) { // echo 'filling row ' . $rowcounter; if ($fillhead) { // echo ' subcat ' . $subcats[$subcatcounter]->name . '<br>'; $colarray[$rowcounter]['title'] = $subcats[$subcatcounter]->name; $colarray[$rowcounter]['type'] = "subcat"; $colarray[$rowcounter]['id'] = $subcats[$subcatcounter]->id; $postcats = $subcats[$subcatcounter]->children()->get(); $postcatcount = count($postcats) - 1; if ($postcatcount == -1) { $fillmore = false; } $subcatcounter++; $fillhead = false; } else { // echo ' postcat ' . $postcats[$postcatcounter]->name . '<br>'; $colarray[$rowcounter]['title'] = $postcats[$postcatcounter]->name; $colarray[$rowcounter]['type'] = 'postcat'; $colarray[$rowcounter]['id'] = $postcats[$postcatcounter]->id; $postcatcounter++; if ($postcatcounter > $postcatcount) { $postcatcounter = 0; break; } } $rowcounter++; if ($rowcounter > 11) { $fillmore = false; } } $catset[$cat->name]['children'][$col] = $colarray; } $counter++; } return $catset; }