rawurlencode() in een <script> met type="text/x-tmpl
{%=file.name%}
echter laat hij die file zien met spaties erin en dus kan ik hem in veel andere code niet gebruiken
nou dacht ik van ik voeg gewoon rawurlencode() toe maar ik krijg die niet werkend op 1 of andere manier
is er hiervoor nog een andere manier ?
rawurlencode() is een PHP functie, dus dit moet je in PHP aanroepen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<script id="template-download" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
{% if(i%3==0 && i != 0) { %}
{% } %}
<div id="download" class="models-grid-item template-download fade"><div class="thumbnail">
{% if (file.mediumUrl) { %}
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" data-gallery><img class="previewimg" src="{%=file.mediumUrl%}"></a>
{% } %}
<tr class="template-download fade">
<td>
{% if (window.innerWidth > 480 || !file.thumbnailUrl) { %}
<p class="name">
{% if (file.url) { %}
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?\'data-gallery\':\'\'%}>{%=file.name%}</a>
{% } else { %}
<span>{%=file.name%}</span>
{% } %}
</p>
{% } %}
{% if (file.error) { %}
<div><span class="label label-danger">Error</span> {%=file.error%}</div>
{% } %}
</td>
<td>
<p class="title"><strong>{%=file.title||\'\'%}</strong></p>
<p class="description">{%=file.description||\'\'%}</p>
</td>
<td>
<span class="size">{%=o.formatFileSize(file.size)%}</span>
</td>
<td>
{% if (!file.mainimage) { %}
<a href="beheer/edit.php?page=mainimage&tab='.$tab.'&id='.$id.'&image={%=file.name%}">
<button class="btn btn-success"><span>Maak hoofd foto</span></button></a>
{% if (file.deleteUrl) { %}
<button class="btn btn-danger delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields=\'{"withCredentials":true}\'{% } %}>
<i class="glyphicon glyphicon-trash"></i>
<span>Delete</span>
</button>
<input type="checkbox" name="delete" value="1" class="toggle">
<strong> {%=file.mainimage||\'\'%}</strong>
{% } else { %}
<button class="btn btn-warning cancel">
<i class="glyphicon glyphicon-ban-circle"></i>
<span>Cancel</span>
</button>
{% } %}
{% } %}
</td>
</tr>
</div></div>
{% } %}
</script>
{% for (var i=0, file; file=o.files[i]; i++) { %}
{% if(i%3==0 && i != 0) { %}
{% } %}
<div id="download" class="models-grid-item template-download fade"><div class="thumbnail">
{% if (file.mediumUrl) { %}
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" data-gallery><img class="previewimg" src="{%=file.mediumUrl%}"></a>
{% } %}
<tr class="template-download fade">
<td>
{% if (window.innerWidth > 480 || !file.thumbnailUrl) { %}
<p class="name">
{% if (file.url) { %}
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?\'data-gallery\':\'\'%}>{%=file.name%}</a>
{% } else { %}
<span>{%=file.name%}</span>
{% } %}
</p>
{% } %}
{% if (file.error) { %}
<div><span class="label label-danger">Error</span> {%=file.error%}</div>
{% } %}
</td>
<td>
<p class="title"><strong>{%=file.title||\'\'%}</strong></p>
<p class="description">{%=file.description||\'\'%}</p>
</td>
<td>
<span class="size">{%=o.formatFileSize(file.size)%}</span>
</td>
<td>
{% if (!file.mainimage) { %}
<a href="beheer/edit.php?page=mainimage&tab='.$tab.'&id='.$id.'&image={%=file.name%}">
<button class="btn btn-success"><span>Maak hoofd foto</span></button></a>
{% if (file.deleteUrl) { %}
<button class="btn btn-danger delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields=\'{"withCredentials":true}\'{% } %}>
<i class="glyphicon glyphicon-trash"></i>
<span>Delete</span>
</button>
<input type="checkbox" name="delete" value="1" class="toggle">
<strong> {%=file.mainimage||\'\'%}</strong>
{% } else { %}
<button class="btn btn-warning cancel">
<i class="glyphicon glyphicon-ban-circle"></i>
<span>Cancel</span>
</button>
{% } %}
{% } %}
</td>
</tr>
</div></div>
{% } %}
</script>
deze regel
wil ik aanpassen naar bv
Code (php)
1
<a href="beheer/edit.php?page=mainimage&tab='.$tab.'&id='.$id.'&image='.rawurlencode({%=file.name%}).'">
maar dan krijg ik gelijk een witte page en geen error in mijn netwerk tab
Gewijzigd op 17/08/2019 14:44:32 door - Ariën -
encodeURIComponent()
Verder hebben we gelukkig ook code-tags voor lappen code.
Dit is geen PHP-file maar een template file. Maar tussen PHP-tags gaat dit ook niet werken, want Javascript wordt door de cliënt als laatste in de request geparsed, en PHP als eerste door de server. Je hebt meer aan Verder hebben we gelukkig ook code-tags voor lappen code.
Gewijzigd op 17/08/2019 14:33:58 door - Ariën -
maar uhm thanks voor de info maar werkt ook niet :P
Toevoeging op 17/08/2019 14:45:09:
hij past nu wel andere texten aan als ik dus zelf iets schrijf voor die file.name
maar het deel van file.name past hij niet aan
ik kan opzich hele class aanpassen dat hij alle linken van file.name gaat zien met die code maar had gehoopt dat dat niet hoefde
En waar komt {%=file.name%} vandaan? En wat heb je geprobeerd?
Zelf third-party classes aanpassen vind ik een no-go. Of je moet ze extenden.
Maar dat had ik geloof ik al eens verteld ;-)
Gewijzigd op 17/08/2019 14:51:20 door - Ariën -
uhm
en ik heb elke form van code all geprobeerd mbt tot encodeURIComponent() of rawurlencode()
de filename komt ergens uit de class vandaan denk ik :-S
ik dacht dat het gewoon ff kon met rawurlencode()
hij pakt all mijn eigen codes enzo in php er ook gewoon tussendoor
komt waarschijnlijk door dat jquery geval waar ik dus geen kaas van heb gegeten
rest dat ik wou werkt wel al perfect :P
Toevoeging op 17/08/2019 15:13:12:
misschien is dit wat maar ik kom er niet uit
dit is de template geval dat wordt gebruikt volgens mij
https://github.com/blueimp/JavaScript-Templates#output-encoding
Toevoeging op 17/08/2019 15:54:01:
ok uhm ff snelle update ik heb nu even als test hem aangepast in de class zelf en dan werkt het wel echter pakt het script die zelfde code blijkbaar ergens dubbel want ik krijg hele rare codes in mijn linken
Toevoeging op 17/08/2019 16:12:02:
ik heb een kleine aanpasing gemaakt ff tijderlijk rechtstreeks in de class
dit blijkt te werken hij past alle rare tekens netjes aan behalve spaties ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
protected function get_file_object($file_name) {
if ($this->is_valid_file_object($file_name)) {
$file = new \stdClass();
$file->name = $file_name;
$file->nameimage = rawurlencode($file_name);
$file->size = $this->get_file_size(
$this->get_upload_path($file_name)
);
$file->url = $this->get_download_url($file->name);
foreach ($this->options['image_versions'] as $version => $options) {
if (!empty($version)) {
if (is_file($this->get_upload_path($file_name, $version))) {
$file->{$version.'Url'} = $this->get_download_url(
$file->name,
$version
);
}
}
}
$this->set_additional_file_properties($file);
return $file;
}
return null;
}
if ($this->is_valid_file_object($file_name)) {
$file = new \stdClass();
$file->name = $file_name;
$file->nameimage = rawurlencode($file_name);
$file->size = $this->get_file_size(
$this->get_upload_path($file_name)
);
$file->url = $this->get_download_url($file->name);
foreach ($this->options['image_versions'] as $version => $options) {
if (!empty($version)) {
if (is_file($this->get_upload_path($file_name, $version))) {
$file->{$version.'Url'} = $this->get_download_url(
$file->name,
$version
);
}
}
}
$this->set_additional_file_properties($file);
return $file;
}
return null;
}
Toevoeging op 17/08/2019 16:25:05:
ok ik heb probleem gevonden en ik denk dat dit moeilijk gaat worden reden blijkt mijn header te zijn waardoor hij blijkbaar niet werkt :(
Gewijzigd op 17/08/2019 16:12:47 door sylvester vader
Maar waar komt die template vandaan? Uit een bepaalde JavaScript framework? Zoals ReactJS ofzo?
als ik echter de link kopieer en in de adressbalk zet dan doet deze het wel
Gewijzigd op 17/08/2019 16:51:52 door - Ariën -
ik zal ff kijken of het werkt met http_host maar ik denk dat het zo gewoon goed moet zijn
Toevoeging op 17/08/2019 17:07:48:
uhm ok ik was ff een het klooien en het blijkt dat je geen button kan gebruiken in een link
iemand daar een oplossing voor of moet ik een onclick ofzo erin doen?
een onClick zou een oplossing kunnen zijn.
echt als ik een hoed had dan at ik die nu op
Toevoeging op 17/08/2019 17:26:20:
ok in een form plaatsen als action werkt ook niet
hij werkt dan wel als link maar hij kapt de hele link af bij de eerste ?
Toevoeging op 17/08/2019 17:30:38:
ok opgelost pfff ik heb nu een <a eruit laten zien als een knop
bijna verschil niet te zien :P
alleen kleur lettertype ff aanpassen ik kan de info van die file die ik wil hebben ook helemaal op het laatste aanpassen en dan spaties eruit halen
ach zo leer ik elke dag weer iets