function run(cb) {
directionsService.route(route,
function(response) {
// ...
let distKm = parseInt(dist / 1000);
cb(distKm);
}
});
}
run(function(result){
console.log(result);
})
document.getElementById('btn-next').onclick = () => {
run(function(result){
console.log(result);
})
};
Это значит что все запросы которые я посылаю из браузера должны проходить через web.php?
Route::middleware('web')
->group(base_path('routes/web.php'));
Route::prefix('api')
- ->middleware('api')
+ ->middleware('web')
->group(base_path('routes/api.php'));
function some_plugin_name_get_remote_address() {
$remote_addr = getenv('HTTP_CLIENT_IP') ? getenv('HTTP_CLIENT_IP') :
(getenv('HTTP_X_FORWARDED_FOR') ? getenv('HTTP_X_FORWARDED_FOR') :
(getenv('HTTP_X_FORWARDED') ? getenv('HTTP_X_FORWARDED') :
(getenv('HTTP_FORWARDED_FOR') ? getenv('HTTP_FORWARDED_FOR') :
(getenv('HTTP_FORWARDED')?getenv('HTTP_FORWARDED'):
getenv('REMOTE_ADDR')
))));
$remote_addr = str_replace('for=', '', $remote_addr);
return $remote_addr;
}
Вобщем верстать нужно много проектов и разных , я так понял.
И чем больше проектов тем лучше, и типа со временем они отложатся в памяти.
$input = [
[2, 'скрипт холодного звонка по продаже услуг'],
[2, 'продажи в переписке'],
[2, 'автоматизация отдела продаж'],
[2, 'заказать скрипт продаж'],
[3, 'доставка еды из ресторана'],
[3, 'еда из ресторана на дом'],
[3, 'доставка еды из ресторана на дом'],
[4, 'доставка товаров из китая в россию'],
[4, 'купить в китае с доставкой в россию'],
[4, 'доставка запчастей из китая в россию'],
];
$output = [];
foreach($input as $item) {
if (!array_key_exists($item[0], $output)) {
$output[$item[0]] = [];
}
$output[$item[0]][] = $item[1];
}
$output = array_map(fn($item) => join(', ', $item), $output);
var_dump($output);
body {
background: black no-repeat / cover;
background-image: var(--bg-image-mobile);
}
@media (min-width: 768px) {
body {
background-image: var(--bg-image-tablet);
}
}
@media (min-width: 1200px) {
body {
background-image: var(--bg-image-desktop);
}
}
<body style="
--bg-image-mobile: url(/images/bg-image-mobile.jpg);
--bg-image-tablet: url(/images/bg-image-tablet.jpg);
--bg-image-desktop: url(/images/bg-image-desktop.jpg);
">
</body>
class DynamicRoutes
{
public function routes(): void
{
/** @var Collection $pageCollection */
$pageCollection = getFromCacheIf(config('cache.pages'), CACHE_PAGES, function () {
try {
return $this->getPages();
} catch (\Exception $exception) {
return new Collection();
}
});
$pageCollection->each(function (Page $page) use ($pageCollection) {
$routeName = ROUTE_PREFIX_PAGE.$page->slug;
$routeUri = $page->getAttribute('url');
$parentRouteName = $page->parent_id
? ROUTE_PREFIX_PAGE.($pageCollection->get($page->parent_id)->slug)
: 'home';
Route::prefix($routeUri)->group(function () use ($page, $routeName, $parentRouteName) {
Route::get('', static function () use ($page) {
return App::call($page->controllerName(), ['page' => Page::findOrFail($page->id)]);
})
->name($routeName)
->breadcrumbs(function (Trail $trail) use ($page, $routeName, $parentRouteName) {
return $trail->parent($parentRouteName)
->push($page->localizedAttribute('title'), route($routeName));
});
switch ($page->controllerName()) {
case GalleryController::class:
$this->galleryRoutes($routeName);
break;
case TourController::class:
$this->tourRoutes($routeName);
break;
case NewsController::class:
$this->newsRoutes($routeName);
break;
}
});
});
}
private function galleryRoutes(string $parentRouteName): void
{
Route::get('{gallery:slug}', [GalleryController::class, 'show'])
->name(ROUTE_GALLERY)
->breadcrumbs(function (Trail $trail, Gallery $gallery) use ($parentRouteName) {
return $trail->parent($parentRouteName)
->push($gallery->localizedAttribute('title'), route(ROUTE_GALLERY, $gallery));
});
}
private function tourRoutes(string $parentRouteName): void
{
Route::get('{tour:slug}', [TourController::class, 'show'])
->name(ROUTE_TOUR)
->breadcrumbs(function (Trail $trail, Tour $tour) use ($parentRouteName) {
return $trail->parent($parentRouteName)
->push($tour->localizedAttribute('title'), route(ROUTE_TOUR, $tour));
});
}
private function newsRoutes(string $parentRouteName): void
{
Route::get('{news:slug}', [NewsController::class, 'show'])
->name(ROUTE_NEWS)
->breadcrumbs(function (Trail $trail, News $news) use ($parentRouteName) {
return $trail->parent($parentRouteName)
->push($news->localizedAttribute('title'), route(ROUTE_NEWS, $news));
});
}
private function getPages(): Collection
{
$pages = Page::whereNotNull('slug')->get()->keyBy('id');
$pages->each(function (Page $page) use ($pages) {
$page->setAttribute('url', $this->buildUrlForPage($page, $pages));
});
return $pages;
}
private function buildUrlForPage(Page $page, Collection $pages): string
{
if (!$page->parent_id) {
return $page->slug;
}
$parentPage = $pages->get($page->parent_id);
return $this->buildUrlForPage($parentPage, $pages).'/'.$page->slug;
}
}
//...
app(DynamicRoutes::class)->routes();
Route::fallback(function () {
return response()->view('errors.404', [], 404);
});