Это рекомендуемый подход. В большинстве случаев вы создадите всего 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']; | |
| } | |
| } |