33
44<?php
55 $field [' allows_null' ] = $field [' allows_null' ] ?? false ;
6+
7+ [$type , $link , $page_id ] = explode (' ,' , $field [' name' ]);
8+ $field [' configurationNames' ] = [];
69
7- $field [' name' ][' type' ] = $field [' name' ][' type' ] ?? $field [' name' ][0 ] ?? ' type' ;
8- $field [' name' ][' link' ] = $field [' name' ][' link' ] ?? $field [' name' ][1 ] ?? ' link' ;
9- $field [' name' ][' page_id' ] = $field [' name' ][' page_id' ] ?? $field [' name' ][2 ] ?? ' page_id' ;
10-
10+ $field [' configurationNames' ][' type' ] = $type ?? ' type' ;
11+ $field [' configurationNames' ][' link' ] = $link ?? ' link' ;
12+ $field [' configurationNames' ][' page_id' ] = $page_id ?? ' page_id' ;
1113 $field [' options' ][' page_link' ] = $field [' options' ][' page_link' ] ?? trans (' backpack::crud.page_link' );
1214 $field [' options' ][' internal_link' ] = $field [' options' ][' internal_link' ] ?? trans (' backpack::crud.internal_link' );
1315 $field [' options' ][' external_link' ] = $field [' options' ][' external_link' ] ?? trans (' backpack::crud.external_link' );
2123
2224 <div class =" row" data-init-function =" bpFieldInitPageOrLinkElement" >
2325 {{-- hidden placeholders for content --}}
24- <input type =" hidden" value =" {{ $entry -> {$field [' name ' ][' page_id' ]} ?? ' ' } }" name =" {{ $field [' name ' ][' page_id' ] } }" />
25- <input type =" hidden" value =" {{ $entry -> {$field [' name ' ][' link' ]} ?? ' ' } }" name =" {{ $field [' name ' ][' link' ] } }" />
26+ <input type =" hidden" value =" {{ $entry -> {$field [' configurationNames ' ][' page_id' ]} ?? ' ' } }" name =" {{ $field [' configurationNames ' ][' page_id' ] } }" />
27+ <input type =" hidden" value =" {{ $entry -> {$field [' configurationNames ' ][' link' ]} ?? ' ' } }" name =" {{ $field [' configurationNames ' ][' link' ] } }" />
2628
2729 <div class =" col-sm-3" >
2830 {{-- type select --}}
2931 <select
3032 data-identifier =" page_or_link_select"
31- name =" {!! $field [' name ' ][' type' ] ! !}"
33+ name =" {!! $field [' configurationNames ' ][' type' ] ! !}"
3234 @include (' crud::fields.inc.attributes' )
3335 >
3436
3840
3941 @foreach ($field [' options' ] as $key => $value )
4042 <option value =" {{ $key } }"
41- @if (isset ($entry ) && $key === $entry -> {$field [' name ' ][' type' ]} )
43+ @if (isset ($entry ) && $key === $entry -> {$field [' configurationNames ' ][' type' ]} )
4244 selected
4345 @endif
4446 >{{ $value } } </option >
4749 </div >
4850 <div class =" col-sm-9" >
4951 {{-- page slug input --}}
50- <div class =" page_or_link_value page_link {{ (isset ($entry ) && $entry -> {$field [' name ' ][' type' ]} === ' page_link' ) || (isset ($entry ) && ! $entry -> {$field [' name ' ][' type' ]} && ! $field [' allows_null' ]) || (! isset ($entry ) && ! $field [' allows_null' ]) ? ' ' : ' d-none' } }" >
52+ <div class =" page_or_link_value page_link {{ (isset ($entry ) && $entry -> {$field [' configurationNames ' ][' type' ]} === ' page_link' ) || (isset ($entry ) && ! $entry -> {$field [' configurationNames ' ][' type' ]} && ! $field [' allows_null' ]) || (! isset ($entry ) && ! $field [' allows_null' ]) ? ' ' : ' d-none' } }" >
5153 <select
5254 class =" form-control"
53- for =" {{ $field [' name ' ][' page_id' ] } }"
55+ for =" {{ $field [' configurationNames ' ][' page_id' ] } }"
5456 required
5557 >
5658 @foreach ($field [' pages' ] as $page )
5759 <option value =" {{ $page -> id } }"
58- @if (isset ($entry ) && $page -> id === $entry -> {$field [' name ' ][' page_id' ]} )
60+ @if (isset ($entry ) && $page -> id === $entry -> {$field [' configurationNames ' ][' page_id' ]} )
5961 selected
6062 @endif
6163 >{{ $page -> name } } </option >
@@ -64,40 +66,46 @@ class="form-control"
6466 </div >
6567
6668 {{-- internal link input --}}
67- <div class =" page_or_link_value internal_link {{ isset ($entry ) && $entry -> {$field [' name ' ][' type' ]} === ' internal_link' ? ' ' : ' d-none' } }" >
69+ <div class =" page_or_link_value internal_link {{ isset ($entry ) && $entry -> {$field [' configurationNames ' ][' type' ]} === ' internal_link' ? ' ' : ' d-none' } }" >
6870 <input
6971 type =" text"
7072 class =" form-control"
7173 placeholder =" {{ trans (' backpack::crud.internal_link_placeholder' , [' url' , url (config (' backpack.base.route_prefix' ). ' /page' )]) } }"
72- for =" {{ $field [' name ' ][' link' ] } }"
74+ for =" {{ $field [' configurationNames ' ][' link' ] } }"
7375 required
76+ @if (isset ($entry ) )
77+ @if ($entry -> {$field [' configurationNames' ][' type' ]} !== ' internal_link' && $entry -> {$field [' configurationNames' ][' type' ]} !== ' page_link' )
78+ disabled =" disabled"
79+ @endif
7480
75- @if (isset ($entry ) && $entry -> {$field [' name' ][' type' ]} !== ' internal_link' )
81+ @if ($entry -> {$field [' configurationNames' ][' type' ]} === ' internal_link' && $entry -> {$field [' configurationNames' ][' link' ]} )
82+ value =" {{ $entry -> {$field [' configurationNames' ][' link' ]} } }"
83+ @endif
84+ @else
7685 disabled =" disabled"
7786 @endif
78-
79- @if (isset ($entry ) && $entry -> {$field [' name' ][' type' ]} === ' internal_link' && $entry -> {$field [' name' ][' link' ]} )
80- value =" {{ $entry -> {$field [' name' ][' link' ]} } }"
81- @endif
8287 >
8388 </div >
8489
8590 {{-- external link input --}}
86- <div class =" page_or_link_value external_link {{ isset ($entry ) && $entry -> {$field [' name ' ][' type' ]} === ' external_link' ? ' ' : ' d-none' } }" >
91+ <div class =" page_or_link_value external_link {{ isset ($entry ) && $entry -> {$field [' configurationNames ' ][' type' ]} === ' external_link' ? ' ' : ' d-none' } }" >
8792 <input
8893 type =" url"
8994 class =" form-control"
9095 placeholder =" {{ trans (' backpack::crud.page_link_placeholder' ) } }"
91- for =" {{ $field [' name ' ][' link' ] } }"
96+ for =" {{ $field [' configurationNames ' ][' link' ] } }"
9297 required
98+ @if (isset ($entry ) )
99+ @if ($entry -> {$field [' configurationNames' ][' type' ]} !== ' external_link' && $entry -> {$field [' configurationNames' ][' type' ]} !== ' page_link' )
100+ disabled =" disabled"
101+ @endif
93102
94- @if (isset ($entry ) && $entry -> {$field [' name' ][' type' ]} !== ' external_link' )
103+ @if ($entry -> {$field [' configurationNames' ][' type' ]} === ' external_link' && $entry -> {$field [' configurationNames' ][' link' ]} )
104+ value =" {{ $entry -> {$field [' configurationNames' ][' link' ]} } }"
105+ @endif
106+ @else
95107 disabled =" disabled"
96108 @endif
97-
98- @if (isset ($entry ) && $entry -> {$field [' name' ][' type' ]} === ' external_link' && $entry -> {$field [' name' ][' link' ]} )
99- value =" {{ $entry -> {$field [' name' ][' link' ]} } }"
100- @endif
101109 >
102110 </div >
103111 </div >
0 commit comments