Илья Уткин

Илья Уткин

С нами с 15 декабря 2012; Место в рейтинге пользователей: #9
Илья Уткин
14 мая 2019, 13:20
0
Бесплатно? Ну, может быть. Я этого не исключаю.
Илья Уткин
14 мая 2019, 13:14
0
Ну тут вообще ничего про битрикс 24 нет. Этот код и не должен создавать лиды.

Думаю, вам нужно создавать объявление о работе и искать специалиста за деньги. Готового решения для вашей ситуации, кажется, нет.
Илья Уткин
14 мая 2019, 13:08
+1
Могу, за 1000 руб. Но я думал, у вас уже какой-то код есть и вам просто помощь нужна.
Илья Уткин
14 мая 2019, 12:54
+1
Очень интересно — что именно вы перепробовали. Расскажите подробнее — скорее всего в ваших действиях какая-то небольшая ошибка.
Илья Уткин
06 мая 2019, 12:50
0
Ну просто пробегись по списку файлов в папке и составь массив из signature.
Илья Уткин
06 мая 2019, 07:50
+2
Вот кусочек кода, думаю, этого хватит, чтобы по примеру написать свой резолвер:
$signature = $packageName . '-' . $data['version'];
$filename = $signature . '.transport.zip';
$file_source = MODX_BASE_PATH . RELATIVE_PATH . 'packages/' . $filename;
if (file_exists($file_source)) {
    system('cp -R ' . MODX_BASE_PATH . RELATIVE_PATH . 'packages/' . $filename . ' ' . MODX_CORE_PATH . 'packages/');

    $package = $this->modx->getObject('transport.modTransportPackage',array(
        'signature' => $signature,
    ));
    if (empty($package)) {
        $package = $this->modx->newObject('transport.modTransportPackage');
        $package->set('signature', $signature);
        $package->set('state', 1);
        $package->set('created',strftime('%Y-%m-%d %H:%M:%S'));
        $package->set('workspace', 1);

        /* set package version data */
        $sig = explode('-',$signature);
        $package->set('package_name',$sig[0]);
        if (!empty($sig[1])) {
            $v = explode('.',$sig[1]);
            if (isset($v[0])) $package->set('version_major',$v[0]);
            if (isset($v[1])) $package->set('version_minor',$v[1]);
            if (isset($v[2])) $package->set('version_patch',$v[2]);
        }
        if (!empty($sig[2])) {
            $r = preg_split('/([0-9]+)/',$sig[2],-1,PREG_SPLIT_DELIM_CAPTURE);
            if (is_array($r) && !empty($r)) {
                $package->set('release',$r[0]);
                $package->set('release_index',(isset($r[1]) ? $r[1] : '0'));
            } else {
                $package->set('release',$sig[2]);
            }
        }
        $package->save();
        $package->install();
    }
} else {
    $this->modx->log('Could not find package file: ' . $filename, 'ERROR');
    return false;
}
Илья Уткин
28 апреля 2019, 09:47
0
Возможно — смотри исходники minishop2 — там как раз цена и прочие поля товара хранятся в отдельной таблице.
Илья Уткин
27 апреля 2019, 21:13
+1
Вот была статейка на эту тему: modx.pro/howto/8889
Илья Уткин
23 апреля 2019, 20:20
0
Да, типа того. Можно сравнивать со значением константы. Так, наверное, правильнее — if ($mode == modSystemEvent::MODE_UPD)
Илья Уткин
23 апреля 2019, 20:15
0
Похоже, что в базе данных у таблиц сбился автоинкремент айдишников и везде посоздавались записи с id = 0
Илья Уткин
23 апреля 2019, 20:14
1
+1
В плагине доступна переменная $mode — new или upd
Илья Уткин
18 апреля 2019, 14:29
+1
$user->set('password', $password);
$user->save();
Илья Уткин
18 апреля 2019, 14:26
0
$user = $modx->getObject('modUser', $id);
$user->changePassword($new,$current);
Илья Уткин
18 апреля 2019, 10:10
1
0
Приведи несколько примеров того, какие бывают значения TV-шки. Типа такого?
  • N200||N300||XL50
  • N200||N250
  • Не указан
  • Не указан||XL50
Илья Уткин
12 апреля 2019, 13:46
0
Зависит от возможностей сервера. Если есть возможность, лучше использовать сокеты. А если нет — можно просто на JS раз в секунду посылать AJAX-запрос и проверять, есть ли новые уведомления.
Илья Уткин
12 апреля 2019, 07:37
+1
customExtra — вот здесь есть пример сохранения форм:
ilyaut.ru/addons/very-easy-to-add-custom-objects-in-modx/
Илья Уткин
12 апреля 2019, 07:33
+2
Мне кажется, часть полей не нужна. Возмём, например, такую структуру:
id
cuser
auser
hidden
createdon
editedon

Если я (id = 7) добавляю в друзья Андрея (id = 33), то в базе создаётся запись
cuser = 7
auser = 33
hidden = 0

Когда Андрей увидит заявку и нажмёт «Отказать», в базе отмечаем hidden = 1 и больше Андрею эту заявку не показываем.

Если Андрей принимает заявку или после отказа нажмёт «Добавить в друзья», создаём запись
cuser = 33
auser = 7
hidden = 1 (так как Илья уже добавил Андрея)

При такой схеме легко джойнами прицепить эти записи и определить — если есть запись, где я в поле cuser, но нет записи, где я в поле auser, значит, я просто подписчик. Если вторая запись есть, значит мы друзья.

Когда Андрей удалит меня из друзей, его запись удаляется и я становлюсь подписчиком.