How is it possible to check an existing Pay to Public Key Hash transaction without a public key?

http://www.righto.com/2014/02/bitcoins-hard-way- using-raw-bitcoin.html explains the manual signing of a transaction and helped me with it (besides the online readable book "Mastering Bitcoin" by Andreas) ). Look at the example TX from earlier: https://blockchain.info/rawtx/e46a88ed211c1ee7f34f0f4828611da52404c3282416ae1e3b7096f9dddc6c4e?format=hex
You can see the sigscript in this section:

4840Arbeiteranrufbeamtbeamtbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb30bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb5 product adapter, which currently connect to

In decomposition, it looks like this:

48: OP_DATA_0x48: Move 48 bytes (decimal 72) bytes to the stack
30: OP_SEQUENCE_0x30: Type tag indicating SEQUENCE, begin sigscript
45: OP_LENGTH_0x44: length of R + S
02: OP_INT_0x02: Type tag INTEGER indicating the length
21: OP_LENGTH_0x20: This is SIG R (33 bytes)
00B8E264B5001780: 6D4095740E552318
8C78884DCFCBA3AA: 7C1E608F28A1A763
AF
02: OP_INT_0x02: Type tag INTEGER indicating the length
20: OP_LENGTH_0x20: This is SIG S (32 bytes)
159680F7870BE5B4: 6B6CD3110629AEAB
221E6D658DD396AE: 319B071E0D2B3396
01: OP_SIGHASHALL: terminates the ECDSA signature (ASN1 DER structure)
21: OP_DATA_0x21: Length of compressed public key (X9.63 form, 33 bytes)
0214A307355361CC: 5571154EEBA68E7F
4799F5520656E1AA: 6BA5E80BA65C6AA1
90

This last line (s) after OP_DATA_0x21 is the pubkey, which allows verification of the signature. The corresponding Bitcoin address is: 1FNtjbmxmGyt3MvHpWjhoR4ztTabUox3vp.

This entire structure is part of the "input" of a transaction. It shows that the owner had the correct priv key to sign the sender so he can spend the money. Now the specification "Pay 2 Public Key Hash" is issued, also "Where should the money go". And this is part of the spending structure in this transaction. This string:

76A914E1315C0FA59687EF4E035C184151CFCB096BE4EE88AC

can be decomposed:

                76: OP_DUP
A9: OP_HASH160
14: OP_Data14 (= decimal 20)
E1315C0FA59687EF: 4E035C184151CFCB
096BE4EE
88: OP_EQUAL_VERIFY
AC: OP_CHECKSIG
This is a P2PKH script

which contains this after the OP_DATA_14 public key hash, You can use base58check to encode this value, which returns this bitcoin address: 1MXiAjDmJzySYm6Re6vV3WgSP7rVc57LMh

