Puncte:0

Cum pot adăuga sau elimina în mod programatic un nou request_path pentru a bloca vizibilitatea?

drapel in

Se pare că aș putea folosi getVisibilityConditions metoda pe bloc, care returnează a CondițiePluginColecție obiect cu a setInstanceConfiguration metodă, care aparent este destul de ușor de utilizat, necesitând $cale_cerere și $configurare argumente. Dar, variabila curentă a căii de solicitare a vizibilității blocului este un șir, care conține căi separate prin virgule. Cum pot actualiza asta pentru a adăuga sau elimina căi pe salvarea nodului? Știu că, în esență, întreb cum să manipulez vizibilitatea blocurilor pe formularul nodului, ceea ce nu este complet greșit. Se pare că mi-ar putea lipsi ceva din API care ar permite acest tip de lucru.

4uk4 avatar
drapel cn
Acesta este răspunsul la întrebarea ta? https://drupal.stackexchange.com/a/226037/47547 - Nu vreau să votez pentru un duplicat, deoarece întrebarea de acolo este deja marcată ca duplicat fals.
drapel cn
@4uk4 este deschis acum (votul dvs. de redeschidere este obligatoriu din cauza punctajului dvs. din etichetele aferente)
steve avatar
drapel in
@4uk4 răspunsul dvs. de la https://drupal.stackexchange.com/a/226037/47547 este practic ceea ce fac, dar nu merge suficient de departe, deoarece în sugestia dvs., request_path este doar înlocuit, vreau să adăugați sau scădeți căi de solicitare.
sonfd avatar
drapel in
Puteți folosi implode/explode pentru a converti șirul în matrice și apoi înapoi după ce faceți ajustări?
Puncte:0
drapel cn

Dar, variabila curentă a căii de solicitare a vizibilității blocului este un șir, care conține căi separate prin virgule.

Acesta este afișajul rezumat, nu formatul de date salvat în config. Aici datele brute de intrare sunt salvate împreună cu noile linii introduse de utilizator.

Daca vrei sa urmaresti Comentariu @sonfd puteți rescrie codul răspunsului legat:

$block = \Drupal\block\Entity\Block::load('openidconnectlogin');
$vizibilitate = $bloc->getVisibility();
if (isset($visibility['request_path']['pages'])) {
  $pages = $visibility['request_path']['pages'];
  $cai = array_map('trim', explode("\n", $pagini));

Și mai târziu

  $pagini = implode("\n", $cai);
  $visibility['request_path']['pages'] = $pagini;
  $block->setVisibilityConfig('request_path', $visibility['request_path']);
  $bloc->salvare();
}
steve avatar
drapel in
De unde obțineți matricea `$pages`?
4uk4 avatar
drapel cn
$paths este matricea (unde faceți ajustările). Pentru a fi clar, combin ambele, codul din răspunsul anterior și cel nou.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.