Перенос проекта в универсальную админку

1) Идем в next -> server -> pages, везде, где есть баннер, обновляем разметку
Добавляем класс «universalBanner» и id «mainBanner»
Если страниц несколько, то на каждой странице свой id у баннера, например «appBanner», «mirrorBanner» и т.д.
Если баннеров несколько на странице, то всем задаем класс «universalBanner», но разные id.
Заливаем страницы на сервак.
2) Идем в корень проекта, создаем папку «views». В папке «views» создаем еще одну папку «partials».
3) Заходим в проект «alfaparser» в терминале cd /var/www/node_projects/alfaparser. Запускаем его командой «node .» либо «node index.js».
4) В браузере запускаем парсер контента проекта в json «80.85.142.237:5158/parser/book-of-ra-de.com».
После парсера, в корне проекта появится файл data.json. Открываем этот файл. Перед объектом «pages», нужно создать объект «menu».
Если пунктов меню нет, то объект создаем с пустыми массивами.
«menu»: {
«header»: [],
«footer»: []
},
Если пункты меню есть, пример во вложении.
5) В этом же файле в объекте каждой страницы, после «id», создаем новый ключ «banners» и в массиве перечисляем все id баннеров для конкретной страницы.
«banners»: [«mainBanner», «mainAppBanner»],
Заливаем data.json назад.
6) В браузере 80.85.142.237:5158/book-of-ra-de.com/create-css
7) В браузере 80.85.142.237:5158/book-of-ra-de.com/footer
8) В браузере 80.85.142.237:5158/book-of-ra-de.com/header
9) В браузере 80.85.142.237:5158/book-of-ra-de.com/universalBanner
По той же логике нужно отрендорить блоки в контенте (например, карточки казино, блоки телеграм, слоты и др., можно обратиться по классу какого-нибудь блока, например, 80.85.142.237:5158/book-of-ra-de.com/casinos
В папке views-> partials появятся файлы с названиями блоков.

В шаблонах header/footer в тех местах, где должно выводиться меню, нужно вставить перебор.

для хэдера:
{{#each headerMenu}}
     <a href=»{{this.slug}}»>{{this.title}}</a>
 {{/each}}

для футера:

{{#each footerMenu}}
     <a href=»{{this.slug}}»>{{this.title}}</a>
 {{/each}}

<a class=»{{#if (isActive this.slug ../reqPath)}}active{{/if}}» href=»{{#if ../amp}}{{this.slug}}amp{{else}}{{this.slug}}{{/if}}»>{{title}}</a>

Если нужно, чтобы активная страницы подсвечивалась другим цветом (добавлялся класс active).


10) Идем в проект gates-of-olympus-oyna-tr.com и копируем оттуда 4 файла из папки views, которые кладем в папку views в своем проекте:
404.hbs + loyout.hbs + robots.hbs + sitemap.hbs


11) Идем в проект gates-of-olympus-oyna-tr.com и копируем оттуда 3 файла из корня, которые кладем в корень в своем проекте:
start.js + utils.js + settings.json (если его нет в своем проекте)


12) Изменяем settings.json:
— domains — пишем текущий домен + все домены сетки, если есть
— amp domains — если нет ампов, оставляем пустой массив «ampDomains»: [],
— «amp» — удаляем полностью свойство, если нет ампа
— проставляем все поля)

Проверить «trackLink»: «сюда треклинк из main.js»,

13) Открываем в корне проекта файл package.json. Удаляем все существующие dependencies и вставляем 4 эти:

«express»: «^4.19.2»,
«express-hbs»: «^2.5.0»,
«fs»: «^0.0.1-security»,
«node-fetch»: «^3.3.1».
Удаляем все devdependencies.
Команду start меняем: «start»: «next start -p 3235» -> «start»: «node start.js».
14) Заливаем package.json в корень. Удаляем package-lock.json.
15) В терминале переходим в наш проект cd /var/www/node_projects/book-of-ra-de.com и запускаем npm i.
Рестартим сервис systemctl restart book-of-ra-de
16) Идем в универсальную админку http://188.40.125.156:5173/ (если есть инклуды внутри контента, например, карточки казино, блоки телеграм, слоты и др.)
Удаляем raw html с нужным блоком и вставляем шорткод с названием нужного файла (можно проверить в папке partials.)


17) Починить 404 страницу — за неё отвечает файл 404.hbs в папке views (title страницы + фавикон + контент).

18) Проверить: фавикон + robots.txt + sitemap.xml + наличие

<meta name=»robots» content=»index,follow,noarchive»>

19) Добавить fixed кнопки в footer.hbs

<div class="footer-block-btn">
<div class="buttons">
<button class="btn-reg regButton" data-goal="btn-reg" aria-label="Login" data-split="buttonReg" name="Login">Login</button>
<button class="btn-login logButton" data-goal="btn-login" aria-label="Criar Conta" data-split="buttonLog" name="Criar Conta">Criar Conta</button>
</div>
</div>

20) Проверить Page speed https://pagespeed.web.dev/