To return to your question ("How is it possible to check the transaction" Paying to public key "without public key?):
I think it's worded that it does not fit in Bitcoin's logic. You have to prove with the signature that you can spend the money, and this happens in the input part of the sender. And yes, you need the pubkey, which is usually appended after the signature.
The phrase "p2pkh tx" indicates an output-related type of funds issue. You can also spend for a Multisig or even a Smart Contract transmitter. The rules of the input / signature / pubkey part will not be changed.

c # – Existing multi-element payload with EF Core Performance Improvements

I have a .NET CORE EF application that was first set up as a database and is supposed to host a payload containing items to store in my database. Their payloads can be very large and contain several "securities", and each "security" has several "positions / transactions" to be stored in the database. In some cases, the duration of the expiration may increase exponentially, and some of the payloads may take up to 20 minutes. The ultimate goal is to reduce the time it takes to look through and persist in this code. The memory function is not the problem here (afaik). I think the problem is the nested passage of the payload and all their positions. Any help that speeds this up will be welcomed. Here is my calling function:

                private async task Persist (AccPackBody package)
{
bool hasModifications = false, hasErrors = false;
var secGuidsWithPositions = new list();

using (var dbContext = new NewportMasterContext (Configs.MasterDbConnString))
{
dbContext.Database.SetCommandTimeout (300);

foreach (var mappedSecurity in pack.Internal)
{
mappedSecurity.FirmId = pack.FirmId;

SEC_IDENTIFIER existsSecurity = null;
To attempt
{

existsSecurity = wait for TryFindSecId (mappedSecurity, pack.FirmId.Value, dbContext);

}
catch (exception ex)
{
await Logger.Send (LogType.Error, "An error occurred while trying to clone security");
}

if (existsSecurity == null)
{
waitit Logger.Send (pack, LogType.Error, $ "Missing security for: Identifier: {mappedSecurity.IdentifierName} Value: {mappedSecurity.IdentifierValue}, Firm {pack.FirmId}, Currency: {mappedSecurity.Currency}");
throw new LoggedException ();
}
otherwise
{
mappedSecurity.SecurityGuid = existsSecurity.Security_UID;

POSITION[] updatedPositions = null;
if (mappedSecurity.Postitions! = null && mappedSecurity.Postitions.Length> 0)
{



updatedPositions = HandlePositions (pack, dbContext, pack.State, pack.AccountUID.Value, mappedSecurity, pack.StatementDate.Value);

secGuidsWithPositions.Add (mappedSecurity.SecurityGuid.Value);

mappedSecurity.Postitions = updatedPositions! = null && updatedPositions.Count ()> 0
? aktualisiertePositionen
: new position[0];

if (updatedPositions! = null && updatedPositions.Count ()> 0)
hasModifications = true;
}

// EditTransaction
TRANSACTION[] updatedTransactions = null;
if (mappedSecurity.Transactions! = null && mappedSecurity.Transactions.Length> 0)
{

mappedSecurity.Transactions = updatedTransactions! = null && updatedTransactions.Count ()> 0
? aktualisierteTransactions
: new TRANSACTION[0];

if (updatedTransactions! = null && updatedTransactions.Count ()> 0)
hasModifications = true;
}
}
}

if (! hasErrors && dbContext.ChangeTracker.HasChanges ())
{
To attempt
{

await dbContext.SaveChangesAsync ();


}
catch (exception ex)
{
waitit Logger.Send (pack, LogType.Warning, "Error changing db, reset:" + ex.ToString ());
throw new LoggedException ();
}
}
}

Return pack;
} 

Here are my three functions calling the above method – here are many slowdowns:

                private async task TryFindSecId (AccMappedSecurity mappedSecurity, long firmId, newportMasterContext dbContext, Guid? PackUid = null)
{

var existsSecurities = dbContext.SEC_IDENTIFIER
.Where (x => x.IdentifierName == mappedSecurity.IdentifierName
&& mappedSecurity.IdentifierValue == x.Identifier
&& x.FirmID == firmId
&& (string.IsNullOrEmpty (mappedSecurity.Currency) || x.SECURITY.Currency == mappedSecurity.Currency) && x.SECURITY.ChangeType! = "D");

var existsSecurity = existsSecurities.FirstOrDefault ();

if (existsSecurity == null)
{
var cloneResult = ClonePostition.Clone expect (
new ClonePositionRequest
{
IdentifierName = mappedSecurity.IdentifierName,
IdentifierValue = mappedSecurity.IdentifierValue,
NewCurrency = mappedSecurity.Currency,
FirmId = FirmId
},
Logger.LocalLog
);



if (cloneResult.Code! = HttpStatusCode.InternalServerError)
{
existsSecurity = dbContext.SEC_IDENTIFIER
.FirstOrDefault (x => x.IdentifierName == mappedSecurity.IdentifierName)
&& mappedSecurity.IdentifierValue == x.Identifier
&& x.FirmID == firmId
&& (string.IsNullOrEmpty (mappedSecurity.Currency) || x.SECURITY.Currency == mappedSecurity.Currency));


}
otherwise
{
waitit Logger.Send (LogType.Error, "Internal server error on clone function - clone failed" + cloneResult.Code);
}


}
otherwise
{

}

return existing security;
}





