Toon posts:

WP All export + excel error

Pagina: 1
Acties:

Onderwerpen

Vraag


  • NECAnGeL
  • Registratie: Januari 2004
  • Laatst online: 30-05 20:58
Hallo Allemaal,

Ik ben met de support bezig van WP All export alleen de communicatie gaat wat stroefjes en heb wat haast. Ik krijg namelijk een foutmelding als ik een excel hyperlink via php toevoeg. Ik heb me ingelezen op https://www.wpallimport.c...s/custom-code/inline-php/ maar kom er echt niet uit.

Reactie van WP All export:
I didn't see that values were exported with a 0, but I do see where errors are coming up: https://d.pr/i/SfBFjE - however, this seems to be due to issues with how the functions are constructing the links.


Ik heb als functie:

code:
1
[zichtbaarheid_check("niet_ingelogd",{Titel},{_alg_wc_pvbur_visible},{_alg_wc_pvbur_invisible})]


code:
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
remove_filter('pmxe_csv_value', 'pmxe_pmxe_csv_value', 10);
add_filter('pmxe_csv_value', 'example_adjust_csv_value_sanitization', 11, 1);

function example_adjust_csv_value_sanitization ($value) {
        
    return str_replace(array('\''), '', $value);

}

//check of deze mag worden weergegeven / of een nda nodig heeft
function zichtbaarheid_check($lijst, $waarde_veld, $_alg_wc_pvbur_visible, $_alg_wc_pvbur_invisible ) { 
    
    //niet ingelogde lijst
    if ($lijst == 'niet_ingelogd') 
        { 
            //kijken of de gast rol verplicht is
            if (strpos($_alg_wc_pvbur_invisible, 'guest') !== false) { $verbergen = 'verbergen'; }
            
            //geen nda lijst
            if (strpos($_alg_wc_pvbur_visible, 'met_rbweb_nda') !== false) { $verbergen = 'verbergen_nda';}
        }
    
    //ingelogde lijst
    if ($lijst == 'ingelogd') 
        {   
            //geen nda producten weergeven
            if (strpos($_alg_wc_pvbur_visible, 'met_rbweb_nda') !== false) { $verbergen = 'verbergen_nda'; }
        }
    
    if ($verbergen == 'verbergen') { 
    $waarde_veld = '=HYPERLINK("https://seomarketingdeals.com/linklijsten/";"Weergeven open de linklijst (Ingelogd)")'; 
    
    }
    
    if ($verbergen == 'verbergen_nda') { 
    $waarde_veld = '=HYPERLINK("https://seomarketingdeals.com/linklijsten/";"Weergeven open de linklijst (Met NDA)")'; 
    }
    
    return $waarde_veld;    
}


Wat ook een probleem was dat ik een preg_replace moest doen om de ' weg te halen die hun plugn aanmaakt voor een =. Dit is gedaan in de functie example_adjust_csv_value_sanitization

http://www.ietsdoenofferte.nl

Alle reacties


  • Mr. HTTP
  • Registratie: November 2020
  • Laatst online: 09-03-2022
PHP:
1
2
3
4
5
6
7
8
if ($verbergen == 'verbergen') { 
    $waarde_veld = '=HYPERLINK("https://seomarketingdeals.com/linklijsten/";"Weergeven open de linklijst (Ingelogd)")'; 
    
}
    
if ($verbergen == 'verbergen_nda') { 
    $waarde_veld = '=HYPERLINK("https://seomarketingdeals.com/linklijsten/";"Weergeven open de linklijst (Met NDA)")'; 
}

Hoort $waarde_veld een literal string te zijn?

Of eerder dit;
PHP:
1
2
3
4
5
6
if ($verbergen == 'verbergen') { 
$waarde_veld = '=' . HYPERLINK("https://seomarketingdeals.com/linklijsten/", "Weergeven open de linklijst (Ingelogd)"); 
}
if ($verbergen == 'verbergen_nda') { 
$waarde_veld = '=' . HYPERLINK("https://seomarketingdeals.com/linklijsten/", "Weergeven open de linklijst (Met NDA)"); 
}


