Это рекомендуемый подход. В большинстве случаев вы создадите всего 1 пакет. Выполняем в папке /core
php artisan package:create main
Введите имя своего пакета - Main
//using https://github.com/apvarun/toastify-js | |
$(document).on('cart-add-complete.commerce', function (e, params) { | |
var instance = params.data.instance; | |
switch(instance){ | |
case 'comparison': | |
var growlText = "Товар добавлен к сравнению"; | |
var growlLink = "/compare"; | |
break; | |
case 'wishlist': | |
var growlText = "Товар добавлен в избранное"; |
<div class="field type-<?= $field['type'] ?>" data-field="<?= $name ?>"> | |
<?php if (!empty($field['caption'])): ?> | |
<div class="field-name"><?= $field['caption'] ?></div> | |
<?php endif; ?> | |
<input type="text" <?php if($value){ echo('style="background-color:'.$value.'"'); } ?> name="contentblocks_<?= $name ?>" value="<?= htmlentities($value) ?>" oninput="this.setAttribute('value', this.value)" onfocus="this.setAttribute('type', 'color')" onblur="this.setAttribute('type', 'text'); this.style.backgroundColor=this.value"> | |
<?php if (!empty($field['note'])): ?> | |
<div class="field-note"><?= $field['note'] ?></div> | |
<?php endif; ?> |
<?php | |
$id = $modx->documentObject['id']; | |
$res = $modx->db->select("contentid", $modx->getFullTableName('site_tmplvar_contentvalues'), "FIND_IN_SET('".$id."',value) AND tmplvarid=9"); | |
$arr = $modx->db->makeArray($res); | |
$final = Array(); | |
foreach($arr as $k=>$v){ | |
$final[]=($v['contentid']); | |
} | |
return(implode(",",$final)); |
$(document).on('submit', 'form.myFormWithFiles', function (event) { | |
event.preventDefault(); | |
event.stopImmediatePropagation(); | |
var $this = $(this); | |
var formData = new FormData($($this)[0]); | |
$.ajax({ | |
type: $this.attr('method'), | |
url: $this.attr('action'), | |
data: formData, |
<?php | |
define('MODX_API_MODE', true); | |
define('MODX_BASE_PATH', __DIR__ . '/'); | |
define('MODX_BASE_URL', '/'); | |
define('MODX_SITE_URL', 'http://www.sitename.ru/'); | |
include_once("index.php"); | |
$modx->db->connect(); | |
if (empty ($modx->config)) { |
[[oneLatestResByParent]] | |
<?php | |
if (!function_exists('show_latest')) { | |
function show_latest() { | |
global $modx; | |
$output = ''; | |
$table = $modx->getFullTableName('site_content'); | |
$result = $modx->db->select('id, parent', $table, '(parent=61 OR parent=63 OR parent=64) AND deleted=0 AND published=1', 'pub_date ASC, createdon ASC', ''); | |
$members = $modx->db->makeArray( $result ); | |
$struct = []; |
<?php | |
//ПРЕДОПРЕДЕЛЯЕМЫЕ ПЕРЕМЕННЫЕ | |
$responsible_user_id = ######; //id ответственного по сделке, контакту, компании | |
$lead_name = 'Заявка с сайта'; //Название добавляемой сделки | |
$lead_status_id = ''; //id этапа продаж, куда помещать сделку. Пусто - неразобранное | |
$lead_desc = '' //Дополнительная заметка к сделке. Сюда можно поместить тело письма и т.д. | |
$contact_name = $cname; //Название добавляемого контакта | |
$contact_phone = $cphone; //Телефон контакта |
$title = 'Доставка курьером'; | |
$price = ci()->currency->convertToActive(100); | |
switch ($modx->Event->name) { | |
case 'OnRegisterDelivery': { | |
$params['rows']['fixed'] = [ | |
'title' => $title, | |
'price' => $price, | |
]; | |
$params['rows']['sam'] = [ |
switch ($modx->event->name) { | |
case 'OnBeforeCartItemAdding': { | |
$offset = intval($params['item']['options']['variant'])-1; | |
$itemid = intval($params['item']['id']); | |
$myitemfields = json_decode($modx->runSnippet("multiTV",Array('tvName'=>'variant','toJson'=>1,'display'=>1,'offset'=>$offset,'docid'=>$itemid)),TRUE)[0]; | |
$params['item']['price'] = $myitemfields['price']; | |
$params['item']['name'] = $myitemfields['title']; | |
} | |
} |