public function store() { $rules = ["project_name" => "required|alpha_dash", "asset_name" => "alpha_dash", "image_name" => "alpha_dash", "css_name" => "alpha_dash", "js_name" => "alpha_dash", "plugin_name" => "alpha_dash"]; $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { return \Redirect::route("generate")->withInput()->withErrors($validator); } $asset_name = Input::has("asset_name") ? Input::get("asset_name") : "assets"; $css_name = Input::has("css_name") ? Input::get("css_name") : "css"; $image_name = Input::has("image_name") ? Input::get("image_name") : "images"; $js_name = Input::has("js_name") ? Input::get("js_name") : "js"; $plugin_name = Input::has("plugin_name") ? Input::get("plugin_name") : "plugins"; $favicon = Input::has("favicon") && Input::get("favicon") != "" ? true : false; $opengraph = Input::has("opengraph") && Input::get("opengraph") != "" ? true : false; $twittercard = Input::has("twittercard") && Input::get("twittercard") != "" ? true : false; $jquery = Input::has("jquery") && Input::get("jquery") != "" ? true : false; $jqueryui = Input::has("jqueryui") && Input::get("jqueryui") != "" ? true : false; $normalize = Input::has("normalize") && Input::get("normalize") != "" ? true : false; $meyerreset = Input::has("meyerreset") && Input::get("meyerreset") != "" ? true : false; $fontawesome = Input::has("fontawesome") && Input::get("fontawesome") != "" ? true : false; $animate = Input::has("animate") && Input::get("animate") != "" ? true : false; $bootstrap = Input::has("bootstrap") && Input::get("bootstrap") != "" ? true : false; $prettyphoto = Input::has("prettyphoto") && Input::get("prettyphoto") != "" ? true : false; $indexContent = \View::make("source")->with(array("project_name" => Input::get("project_name"), "asset_name" => $asset_name, "image_name" => $image_name, "css_name" => $css_name, "js_name" => $js_name, "plugin_name" => $plugin_name, "favicon" => $favicon, "opengraph" => $opengraph, "twittercard" => $twittercard, "jquery" => $jquery, "jqueryui" => $jqueryui, "normalize" => $normalize, "meyerreset" => $meyerreset, "fontawesome" => $fontawesome, "animate" => $animate, "bootstrap" => $bootstrap, "prettyphoto" => $prettyphoto)); $zipname = str_random(40); $zip = Zipper::make(public_path() . "/projects/" . $zipname . ".zip"); $zip->addString("index.html", $indexContent); $zip->folder($asset_name . "/" . $css_name)->addString("custom.css", null); $zip->folder($asset_name . "/" . $css_name)->addString("core.css", null); $zip->folder($asset_name . "/" . $js_name)->addString("custom.js", null); $zip->folder($asset_name . "/" . $js_name)->addString("core.js", null); if ($favicon) { $zip->folder($asset_name . "/" . $image_name)->addString("favicon.ico", null); } if ($animate) { $zip->folder($asset_name . "/" . $plugin_name . "/animate")->add(storage_path() . "/assets/animate/"); } if ($bootstrap) { $zip->folder($asset_name . "/" . $plugin_name . "/bootstrap")->add(storage_path() . "/assets/bootstrap/"); } if ($jquery) { $zip->folder($asset_name . "/" . $plugin_name . "/jquery")->add(storage_path() . "/assets/jquery/"); } if ($jqueryui) { $zip->folder($asset_name . "/" . $plugin_name . "/jqueryui")->add(storage_path() . "/assets/jqueryui/"); } if ($meyerreset) { $zip->folder($asset_name . "/" . $plugin_name . "/meyerreset")->add(storage_path() . "/assets/meyerreset/"); } if ($normalize) { $zip->folder($asset_name . "/" . $plugin_name . "/normalize")->add(storage_path() . "/assets/normalize/"); } if ($prettyphoto) { $zip->folder($asset_name . "/" . $plugin_name . "/prettyphoto")->add(storage_path() . "/assets/prettyphoto/"); } $zip->close(); return ResponseHelper::downloadAndDelete(public_path() . "/projects/" . $zipname . ".zip", Input::get("project_name") . ".zip"); }