Verder wel eens gehoord van switch-statements? ;)
Toevoeging; Weet je zeker dat waarde_veld altijd wordt gedefineerd? Want dat loopt qua flow niet helemaal lekker in je code. Als debug test adviseer ik je $waarde_veld een default waarde te geven...

PHP:
1
2
3
4
5
6
7
8
function zichtbaarheid_check($lijst, $waarde_veld, $_alg_wc_pvbur_visible, $_alg_wc_pvbur_invisible ) { 
 // $waarde_veld = 'http://www.example.com/';
 $waarde_veld = '=HYPERLINK("http://www.example.com/")'; 


//...  code die $waarde_veld aanpast op basis van gebruikers rol

}


PS; had ik jou al niet eerder getipt in een ander topic om je flow te verbeteren en default waardes te gebruiken...?

[Voor 28% gewijzigd door Mr. HTTP op 31-01-2021 19:11]


  • Mr. HTTP
  • Registratie: November 2020
  • Laatst online: 09-03-2022
Na het lezen van dit zou ik zeggen probeer dit eens;

PHP:
1
2
3
4
5
6
7
if ($verbergen == 'verbergen') { 
  $waarde_veld = '=HYPERLINK("https://seomarketingdeals.com/linklijsten/", "' . rawurlencode("Weergeven open de linklijst (Ingelogd)") . '")'; 
}
    
if ($verbergen == 'verbergen_nda') { 
  $waarde_veld = '=HYPERLINK("https://seomarketingdeals.com/linklijsten/", "' . rawurlencode("Weergeven open de linklijst (Met NDA)") . '")'; 
}


De punt-comma moet dus volgens mij (en de docs) een comma zijn. En bij de friendly name moet misschien percent encoding overheen vanwege het gebruik van haakjes () gezien de betekenis van Err:508. Test het eens uit zou ik zeggen.

Na wat Googlen op Err:508 kwam ik uit op dit
508 Error: Pair missing

For example, closing parenthesis without opening parenthesis
or missing closing parenthesis in the middle of the formula (missing
closing parenthesis at the end of a formula is added automatically).
De feedback van WP All Export lijkt dus spot-on.

[Voor 20% gewijzigd door Mr. HTTP op 31-01-2021 19:29]


  • NECAnGeL
  • Registratie: Januari 2004
  • Laatst online: 30-05 20:58
Mr. HTTP schreef op zondag 31 januari 2021 @ 17:35:
PHP:
1
2
3
4
5
6
7
8
if ($verbergen == 'verbergen') { 
    $waarde_veld = '=HYPERLINK("https://seomarketingdeals.com/linklijsten/";"Weergeven open de linklijst (Ingelogd)")'; 
    
}
    
if ($verbergen == 'verbergen_nda') { 
    $waarde_veld = '=HYPERLINK("https://seomarketingdeals.com/linklijsten/";"Weergeven open de linklijst (Met NDA)")'; 
}

Hoort $waarde_veld een literal string te zijn?

Of eerder dit;
PHP:
1
2
3
4
5
6
if ($verbergen == 'verbergen') { 
$waarde_veld = '=' . HYPERLINK("https://seomarketingdeals.com/linklijsten/", "Weergeven open de linklijst (Ingelogd)"); 
}
if ($verbergen == 'verbergen_nda') { 
$waarde_veld = '=' . HYPERLINK("https://seomarketingdeals.com/linklijsten/", "Weergeven open de linklijst (Met NDA)"); 
}


Verder wel eens gehoord van switch-statements? ;)
Toevoeging; Weet je zeker dat waarde_veld altijd wordt gedefineerd? Want dat loopt qua flow niet helemaal lekker in je code. Als debug test adviseer ik je $waarde_veld een default waarde te geven...

