public function handle()
{
- //$this->call('backup:run');
+ $this->call('backup:run');
$this->_handleMagicFolder([$this, '_resetSlug']);
$this->call('cache:clear');
}
}
$class = get_class($model);
$all = $class::all();
- if ($class !== 'App\Models\Page') {
- return;
- }
$locale = $this->argument('locale');
foreach ($all as $instance) {
$instance->setLocale($locale);
use Cubist\Backpack\app\Magic\Menu\Menu;
use Cubist\Backpack\app\Magic\Menu\PageItem;
+use Cubist\Backpack\app\Magic\Models\Locale;
use Illuminate\Http\Request;
class CubistSEOController extends CubistFrontController
public function sitemap(Request $request)
{
- $res = '<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
- if (config('cubist.seo_robots', true)) {
+ $locales = Locale::getEnabledLocalesCodes();
+
+ $res = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
+ $res .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">' . "\n";
+ if (true || config('cubist.seo_robots', true)) {
$pages = Menu::getAllNavigablePages();
foreach ($pages as $url => $page) {
if ($page instanceof PageItem && !$page->isRobots()) {
continue;
}
- $res .= '<url><loc>' . $url . '</loc></url>';
+ $res .= "\t" . '<url>' . "\n";
+ $res .= "\t\t" . '<loc>' . $url . '</loc>' . "\n";
+ if (count($locales) > 1) {
+ foreach ($locales as $locale) {
+ $translated = $page->getTranslatedPage($locale);
+ if (null === $translated || !$translated->isRobots()) {
+ continue;
+ }
+ $res .= "\t\t" . '<xhtml:link rel="alternate" hreflang="' . $locale . '" href="' . $translated->getURL() . '" />' . "\n";
+ }
+ }
+ $res .= "\t" . '</url>' . "\n";
}
}
$res .= '</urlset>';