Skip to content

Instantly share code, notes, and snippets.

View Dmi3yy's full-sized avatar

Dmytro Lukianenko Dmi3yy

View GitHub Profile
@Dmi3yy
Dmi3yy / evo3sitecontentmodelru.md
Last active February 4, 2024 10:50
Evo 3 SiteContent Model - RU

Работа с Деревом документов через SiteContent

Вступление

Для начала рекомендую ознакомиться с документацией по Eloquent на сайте Laravel https://laravel.com/docs/6.x/queries так как в Evo логика работы с базой такая же, это не только удобно но еще и дает возможность находить информацию что и как сделать не только в рамках Evolution CMS.

Работа с дополнительными полями (TV)

Спасибо Webber за DLSiteContent, https://github.com/webber12/DLSiteContent основные методы работы с TV так же интегрированны в ядро.

@Dmi3yy
Dmi3yy / evo.sh
Last active July 24, 2023 18:42
evo.sh
#!/bin/bash
# basic script, before use need change logins,passwords in this script
# put this script in project folder and run: sh evo.sh
#variables
EVO_VERSION="3.x-dev"
INSTALL_TYPE=1
DATABASE_TYPE="mysql"
DATABASE_SERVER="localhost"
DATABASE_NAME="DB"
PageBilder
container.pbcontent.php
<?php
return [
'title' => 'Контент',
// 'show_in_templates' => [ 3 ],
// 'show_in_docs' => [ 2 ],
// 'hide_in_docs' => [ 10, 63 ],
// 'addType' => 'images',

#Laravel Routing, Request, Response, Validator

Ajax №5 или Laravel Routes для кастомных роутов и аякс запросов

Очень долгая история с вопросом как же правильно рабатать с Ajax в Evo вот методы которые предлагались ранеее:

В Evo 3.0 предлагаем поставить точку в выборе правильного решения через Laravel Routes

@Dmi3yy
Dmi3yy / hits.php
Last active July 20, 2022 08:27
hits
//<?Hits % OnLogPageHit, OnBeforeDocFormSave, OnDocFormRender
if(!defined('MODX_BASE_PATH')){die('What are you doing? Get out of here!');}
/*
Hits 1.0.3 by Yurik Dertlyan | yurik@unix.am
update by Dmi3yy@gmail.com
Plugin for Evolution CMS to register and output page hits
Installation:
- SQL 'ALTER TABLE modx_site_content ADD COLUMN `hits` INT(10) UNSIGNED NOT NULL';
- Create plugin with name "Hits" and description "1.0.3"
@Dmi3yy
Dmi3yy / NewsController.php
Created November 6, 2019 11:30
NewsController
<?php
namespace EvolutionCMS\Odkb\Controllers;
class NewsController extends BaseController {
public function render() {
$this->data['newsmenu'] = json_decode($this->evo->runSnippet('DLMenu', ['parents' => 69, 'maxDepth' => 1, 'api' => 1]), true)[0];
$this->data['newsitems'] = $this->DocLister([
'depth'=>2,
@Dmi3yy
Dmi3yy / evo3localization.md
Created October 29, 2020 16:03
evo3localization.md

Работа с мультиязычностью

Перенесли логику мультиязычности с Laravel, детальней как это в Laravel читаем тут: https://laravel.com/docs/8.x/localization, а как это в Evo читаем ниже

Основной принцып работы

В целом все очень похоже на решение bLang https://github.com/bumkaka/bLang так же можно глянуть видео как работали в более ранних версиях : https://www.youtube.com/watch?v=FVX63RRYsU4

.htaccess

Добавляем строку перед: # For Friendly URLs

@Dmi3yy
Dmi3yy / gist:2da17345eacacbe04a89e8c1cc53f348
Created November 17, 2019 09:02
Evolution CMS Lessons: Templates part 1
1 Templates 1 part
Подключаем debug и tracy:
core/custom/config/app/debug.php
<?php return true;
core/custom/config/tracy/active.php
<?php return 'manager';
@Dmi3yy
Dmi3yy / laravel-valet-plugin-for-evolution-cms.php
Last active May 22, 2018 16:05
Evolution CMS + Laravel Valet
//<?php
$e = &$modx->event;
if ($e->name == 'OnWebPageInit') {
if (strpos($_SERVER['DOCUMENT_URI'], 'laravel/valet') !== false){
$url = $modx->db->escape($_SERVER['REQUEST_URI']);
if (isset($url) && $url !== '/') {
$url = explode('?', $url);
$friendly_url_suffix = $modx->config['friendly_url_suffix'];
$base_url = $modx->config['base_url'];
$site_url = $modx->config['site_url'];
@Dmi3yy
Dmi3yy / evo1.4.0.md
Last active January 25, 2018 11:24
evo1.4.0

Evolution CMS 1.4.0

За пол года было проделанно много работы(более 600 комитов), это второй крупный релиз Evolution CMS, про первый можно почитать тут (http://modx.im/blog/news/5311.html). Основной упор в этом релизе был направлен на стабильность системы, а так же обновлению старых сниппетов на новые. Что дает возможность создавать сайты еще быстрее, да и работать сайты будут еще быстрее. В этом нам очень сильно помогает DocLister.

Из самого важного:

  • Обновлен демо сайт все старые компоненты заменены новыми, старые компоненты вынесенны в екстрас и не рекомендуются к использолванию.
  • Ditto -> DocLister
  • Wayfinder -> DLMenu
  • Breadcrumbs -> DLCrumbs
  • Eform -> FormLister