PHP:
1
2
3
4
5
6
7
8
function zichtbaarheid_check($lijst, $waarde_veld, $_alg_wc_pvbur_visible, $_alg_wc_pvbur_invisible ) { 
 // $waarde_veld = 'http://www.example.com/';
 $waarde_veld = '=HYPERLINK("http://www.example.com/")'; 


//...  code die $waarde_veld aanpast op basis van gebruikers rol

}


PS; had ik jou al niet eerder getipt in een ander topic om je flow te verbeteren en default waardes te gebruiken...?
Ik moet zeker aan me flow werken, ben ik met je eens maar ben er te weinig mee bezig en moet soms wat doen en als het werkt dan werkt het denk ik dan. Maar ga toch nadenken om de flow te verbteren. Bedankt voor je input.

http://www.ietsdoenofferte.nl


  • NECAnGeL
  • Registratie: Januari 2004
  • Laatst online: 30-05 20:58
Als ik het zo met de , plak dan gaat dat niet lukken in excel. Hij pakt dan alleen met de ;

code:
1
=HYPERLINK("https://seomarketingdeals.com/linklijsten/","Weergeven open de linklijst (Ingelogd)")

http://www.ietsdoenofferte.nl


  • Mr. HTTP
  • Registratie: November 2020
  • Laatst online: 09-03-2022
NECAnGeL schreef op zondag 31 januari 2021 @ 22:54:
Als ik het zo met de , plak dan gaat dat niet lukken in excel. Hij pakt dan alleen met de ;

code:
1
=HYPERLINK("https://seomarketingdeals.com/linklijsten/","Weergeven open de linklijst (Ingelogd)")
Waarom gaat dat niet lukken? Krijg je een foutmelding?
Daarbij kan het nog steeds aan de haakjes liggen natuurlijk (en de punt-comma).

Je moet eerst het haakjes probleem uitsluiten:

1) comma, geen haakjes
code:
1
=HYPERLINK("https://seomarketingdeals.com/linklijsten/a","Linklijst Ingelogd")
code:
1
=HYPERLINK("https://seomarketingdeals.com/linklijsten/b","Linklijst met NDA")

2) semicolon, geen haakjes
code:
1
=HYPERLINK("https://seomarketingdeals.com/linklijsten/a";"Linklijst Ingelogd")
code:
1
=HYPERLINK("https://seomarketingdeals.com/linklijsten/b";"Linklijst met NDA")

3) nu weet je comma of semicolon
4) test met haakjes
5) test haakjes met rawurlencode voor percent-encoding

Update:
Daarnaast is het handig als je ergens een debug output kan dumpen voor jezelf om te zien of je wel de juiste waardes rondpompt in je code. Wij weten niets van je flow en met functies als zichtbaarheid_check die de waarde voor een column teruggeeft en verder vrij weinig met zichtbaarheid te maken heeft is het allemaal wat verwarrend (uiteindelijk ook voor jezelf). Heel die check van de gebruikersrol (ingelogd? nda?) hoort daar niet thuis. (Kan zijn dat daar de oorsprong van het probleem zit, want welke code roept zichtbaarheid_check aan?)

[Voor 26% gewijzigd door Mr. HTTP op 31-01-2021 23:21]


  • Mr. HTTP
  • Registratie: November 2020
  • Laatst online: 09-03-2022