private location[] HandlePositions (AccPackBody reqPayload, newportMasterContext dbContext, Status PackState, Guid accountGuid, AccMappedSecurity mappedSecurity, DateTime statementDate, Guid? PackUid = null)
{
if (useDiagnosticLogging) LocalLoggingUtilities.WriteDiagnosticLog (_logText, packUid.Value, "hit handle positions");

var handlePositions = new list();
int posCnt = mappedSecurity.Postitions.Length;
if (useDiagnosticLogging) LocalLoggingUtilities.WriteDiagnosticLog (_logText, packUid.Value, "Deserialization of assigned positions");
list deserializedPosition = mappedSecurity.Postitions
.Select (x => JsonConvert.DeserializeObject(x.ToString (), Configs.JsonCircularRefFixConfig))
.OrderBy (x => x.DateStart)
.List();

var updatedPosDetails = new list();
POSITION prevailing position = zero;

if (useDiagnosticLogging) LocalLoggingUtilities.WriteDiagnosticLog (_logText, packUid.Value, "Check for prevailing position.");

prevailingPosition = dbContext.POSITION
.Include (x => x.POSITION_DETAIL)
.Include (x => x.POSITION_DETAIL) .ThinInclude (x => x.POSITION_BOND)
.Include (x => x.POSITION_DETAIL) .ThinInclude (x => x.POSITION_FX)
.Include (x => x.POSITION_DETAIL) .ThinInclude (x => x.POSITION_OPTION)
.Include (x => x.POSITION_DETAIL) .ThinInclude (x => x.POSITION_PRICE)
.Where (x => x.Account_UID == accountGuid
&& x.Security_UID == mappedSecurity.SecurityGuid
&& x.SecurityFirmID == mappedSecurity.FirmId
&& (x.DateStart.Date <= statementDate) && (! x.DateEnd.HasValue || x.DateEnd.Value.Date < statementDate) 
                && x.ChangeType != "D" 
                && x.POSITION_DETAIL.Any(pd => pd.Genesis == "FEED" &&
pd.ChangeType! = "D"))
.OrderByDescending (x => x.DateStart)
.ToList (). FirstOrDefault ();

if (useDiagnosticLogging) LocalLoggingUtilities.WriteDiagnosticLog (_logText, packUid.Value, "Looping Inbound Positions.");
foreach (var incomingPosition in deserializedPositions)
{
if (useDiagnosticLogging) LocalLoggingUtilities.WriteDiagnosticLog (_logText, packUid.Value, string.Format ("Take new incoming position: {0}"), incomingPosition.Position_UID.ToString ());
incomingPosition.Account_UID = accountGuid;
incomingPosition.Security_UID = mappedSecurity.SecurityGuid.Value;
incomingPosition.SecurityFirmID = mappedSecurity.FirmId.Value;
incomingPosition.Position_UID = Guid.NewGuid ();
if (prevailingposition == null)
{
EntityEntry newPosition = null;
dbContext.POSITION.Add (incomingPosition);
newPosition = dbContext.Entry (incomingPosition);
newPosition.CurrentValues.SetValues ​​(new {ChangeType = "I"});
foreach (var posDetail in incomingPosition.POSITION_DETAIL.Where (x => x.ChangeType.ToUpper ()! = "D"))
{
EntityEntry newPositionDetail = null;
posDetail.Detail_UID = Guid.NewGuid ();
dbContext.POSITION_DETAIL.Add (posDetail);
newPositionDetail = dbContext.Entry (posDetail);
newPositionDetail.CurrentValues.SetValues ​​(new {ChangeType = "I"});
updatedPosDetails.Add (posDetail);
}

managedPositions.Add (incomingPosition);

if (useDiagnosticLogging) LocalLoggingUtilities.WriteDiagnosticLog (_logText, packUid.Value, "Inserted:") + incomingPosition.Position_UID.ToString ());
}
otherwise
{
if (prevailingPosition.DateStart.Date == incomingPosition.DateStart.Date)
{
foreach (var posDetail in prevailingposition.POSITION_DETAIL.Where (x => x.ChangeType.ToUpper ()! = "D"))
{
EntityEntry positionDetailToRemove = dbContext.Entry (posDetail);
positionDetailToRemove.CurrentValues.SetValues ​​(new)
{
ChangeDate = DateTime.Now,
ChangeType = "D"
});
}
EntityEntry positionToRemove = dbContext.Entry (prevailing position);
positionToRemove.CurrentValues.SetValues ​​(new)
{
ChangeDate = DateTime.Now,
ChangeType = "D"
});

EntityEntry newPosition = null;
dbContext.POSITION.Add (incomingPosition);
newPosition = dbContext.Entry (incomingPosition);
newPosition.CurrentValues.SetValues ​​(new {ChangeType = "I"});
managedPositions.Add (incomingPosition);

if (useDiagnosticLogging) LocalLoggingUtilities.WriteDiagnosticLog (_logText, packUid.Value, "insert:" + incomingPosition.Position_UID.ToString ());

foreach (var posDetail in incomingPosition.POSITION_DETAIL.Where (x => x.ChangeType.ToUpper ()! = "D"))
{
EntityEntry newPositionDetail = null;
posDetail.Detail_UID = Guid.NewGuid ();
dbContext.POSITION_DETAIL.Add (posDetail);
newPositionDetail = dbContext.Entry (posDetail);
newPositionDetail.CurrentValues.SetValues ​​(new {ChangeType = "I"});
updatedPosDetails.Add (posDetail);
}
}
else if (prevailingPosition.DateStart.Date <incomingPosition.DateStart.Date.)
&& PositionHasChange (prevailingposition, incomingPosition, packUid))
{
EntityEntry newPosition = null;
dbContext.POSITION.Add (incomingPosition);
newPosition = dbContext.Entry (incomingPosition);
newPosition.CurrentValues.SetValues ​​(new {ChangeType = "I"});
managedPositions.Add (incomingPosition);

if (useDiagnosticLogging) LocalLoggingUtilities.WriteDiagnosticLog (_logText, packUid.Value, "insert:" + incomingPosition.Position_UID.ToString ());

foreach (var posDetail in incomingPosition.POSITION_DETAIL.Where (x => x.ChangeType.ToUpper ()! = "D"))
{
EntityEntry newPositionDetail = null;
posDetail.Detail_UID = Guid.NewGuid ();
dbContext.POSITION_DETAIL.Add (posDetail);
newPositionDetail = dbContext.Entry (posDetail);
newPositionDetail.CurrentValues.SetValues ​​(new {ChangeType = "I"});
updatedPosDetails.Add (posDetail);
}
}
else if (prevailingPosition.DateStart.Date <incomingPosition.DateStart.Date.)
&&! PositionHasChange (prevailing position, incomingPosition, packUid))
{
}
}
}

