Это рекомендуемый подход. В большинстве случаев вы создадите всего 1 пакет. Выполняем в папке /core
php artisan package:create main
Введите имя своего пакета - Main
params: | |
&chunk=Redirect Map Chunk;text;redirectMap | |
OnPageNotFound | |
global $modx; | |
$map = $modx->getChunk($chunk); | |
$lines = explode("\r\n",$map); | |
$redirectArray = array(); | |
foreach($lines as $line) { | |
list($link,$redirectId) = explode('||',$line); |
switch ($modx->event->name) { | |
case 'OnManagerBeforeOrdersListRender': { | |
// добавляем столбец в таблицу заказов | |
$params['columns']['name'] = [ | |
'title' => 'Имя', | |
'content' => function($data, $DL, $eDL) { | |
return !empty($data['fields']['fullname']) ? $data['fields']['fullname'] : ''; | |
}, | |
'sort' => 20, |
/** | |
* categoryUpdate | |
* | |
* При сохранении и перемещении товаров обновляет их категорию | |
* | |
* @category plugins | |
* @internal @events onAfterMoveDocument,OnDocFormSave | |
*/ | |
$e = $modx->Event; |
public static function prepare(array $data = array(), DocumentParser $modx, $_DocLister, prepare_DL_Extender $_extDocLister){ | |
return $data; | |
} | |
//FormLister preare нельзять анонимно только название функции или метода | |
function setSubject(DocumentParser $modx,array $data,\FormLister\Form $Fl,string $name) | |
{ | |
} | |
<?php | |
date_default_timezone_set('Europe/Moscow'); | |
$host ='http://ursite.ru/manager/'; | |
$auth_fields = [ | |
'username' => 'administrator', | |
'password' => '******', | |
]; | |
$header = [ | |
'Accept: */*', | |
'Accept-Encoding: gzip, deflate', |
let myconfig = { | |
selector: selector_myconfig, | |
document_base_url: modx_site_url, | |
language: lang, | |
language_url: modx_site_url + 'assets/plugins/tinymce5/langs/' + lang + '.js', | |
plugins: 'print preview importcss searchreplace autolink directionality visualblocks visualchars fullscreen image link media template table charmap hr paste pagebreak nonbreaking anchor toc insertdatetime advlist save lists wordcount imagetools textpattern noneditable charmap emoticons code', | |
toolbar1: 'undo | bold italic | alignleft aligncenter alignright | bullist numlist blockquote table | link unlink image insertfile formatselect | visualblocks removeformat code ', | |
mobile:{ | |
theme: "mobile" |
<?php | |
function getUserGeo() { | |
if (!empty($_SERVER['HTTP_CLIENT_IP'])) { | |
$ip = $_SERVER['HTTP_CLIENT_IP']; | |
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { | |
$ip = explode(",",$_SERVER['HTTP_X_FORWARDED_FOR'])[0]; | |
} elseif (!empty($_SERVER['REMOTE_ADDR'])){ | |
$ip = $_SERVER['REMOTE_ADDR']; | |
} | |
else{ |
#!/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" |
#Laravel Routing, Request, Response, Validator
Очень долгая история с вопросом как же правильно рабатать с Ajax в Evo вот методы которые предлагались ранеее:
В Evo 3.0 предлагаем поставить точку в выборе правильного решения через Laravel Routes