NECAnGeL schreef op zondag 31 januari 2021 @ 22:41:
[...]
Ik moet zeker aan me flow werken, ben ik met je eens maar ben er te weinig mee bezig en moet soms wat doen en als het werkt dan werkt het denk ik dan. Maar ga toch nadenken om de flow te verbteren. Bedankt voor je input.
Hoe het er nu uitziet is gewoon vragen om problemen omdat zodra er iets verandert in je code of logic het onvoorspelbaar gedrag gaat vertonen en er een soort debug hell onstaat.
Want als $lijst niet meer 'niet_ingelogd' of 'ingelogd' is wordt $verbergen niet gedefineerd en dus ook niet $waarde_veld en is de return value NULL.
Daarbij is strpos om een gebruikersrol te checken ook linke soep. Hoe ziet die test-string er dan uit?
Want als bijv. 'guest' voorkomt in meerdere rollen? Dan weet je nooit op welke rol er gematched wordt:
code:
1
2
3
$_alg_wc_pvbur_invisible = 'guest';
$_alg_wc_pvbur_invisible = 'guest non_guest';
$_alg_wc_pvbur_invisible = 'guest,non_guest';

Verder lijken je variablenamen (soms) helemaal niets met de logic te maken te hebben. Geef het een tijdje en je code is compleet onbeheersbaar en als er dan een ander na moet kijken dan krijgt ie een hartaanval. ;)

De meeste beveiligingslekken ontstaan door dit soort code.

  • NECAnGeL
  • Registratie: Januari 2004
  • Laatst online: 30-05 20:58
Mr. HTTP schreef op zondag 31 januari 2021 @ 23:07:
[...]


Waarom gaat dat niet lukken? Krijg je een foutmelding?
Daarbij kan het nog steeds aan de haakjes liggen natuurlijk (en de punt-comma).

Je moet eerst het haakjes probleem uitsluiten:

1) comma, geen haakjes
code:
1
=HYPERLINK("https://seomarketingdeals.com/linklijsten/a","Linklijst Ingelogd")
code:
1
=HYPERLINK("https://seomarketingdeals.com/linklijsten/b","Linklijst met NDA")

2) semicolon, geen haakjes
code:
1
=HYPERLINK("https://seomarketingdeals.com/linklijsten/a";"Linklijst Ingelogd")
code:
1
=HYPERLINK("https://seomarketingdeals.com/linklijsten/b";"Linklijst met NDA")

3) nu weet je comma of semicolon
4) test met haakjes
5) test haakjes met rawurlencode voor percent-encoding

Update:
Daarnaast is het handig als je ergens een debug output kan dumpen voor jezelf om te zien of je wel de juiste waardes rondpompt in je code. Wij weten niets van je flow en met functies als zichtbaarheid_check die de waarde voor een column teruggeeft en verder vrij weinig met zichtbaarheid te maken heeft is het allemaal wat verwarrend (uiteindelijk ook voor jezelf). Heel die check van de gebruikersrol (ingelogd? nda?) hoort daar niet thuis. (Kan zijn dat daar de oorsprong van het probleem zit, want welke code roept zichtbaarheid_check aan?)
Excel zelf geef een foutmelding als je met de , gaat werken. Een formule fout. Dit kan je misschien zelf testen is je dit in excel zet?

http://www.ietsdoenofferte.nl


  • NECAnGeL
  • Registratie: Januari 2004
  • Laatst online: 30-05 20:58
Ben jij in te huren of mag dat niet via hier?

http://www.ietsdoenofferte.nl


  • NECAnGeL
  • Registratie: Januari 2004
  • Laatst online: 30-05 20:58
Dit zie je liever?