return donePositions.ToArray ();
}





private transaction[] HandleTransctions (newportMasterContext dbContext, AccPackBody package, AccMappedSecurity mappedSecurity, Guid? PackUid = null)
{
object[] transactionToProcess = new object[0];
var managedTransactions = new list();

foreach (var trans in mappedSecurity.Transactions)
{
TRANSACTION managedTransaction = null,
mappedTransaction = null;

mappedTransaction = JsonConvert.DeserializeObject(trans.ToString (), Configs.JsonCircularRefFixConfig);
mappedTransaction.Security_UID = mappedSecurity.SecurityGuid.Value;

//CHOP
if (string.IsNullOrWhiteSpace (mappedTransaction.BaseCurrency))
{
mappedTransaction.BaseCurrency = "USD";
}

// missing transId - drop out
if (mappedTransaction.Reversal && string.IsNullOrWhiteSpace (mappedTransaction.TranID))
{
Logger.Send (pack, LogType.Warning, "Cancellation transaction missing a transaction ID");
throw new LoggedException ();
}
otherwise
{
//if(mappedTransaction.Reversal &&! string.IsNullOrWhiteSpace (mappedTransaction.TranID))
if (mappedTransaction.Reversal)
{
list transactionInDb = dbContext.TRANSACTION
.Where (x => x.Account_UID == pack.AccountUID
&& x.Security_UID == mappedSecurity.SecurityGuid
&& x.SecurityFirmID == mappedSecurity.FirmId
&& x.TradeDate.Date == mappedTransaction.TradeDate.Date
&& x.TranID == mappedTransaction.TranID
&&! x.Reversal
&& x.ChangeType! = "D")
.List();

if (transactionInDb.Count == 1)
{
mappedTransaction.Visible = false;
TRANSACTION transactionInDb = transactionInDb.FirstOrDefault ();
transactionInDb.Visible = false;
}
}

mappedTransaction.SecurityFirmID = mappedSecurity.FirmId.Value;
mappedTransaction.Account_UID = pack.AccountUID.Value;

if (mappedTransaction? .Comment? .Length> = 100)
{
mappedTransaction.Comment = mappedTransaction.Comment.Substring (0,96) + "...";
}

mappedTransaction.Tran_UID = Guid.NewGuid ();

var comparer = new TransactionComparer ();
EntityEntry transactionToInsert = null;
dbContext.TRANSACTION.Add (mappedTransaction);
transactionToInsert = dbContext.Entry (mappedTransaction);
transactionToInsert.CurrentValues.SetValues ​​(new {ChangeType = "I"});

if (useDiagnosticLogging) LocalLoggingUtilities.WriteDiagnosticLog (_logText, packUid.Value, "inserted:" + mappedTransaction.Tran_UID.ToString ());

if (transactionToInsert! = null)
{
transactionToInsert.CurrentValues.SetValues ​​(new {ChangeDate = DateTime.Now});
}

chargedTransaction = transactionToInsert? .Entity;

if (handlingTransaction! = null)
{
managedTransactions.Add (managedTransaction);
}
//}
}



}

return doneTransactions.ToArray ();
}

