Esempio n. 1
0
 public function parseFields($data, $cart)
 {
     $fields = \Ecommerce\UserAdds\Field::getList();
     $name = '';
     foreach ($fields as $field) {
         if ($field->save && !empty($data[$field->id])) {
             $name .= htmlspecialchars($data[$field->id]) . ' ';
         }
     }
     $name = trim($name);
     $userAdds = Ecommerce\UserAdds::get([['user_id', $cart->user->id], ['name', $name]]);
     if (!$userAdds) {
         $userAdds = new Ecommerce\UserAdds();
         $userAdds->user_id = $cart->user->id;
         $userAdds->name = $name;
         $userAdds->save();
         foreach ($fields as $field) {
             if (!$field->save) {
                 continue;
             }
             $userAddsValue = new Ecommerce\UserAdds\Value();
             $userAddsValue->value = htmlspecialchars($data[$field->id]);
             $userAddsValue->useradds_field_id = $field->id;
             $userAddsValue->useradds_id = $userAdds->id;
             $userAddsValue->save();
         }
     }
     $user = \Users\User::get($cart->user_id);
     foreach ($fields as $field) {
         $info = new \Ecommerce\Cart\Info();
         $info->name = $field->name;
         $info->value = htmlspecialchars($data[$field->id]);
         $info->useradds_field_id = $field->id;
         $info->cart_id = $cart->id;
         $info->save();
         $relations = [];
         if ($field->userfield) {
             if (strpos($field->userfield, ':')) {
                 $path = explode(':', $field->userfield);
                 if (!$user->{$path[0]}->{$path[1]}) {
                     $user->{$path[0]}->{$path[1]} = $info->value;
                     $relations[$path[0]] = $path[0];
                 }
             } else {
                 if (!$user->{$field->userfield}) {
                     $user->{$field->userfield} = $info->value;
                 }
             }
         }
         foreach ($relations as $rel) {
             $user->{$rel}->save();
         }
         $user->save();
     }
     return $userAdds;
 }
Esempio n. 2
0
<fieldset>
  <?php 
if (\Users\User::$cur->id) {
    $userAdds = Ecommerce\UserAdds::getList(['where' => ['user_id', \Users\User::$cur->id]]);
    $values = [];
    foreach ($userAdds as $userAdd) {
        $values[$userAdd->id] = $userAdd->values(['array' => true]);
    }
    if ($userAdds) {
        $form->input('select', 'userAddsId', 'Ваши контакты', ['values' => ['' => 'Выберите'] + Ecommerce\UserAdds::getList(['where' => ['user_id', \Users\User::$cur->id], 'forSelect' => true])]);
        echo '<hr />';
    }
    ?>
      <script>
          var userAddsValues = <?php 
    echo json_encode($values);
    ?>
;
          inji.onLoad(function () {
            $('[name="userAddsId"]').change(function () {
              var values = userAddsValues[$(this).val()];
              for (key in values) {
                var value = values[key];
                $('[name="userAdds[fields][' + value.useradds_value_useradds_field_id + ']"]').val(value.useradds_value_value);
              }
            });
          })
      </script>
      <?php 
}
foreach (Ecommerce\UserAdds\Field::getList(['order' => ['weight', 'asc']]) as $field) {