rawurlencode() in een <script> met type="text/x-tmpl

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sylvester vader

sylvester vader

17/08/2019 14:16:51
Quote Anchor link
hi ik heb een code en deze laat doormiddel van een jquery/ js script een bestand link zien

{%=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 ?
 
PHP hulp

PHP hulp

28/03/2024 18:37:43
 
- Ariën  -
Beheerder

- Ariën -

17/08/2019 14:19:16
Quote Anchor link
rawurlencode() is een PHP functie, dus dit moet je in PHP aanroepen.
 
Sylvester vader

sylvester vader

17/08/2019 14:28:51
Quote Anchor link
ja het is ook een php file maar in die php file heb ik een script stukje


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
    <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>



deze regel
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
  <a href="beheer/edit.php?page=mainimage&tab='.$tab.'&id='.$id.'&image={%=file.name%}">


wil ik aanpassen naar bv
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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 -
 
- Ariën  -
Beheerder

- Ariën -

17/08/2019 14:29:47
Quote Anchor link
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 encodeURIComponent()

Verder hebben we gelukkig ook code-tags voor lappen code.
Gewijzigd op 17/08/2019 14:33:58 door - Ariën -
 
Sylvester vader

sylvester vader

17/08/2019 14:41:51
Quote Anchor link
o lol sorry voor de tags :D

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
 
- Ariën  -
Beheerder

- Ariën -

17/08/2019 14:45:48
Quote Anchor link
Welk template systeem gebruik je? Misschien heeft die al deze mogelijkheid?
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 -
 
Sylvester vader

sylvester vader

17/08/2019 14:59:00
Quote Anchor link
haha ja maar dat extenden snap ik dus nog niet zo goed

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)
PHP script in nieuw venster Selecteer het PHP script
1
$file->nameimage = rawurlencode($file_name);


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
    }


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
 
- Ariën  -
Beheerder

- Ariën -

17/08/2019 16:49:09
Quote Anchor link
Maar waar komt die template vandaan? Uit een bepaalde JavaScript framework? Zoals ReactJS ofzo?
 
Sylvester vader

sylvester vader

17/08/2019 16:50:20
Quote Anchor link
ok uhm wat kan het wezen als een link wel goed in de code maar als je erop klikt deze niet gaat naar de aangewezen locatie

als ik echter de link kopieer en in de adressbalk zet dan doet deze het wel
 
- Ariën  -
Beheerder

- Ariën -

17/08/2019 16:51:32
Quote Anchor link
Dan is mogelijk de 'href' of de afhandeling erachter fout? Sporadisch kan het zelfs aan CSS liggen. Inspecteer de URL eens met de inspectietool.
Gewijzigd op 17/08/2019 16:51:52 door - Ariën -
 
Sylvester vader

sylvester vader

17/08/2019 17:02:56
Quote Anchor link
<a href="beheer/edit.php?page=mainimage&tab='.$tab.'&id='.$id.'&image={%=file.nameimage%}">

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?
 
- Ariën  -
Beheerder

- Ariën -

17/08/2019 17:10:28
Quote Anchor link
een onClick zou een oplossing kunnen zijn.
 
Sylvester vader

sylvester vader

17/08/2019 17:17:03
Quote Anchor link
lol werkt niet :-S
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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.