Example Payload:

{
"id": "74a7c410-5b00-4268-bb40-73cf099160ff",
"custodianUid": "00000000-0000-0000-0000-000000000000",
"datasourceUid": "e4b30a37-d0bf-49d4-bee9-a0cc19959e6d",
"token": "@ !!! @ ec131ebc7537c0f8414447261af2a8ef28414815274ebd4ea0ba33caac231bc8",
"statementDate": "2019-01-07T00: 00: 00Z",
"accountUid": "0b251123-b9e5-4f59-be4d-4dde0f0eb23e",
"firmId": 490
"Condition": 3,
"oversSizeLimit": false,
"external":[
{
"Identifier value": "85280",
"IdentifierName": "AssetID",
"Currency: USD",
"firmId": null,
"batchid": zero,
"securityGuid": null,
"previousPositionGuid": "57b63479-9cc1-49b3-9743-8932b1764d1e",
"previousPositionQty": 1000000
"previousPositionStartDate": "2019-01-01T00: 00: 00 + 00: 00",
"previousPositionEndDate": null,
"Transactions": [],
"Taxlots": [],
"Positions": [
        "1/7/2019 12:00:00 AM|TAA0315||@!!!@ec131ebc7537c0f8414447261af2a8ef28414815274ebd4ea0ba33caac231bc8|Security|Structured Product|85280|0|||||||||0.0000|0.0000||0|0|||0.00000|||1000000.00000|100.00|100.00|84.18000|84.18000|6/8/2021 12:00:00 AM|0.00||0.00|0.00|||841800.00|841800.00|USD|||||0.0000||||||||"
      ],
"Inch": []
    },
{
"Identifier value": "79428",
"IdentifierName": "AssetID",
"Currency: USD",
"firmId": null,
"batchid": zero,
"securityGuid": null,
"previousPositionGuid": "238c6c1e-0815-4b74-8ac8-d695ddb5ff2e",
"previous Position Qty": 1500000,
"previousPositionStartDate": "2019-01-01T00: 00: 00 + 00: 00",
"previousPositionEndDate": null,
"Transactions": [],
"Taxlots": [],
"Positions": [
        "1/7/2019 12:00:00 AM|TAA0315||@!!!@ec131ebc7537c0f8414447261af2a8ef28414815274ebd4ea0ba33caac231bc8|Security|Structured Product|79428|0|||||||||0.0000|0.0000||0|0|||0.00000|||1500000.00000|100.00|100.00|95.31000|95.31000|1/22/2021 12:00:00 AM|0.00||0.00|0.00|||1429650.00|1429650.00|USD|||||0.0000||||||||"
      ],
"Inch": []
    }
],
"Internal": [
    {
      "_name": null,
      "data": null,
      "identifiervalue": "85280",
      "identifierName": "AssetID",
      "currency": "USD",
      "previousPositionGuid": null,
      "previousPositionQty": null,
      "previousPositionStartDate": null,
      "previousPositionEndDate": null,
      "securityGuid": "c260432b-d169-474b-b142-83cd3e2b93e5",
      "firmId": 490,
      "positions": [
        {
          "Position_UID": "1e6b6a39-697a-468b-a266-bd5388475ec6",
          "Account_UID": "0b251123-b9e5-4f59-be4d-4dde0f0eb23e",
          "Security_UID": "c260432b-d169-474b-b142-83cd3e2b93e5",
          "SecurityFirmID": 490,
          "DateStart": "2019-01-07T00:00:00+00:00",
          "DateEnd": null,
          "ChangeDate": "2019-04-16T15:40:39.7454448Z",
          "ChangeType": "I",
          "BatchID": 2019416151243529,
          "Account_U": null,
          "Security": null,
          "POSITION_DETAIL": [
            {
              "Detail_UID": "39048278-f993-4229-b596-c681315c46b1",
              "Position_UID": "1e6b6a39-697a-468b-a266-bd5388475ec6",
              "Type": "BASE",
              "Quantity": 1000000,
              "Currency": "USD",
              "Value": 841800,
              "LastPrice": 84.18,
              "Cost": 100,
              "AccruedInterest": 0,
              "AccruedDividends": null,
              "Expenses": null,
              "UnrealizedGains": null,
              "RealizedGains": null,
              "Source_UID": "e4b30a37-d0bf-49d4-bee9-a0cc19959e6d",
              "Genesis": "Feed",
              "ChangeDate": "2019-04-16T15:40:39.8235573Z",
              "ChangeType": "I",
              "GenesisNavigation": null,
              "TypeNavigation": null,
              "POSITION_BOND": null,
              "POSITION_FX": null,
              "POSITION_OPTION": null,
              "POSITION_PRICE": null
            }
          ],
"POSITION_IDENTIFIER": [],
"POSITION_SUBSCRIPTION": []
        }
],
"transactions": zero,
"batchid": zero
},
{
"_name": null,
"data": zero,
"Identifier value": "79428",
"IdentifierName": "AssetID",
"Currency: USD",
"previousPositionGuid": null,
"previousPositionQty": zero,
"previousPositionStartDate": null,
"previousPositionEndDate": null,
"securityGuid": "266a3cc3-9f76-4ca1-a1bb-593c55d86e95",
"firmId": 490
"Positions": [
        {
          "Position_UID": "4d2e6c40-6878-4fab-96df-d62759e95917",
          "Account_UID": "0b251123-b9e5-4f59-be4d-4dde0f0eb23e",
          "Security_UID": "266a3cc3-9f76-4ca1-a1bb-593c55d86e95",
          "SecurityFirmID": 490,
          "DateStart": "2019-01-07T00:00:00+00:00",
          "DateEnd": null,
          "ChangeDate": "2019-04-16T15:40:39.870434Z",
          "ChangeType": "I",
          "BatchID": 2019416151243529,
          "Account_U": null,
          "Security": null,
          "POSITION_DETAIL": [
            {
              "Detail_UID": "c894765d-482a-4649-87be-afc6c8092275",
              "Position_UID": "4d2e6c40-6878-4fab-96df-d62759e95917",
              "Type": "BASE",
              "Quantity": 1500000,
              "Currency": "USD",
              "Value": 1429650,
              "LastPrice": 95.31,
              "Cost": 100,
              "AccruedInterest": 0,
              "AccruedDividends": null,
              "Expenses": null,
              "UnrealizedGains": null,
              "RealizedGains": null,
              "Source_UID": "e4b30a37-d0bf-49d4-bee9-a0cc19959e6d",
              "Genesis": "Feed",
              "ChangeDate": "2019-04-16T15:40:39.9798084Z",
              "ChangeType": "I",
              "GenesisNavigation": null,
              "TypeNavigation": null,
              "POSITION_BOND": null,
              "POSITION_FX": null,
              "POSITION_OPTION": null,
              "POSITION_PRICE": null
            }
          ],
"POSITION_IDENTIFIER": [],
"POSITION_SUBSCRIPTION": []
        }
],
"transactions": zero,
"batchid": zero
}
],
"batchid": 2019416151243529
}

8 – Changing the procedure for adding an existing node (of a different content type)

I have a Drupal 8 site with two content types: recipe and ingredient, and I have Ingredient as an inline entity form of the recipe form.

So when I create a new recipe, I get the following:
Enter the image description here

My question is: Can I change the functionality of Add existing nodes? Instead of a button, a selection list with all current options is displayed.

Thank you in advance.

7 – Adding AJAX to an Existing Form Item?

I am trying to Ajaxify a node feature (field_location). If the user changes the value of an entity reference field (housing), the markup should be changed from "old markup" to "new markup". But nothing happened. The ajax callback is not even called and drupal_set_message of "ajax callback is not displayed" is not displayed.

Function customisations_form_alter (& $ form, & $ form_state, $ form_id) {
if ($ form_id == "patientprofile_node_form") {
$ form['field_unterbringung']['und'][0]['value']['#prefix']    = & # 39;
& # 39 ;; $ form['field_unterbringung']['und'][0]['value']['#suffix'] = & # 39;& # 39 ;; $ form['field_unterbringung']['und'][0]['value']['#ajax']['callback'] = & # 39; ajax_callback & # 39 ;; $ form['field_unterbringung']['und'][0]['value']['#ajax']['wrapper'] = & # 39; markup_wrapper & # 39 ;; $ form['field_unterbringung']['und'][0]['value']['#ajax']['event'] = & # 39; change & # 39 ;; $ form['field_unterbringung']['und'][0]['value']['#markup'] = "old markup"; drupal_set_message (& # 39;
& # 39 ;. print_r ($ form['field_unterbringung'], TRUE). & # 39;

& # 39);
}
}