code:
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
//check of deze mag worden weergegeven / of een nda nodig heeft
function zichtbaarheid_check($lijst, $waarde_veld, $_alg_wc_pvbur_visible, $_alg_wc_pvbur_invisible ) { 
    
    //niet ingelogde lijst
    if ($lijst == 'niet_ingelogd') 
        { 
            //kijken of de gast rol verplicht is
            if (strpos($_alg_wc_pvbur_invisible, 'guest') !== false) { $verbergen = 'verbergen'; }
            
            //geen nda lijst
            if (strpos($_alg_wc_pvbur_visible, 'met_rbweb_nda') !== false) { $verbergen = 'verbergen_nda';}
        }
    
    //ingelogde lijst
    if ($lijst == 'ingelogd') 
        {   
            //geen nda producten weergeven
            if (strpos($_alg_wc_pvbur_visible, 'met_rbweb_nda') !== false) { $verbergen = 'verbergen_nda'; }
        }
    
    if ($verbergen == 'verbergen') { 
    //$waarde_veld = '=HYPERLINK("https://seomarketingdeals.com/linklijsten/";"Weergeven open de linklijst (Ingelogd)")'; 
    
    $waarde_veld = 'Weergeven open de linklijst (Ingelogd)';
    }
    
    if ($verbergen == 'verbergen_nda') { 
    //$waarde_veld = '=HYPERLINK("https://seomarketingdeals.com/linklijsten/";"Weergeven open de linklijst (Met NDA)")'; 
    $waarde_veld = 'Weergeven open de linklijst (Met NDA)';
    }
                
    return $waarde_veld;    
}

[Voor 95% gewijzigd door NECAnGeL op 01-02-2021 19:08. Reden: zag iets fout zitten.]

http://www.ietsdoenofferte.nl


  • Mr. HTTP
  • Registratie: November 2020
  • Laatst online: 09-03-2022
Kort antwoord: Nee
Alle logica omtrent gebruikers (ingelogd, nda) zal ik in een Class zetten die je vervolgens hergebruikt door je code heen om maar iets te noemen. Anyway, het heeft weinig zin om dit hier te bespreken, wij zitten volgens mij mijlenver uit elkaar qua code-ervaring dus dan praten we toch langs elkaar heen.

In een andere post en hierboven weer heb ik jou een vrij uitgebreid voorbeeld gegeven over code-optimalisatie, dat blijf ik niet doen.... :Z
Excel zelf geef een foutmelding als je met de , gaat werken. Een formule fout. Dit kan je misschien zelf testen is je dit in excel zet?
Ik heb geen Excel, zit op Linux. Daarnaast ben ik niet zo fanatiek om elk issue op dit forum zo diep te doorlopen voor random mensen. ;)

[Voor 10% gewijzigd door Mr. HTTP op 02-02-2021 12:27]


  • NECAnGeL
  • Registratie: Januari 2004
  • Laatst online: 30-05 20:58
Mr. HTTP schreef op dinsdag 2 februari 2021 @ 12:24:
[...]

Kort antwoord: Nee
Alle logica omtrent gebruikers (ingelogd, nda) zal ik in een Class zetten die je vervolgens hergebruikt door je code heen om maar iets te noemen. Anyway, het heeft weinig zin om dit hier te bespreken, wij zitten volgens mij mijlenver uit elkaar qua code-ervaring dus dan praten we toch langs elkaar heen.

In een andere post en hierboven weer heb ik jou een vrij uitgebreid voorbeeld gegeven over code-optimalisatie, dat blijf ik niet doen.... :Z


[...]

Ik heb geen Excel, zit op Linux. Daarnaast ben ik niet zo fanatiek om elk issue op dit forum zo diep te doorlopen voor random mensen. ;)
geen probleem en ik zoek verder :)

http://www.ietsdoenofferte.nl


  • Mr. HTTP
  • Registratie: November 2020
  • Laatst online: 09-03-2022
NECAnGeL schreef op dinsdag 2 februari 2021 @ 12:57:
[...]
geen probleem en ik zoek verder :)
Ik wist niet dat je nog iets zocht...

Anyway, mensen helpen doe ik graag, maar als ik dit bijv. uittyp en ik krijg dan van jou niet een reactie over hoe dat verliep dan krijg ik het idee dat ik mijn tijd verdoe. Praktisch elke insteek om tot een oplossing te komen op basis van de beschikbare info is gegeven. 8)7
Dit blijft een forum voor ontwikkelaars, niet zozeer een helpdesk voor jan en alleman.! 8)

[Voor 17% gewijzigd door Mr. HTTP op 02-02-2021 13:10]

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee