Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use App\User;
- use App\Website;
- use App\Zone;
- use App\Feed;
- use App\StoryGroup;
- use App\Story;
- use Auth;
- use Storage;
- use Image;
- class StoryController extends Controller
- {
- //
- public function __construct() {
- $this->middleware('auth')->except(['retrieveStories']);
- }
- public function retrieveStories(Request $request, $zone_id, $zone_type) {
- $referrer = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_SCHEME) . '://' . parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
- if ($zone_type === "static") {
- // @todo: Controllo se effettivamente è static
- $story_groups = StoryGroup::whereHas('zones', function ($q) use ($zone_id, $referrer) {
- $q->where('id', $zone_id)
- ->whereHas('website', function($q) use ($referrer) {
- $q->where('url', $referrer);
- });
- })->with("stories")->get();
- return $story_groups;
- } else if ($zone_type === "dynamic") {
- // @todo: Controllo se effettivamente è dynamic
- $story_groups = StoryGroup::whereHas('zones', function ($q) use ($zone_id, $referrer) {
- $q->where('id', $zone_id)
- ->whereHas('website', function($q) use ($referrer) {
- $q->where('url', $referrer);
- });
- })->with('feed', 'feed.stories')->get();
- return $story_groups;
- }
- }
- // Controller per single story group -> /story/{story_group_id/create}
- public function getCreateStory($story_group_id = null)
- {
- if (!empty($story_group_id)) {
- return view('story.create')->with(compact('story_group_id'));
- } else {
- $story_groups = StoryGroup::all();
- return view('story.createw')->with(compact('story_groups'));
- }
- }
- public function postCreateStory(Request $request, $story_group_id = null)
- {
- $story = Story::create([
- 'name'=>$request->input('name'),
- 'title'=>$request->input('title'),
- 'destination_url'=>$request->input('destination_url'),
- 'type'=>$request->input('types')
- ]);
- if (!Storage::disk('public')->exists('stories')) {
- Storage::makeDirectory('public/stories');
- }
- Image::make($request->file('picture_url'))->save(storage_path('app/public/stories/' . $story->id . '.jpg'));
- $story->picture_url = '/stories/' . $story->id . '.jpg';
- $story->save();
- if (!empty($story_group_id)) {
- $story->storyGroups()->sync($story_group_id);
- return redirect('/story/'.$story_group_id.'/'.$story->id);
- } else {
- $story_groups = $request->input('story_group', []);
- $story_groups_a = [];
- foreach ($story_groups as $k => $story_group) {
- $story_groups_a[] = $k;
- }
- $story->storyGroups()->sync($story_groups_a);
- return redirect('/story/'.$story->id);
- }
- }
- public function getUpdateStory($story_id, $story_group_id = null)
- {
- $story = Story::findOrFail($story_id);
- return view('story.update')->with(compact('story_group_id','story'));
- }
- public function getUpdateStoryForSingleStoryGroup($story_group_id, $story_id)
- {
- $story = Story::findOrFail($story_id);
- return view('story.update')->with(compact('story_group_id','story'));
- }
- public function postUpdateStoryForSingleStoryGroup(Request $request, $story_group_id, $story_id)
- {
- $story = Story::find($story_id);
- $story->name = $request->input('name');
- $story->title = $request->input('title');
- $story->destination_url = $request->input('destination_url');
- $story->type = $request->input('types');
- if (!Storage::disk('public')->exists('stories')) {
- Storage::makeDirectory('public/stories');
- }
- if (!empty($request->file('picture_url'))) {
- Image::make($request->file('picture_url'))->save(storage_path('app/public/stories/' . $story->id . '.jpg'));
- $story->picture_url = '/stories/' . $story->id . '.jpg';
- }
- $story->save();
- $story->storyGroups()->sync($story_group_id);
- return back();
- }
- public function deleteStoryForSingleStoryGroup(Request $request, $story_group_id, $story_id)
- {
- Story::destroy($story_id);
- return redirect('/story/' . $story_group_id . '/create');
- }
- // Controller per story/create (senza story_group_id)
- public function postUpdateStory(Request $request, $story_id)
- {
- $story = Story::find($story_id);
- $story->name = $request->input('name');
- $story->title = $request->input('title');
- $story->destination_url = $request->input('destination_url');
- $story->type = $request->input('types');
- if (!Storage::disk('public')->exists('stories')) {
- Storage::makeDirectory('public/stories');
- }
- if (!empty($request->file('picture_url'))) {
- Image::make($request->file('picture_url'))->save(storage_path('app/public/stories/' . $story->id . '.jpg'));
- $story->picture_url = '/stories/' . $story->id . '.jpg';
- }
- $story->save();
- $story_groups = $request->input('story_group', []);
- $story_groups_a = [];
- foreach ($story_groups as $k => $story_group) {
- $story_groups_a[] = $k;
- }
- $story->storyGroups()->sync($story_groups_a);
- return back();
- }
- public function deleteStory(Request $request, $story_id)
- {
- Story::destroy($story_id);
- return redirect('/story/create');
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement