/** * Handle the creation of the slug and verifying that it is unique. * Slugs are used for URLs generally, like: http://yoursite.com/products/large-green-ball * * @param string $model - The model object. * @param string $slugSeed - The column with which to seed the slug. * @return string $unique_slug - The unique slug. */ function slug($model, $slugSeed) { $slug = sluggify($model->{$slugSeed}); $unique_slug = $slug; $i = 1; do { $not_unique = $model->where('slug', $unique_slug); if ($model->id) { $not_unique = $not_unique->where('id', '<>', $model->id); } $not_unique = $not_unique->count(); if ($not_unique) { $unique_slug = $slug . '-' . $i++; } } while ($not_unique); return $unique_slug; }
public function update($id, Request $request) { $rules = array('image' => 'image|mimes:jpeg,jpg,png,bmp,gif,svg', 'title' => 'required', 'content' => 'required'); $validator = \Validator::make(\Input::all(), $rules); if ($validator->fails()) { return redirect()->back()->withInput()->withErrors($validator); } if (!News::find($id)) { return redirect()->back()->withInput()->withErrors(['News introuvable']); } $news = News::find($id); if ($request->hasFile('image')) { $news->image = $this->updateNewsImage($request->file('image'), $news->image); } $news->title = $request->input('title'); $news->content = $request->input('content'); $news->save(); return redirect('/news/' . $news->id . '-' . sluggify($news->title)); }
$rssItem->addChild("post_password", "", $namespaces["wp"]); // TODO make configurable $rssItem->addChild("is_sticky", 0, $namespaces["wp"]); // TODO make configurable // the first tag in comments seem to be the original WordPress category $theFirstTag = null; foreach ($item["story_tags"] as $story_tag) { $rssCategory = $rssItem->addChild("category", null); $rssCategory->addCData($story_tag); $rssCategory->addAttribute("domain", "post_tag"); $rssCategory->addAttribute("nicename", sluggify($story_tag)); if (is_null($theFirstTag)) { $theFirstTag = $story_tag; } } if (is_null($theFirstTag)) { $theFirstTag = 'Japan'; } // set default category - should be configurable $rssCategory = $rssItem->addChild("category", null); $rssCategory->addCData($theFirstTag); $rssCategory->addAttribute("domain", "category"); $rssCategory->addAttribute("nicename", sluggify($theFirstTag)); } // indent $dom = new DOMDocument('1.0', 'utf-8'); $dom->preserveWhiteSpace = false; $dom->formatOutput = true; $dom->loadXML($rss->asXML()); $formattedXml = $dom->saveXML(); file_put_contents("newsblur-exported.xml", $formattedXml);
public function make($routeName = null, $arguments = [], $absolute = false, $envPrefix = true) { if (!$routeName) { $routeName = $this->data["name"]; } foreach ($this->routes as $routeArr) { foreach ($routeArr as $route) { if ($route["name"] == $routeName) { $args = []; foreach ($arguments as $key => $val) { $args["[" . $key . "]"] = $val; } foreach ($route['resolvers'] ?? [] as $key => $resolver) { /** * If index is not set, argument should be resolved by post/get data or similar. * T00D00 - this needs to be resolved without proper index (find by class) */ if (isset($args['[' . $key . ']'])) { $args['[' . $key . ']'] = resolve($resolver)->parametrize($args['[' . $key . ']']); } } if ($args) { /** * Replace parameters in url. */ foreach ($args as $key => &$arg) { if (is_string($arg)) { if (strpos(strtolower($key), 'url') !== false) { $arg = sluggify($arg); } else { $arg = urlencode($arg); } } } $filteredArgs = (new Collection($args))->reduce(function ($item) { return !is_object($item); }, true)->all(); $route['url'] = str_replace(array_keys($filteredArgs), $filteredArgs, $route['url']); } return ($absolute || isConsole() ? $this->config->get("protocol") . '://' . ($this->config->get("domain") ?? $_SERVER['HTTP_HOST']) : "") . ($envPrefix && dev() && !isConsole() ? "/dev.php" : "") . $route["url"]; } } } }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { if ($request->has('title') && $request->has('content')) { $page = Page::find($id); $page->title = $request->input('title'); $page->content = $request->input('content'); $page->save(); return redirect('/page/' . $page->id . '-' . sluggify($page->title)); } else { return redirect('/'); } }
function sluggify($url) { $url = strtolower($url); $url = strip_tags($url); $url = stripslashes($url); $url = html_entity_decode($url); $url = str_replace('\'', '', $url); $match = '/[^a-z0-9]+/'; $replace = '+'; $url = preg_replace($match, $replace, $url); $url = trim($url, '-'); return $url; } if (isset($_POST['inputText'])) { $text = $_POST['inputText']; $textURL = sluggify($text); $apiURL = 'https://api.havenondemand.com/1/api/sync/analyzesentiment/v1?text=' . $textURL . '+%3C3&apikey=7cb8c3d6-1f57-4525-b368-8cab997adf85'; $curl = curl_init(); curl_setopt_array($curl, array(CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $apiURL)); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $resp = curl_exec($curl); if (!curl_exec($curl)) { die('Error: "' . curl_error($curl) . '" - Code: ' . curl_errno($curl)); } curl_close($curl); $data = json_decode($resp); $sentiment = $data->aggregate->sentiment; $score = $data->aggregate->score; if (isset($data->positive[0]->score)) { $pscore = $data->positive[0]->score; $psentiment = $data->positive[0]->sentiment;
function insertMeniu($tip_id, $nume, $parinte = 'Null') { $nume = mysql_real_escape_string($nume); $nume = trim($nume); $cod = sluggify($nume); $q2 = "INSERT INTO meniu(tip_id, nume, cod, parinte) VALUES({$tip_id}, '{$nume}', '{$cod}', {$parinte});"; $r2 = mysql_query($q2); var_dump($q2); if (!$r2) { die("Error insertion meniu: " . $nume); } return mysql_insert_id(); }