corrected callback:

Function ajax_callback ($ form, & $ form_state) {
drupal_set_message ("fire ajax callback", & # 39; status & # 39;);
Watchdog (& # 39; adjustments & # 39 ;, & # 39; Ajax Callback Firing & # 39;);
Return $ form['field_unterbringung']['und'][0]['value'];
}

TO UPDATE:

That turns out, if I add the Ajax property without [0][‘value’] The Ajax indicator is displayed.

$ form['field_unterbringung']['und']['#ajax']    = Array (
& # 39; call back & # 39; => & # 39; customizations_ajax_callback & # 39 ;,
& # 39; wrapper & # 39; => & # 39; markup_wrapper & # 39 ;,
& # 39; Method & # 39; => & # 39; replace & # 39 ;,
& # 39; event & # 39; => & # 39; change & # 39 ;,
); 

audit – How to disconnect existing connections

I have an existing connection 13.89.187.212 & 13.89.217.116, which is listed on the ipabuse website as a hacker. I type in 192.168.0.1 in different browsers. Some of them start to behave strangely but most say "side can not be reached". Virus scans (TotalAV, Rogue killer, Hitman Pro, Norton PowerErasure, etc., and my network reset failed). I hold down the reset button on my router for more than a minute, and the device will not be reset to factory settings. He has me and I'm fucked. Reinstalling Windows has proved useless. What should I do?

18.04 – How do I create, configure and apply a custom Dconf keyfile / gschema for an existing Gnome 3 object?

I would like Adjust the date time format in the top panel as a string time string,

I already have this by installing the veryOverwrite clock& # 39; expansion, but if you look at Dconf's documentation, it looks like it should easy way to customize the clock itself with a keyfile and / or a gschema,

I assume that the Toppanel clock already has a key file somewhere, as settings for Clock format (24h / 12h), clock show date (B), clock show seconds (B) and clock show weekday (B) are available in dconf-editor and via gsettings,

The documentation, however, does not seem to correspond to reality.
For example, the gnome documentation indicates that the keyfiles in the /etc/dconf/db/database.d/ Directory, but this directory does not exist on my system Where does Dconf get all the keys from??

Can anyone point out some clear instructions or Instructions for adding new settings to dconf,

Refactoring – Creating a good git history for an existing project

I have created a project out of about 1K files with C # code and would like to create a git repository for it.

Problem # 1:

I do not want to set all the files as a single, large file First commit,

Solution no. 1:

I did the simplest things first, the independents.

In this first phase, about 300 files could be overflown, which corresponds to about 30% of the project.

Problem # 2:

I now have around 700 files that are more complex as they need to be reworked a bit.

At the moment, it's clear what else needs to be fixed in the repository, all unreleased files,

I'm trying to figure out how to take a snapshot of the repository at the current time before refactoring begins. When I say "Branch" and "Commit", it's now much harder to track these files because they've been committed and not into not staged Window of the VCS software.

If I did that, the only solution I've found so far would be to get the list of files I need to work on, the "snapshot" to see all the files and then work on some of them inefficiently and very confusing as I progress.

Other explanation # 1:

  • Create Git Repository
  • Commit 300 files in different commits that are decent
  • now I'm here
  • Still 700 files, I would like to have a snapshot at this point, if I want to screw something up
    • I would like this snapshot not to be part of the good pledges
  • work on these remaining 700 files
    • How do you know what these files are because they are not staged anymore?
    • work on some of them if they are satisfied and make good commitments
      • As I progress, I see fewer files on this list. It is very easy to know what to do next

There are two other ways to explain the problem if you are confused upstairs.

Other explanation # 2:

If I take a snapshot of the remaining files when committed, there is a way to tell git that one is being set is dirty Mark them on every page so they'll appear again in the list of unposted changes for easy tracking.

And I want this snapshot not to be part of the good commit story.

Question:

What features of git could I use to accomplish this workflow?

How do I create a Mobile Friendly Website?

How do I create a Mobile Friendly Website?

+ Answer to thread

  1. How do I create a Mobile Friendly Website?

    My website is not mobile friendly. But I want to do it that way. Can I do it with my existing website? let me know how it works.


booking permissions

  • you not allowed post new threads
  • you not allowed post reply
  • you not allowed Post attachments
  • you not allowed Edit your posts

network
counter

,

magento2.3 – Hint: Conversion from array to string when selecting a different attribute set than the existing attribute set of a product. Why is that?

When I try to update a product attribute, I get this error

Note: Array to String conversion to public_html / vendor / magento / zendframework1 / library / Zend / Db / Statement / Pdo.php at line 228

I'm on Magento 2.3, I created 20 new product attribute sets, and when I try to create a new product with a different attribute set than the default, and I try to update the product attribute set, I get this error.
I have tried it for two days and have searched google for a solution, but with me, nothing worked

DreamProxies - Cheapest USA Elite Private Proxies 100 Private Proxies 200 Private Proxies 400 Private Proxies 1000 Private Proxies 2000 Private Proxies ExtraProxies.com - Buy Cheap Private Proxies Buy 50 Private Proxies Buy 100 Private Proxies Buy 200 Private Proxies Buy 500 Private Proxies Buy 1000 Private Proxies Buy 2000 Private Proxies ProxiesLive Proxies-free.com New Proxy Lists Every Day Proxies123
Proxy Sites Proxy Tunnels Proxy List Working Proxy Sites Hotproxysite Proxy Sites Proxy Sites Anonymous Proxy Anonymous Proxies Top-Proxies.co.uk http://www.proxysitesnow.com Proxy Servers Free Proxies Free Proxy List Proxy List Zoxy Proxy List PR liste all proxy sites More Proxies netgofree netgofree Hide-MyIp - The Best Proxy List American Proxy List www.proxylisty.com/proxylist Web Proxy Submit Proxies Updated Proxy List Updated Proxy List aproxy.org Bypass Proxy Sites Free Proxies List Evolving Critic Business Web Directory Free Proxy List iShortIt MyProxyList Online Proxies Go Proxies Need Proxies PrivateProxies Proxies4MySchool Proxies4Work Free Proxy List Free Proxy Sites ProxyInside Wiksa Proxy ProxyLister.org Free Proxy List ProxyNoid Proxy List Free Proxy List Proxy Sites Proxy TopList ProxyVille UK Proxy WebProxy List RatedProxy.com - Listing the best Web Proxies Free Proxy List SchoolProxiesList Stay Anonymous Proxy List The Power Of Ninja Proxy List UNubstruct Free proxy sites Free proxy sites