abonnement Unibet Coolblue
  vrijdag 4 november 2011 @ 13:27:40 #201
75592 GlowMouse
l'état, c'est moi
pi_103954886
quote:
0s.gif Op vrijdag 4 november 2011 11:27 schreef Sitethief het volgende:
Heeft iemand ervaring met ftp_connect() ? Hij doet het niet, maar ik krijg ook geen foutmelding waar ik iets mee kan. Het maakt ook niet uit of ik wel of niet poort 21 defineer als poort. De FTP server waarmee ik connect doet het wel via Firefox en Filezilla (op dezelfde machine)
Dezelfde machine als PHP?
Een firewall op de php-server lijkt mij het meest waarschijnlijk. Je hoort hoe dan ook een melding of een returnwaarde te krijgen als ftp_connect faalt.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_103955427
:W Noob hier. Ik ben bezig met een revamp van mijn wallpaper-site, welke momenteel nog handmatig wordt geüpdatet. Nu wil ik de hele boel in Wordpress flikkeren en uitlezen en dat is me ook gelukt. Althans, de overzichtsweergave van de wallpaper thumbnails met het aantal wallpapers erboven.

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
<?php
function countWallpapers() {
    
$args = array(
        
'child_of' => $post->ID,
        
'title_li' => '',
        
'sort_order' => 'DESC',
        
'sort_column' => 'menu_order'
    
);

    
$wallpapers get_pages($args);
    
$count 0;
        
    foreach(
$wallpapers as $wallpaper){
        if(
has_post_thumbnail($wallpaper->ID)) {
            
$count++;
        }
    }
    echo 
$count;
}

function 
showWallpapers() {
    
$args = array(
        
'child_of' => $post->ID,
        
'title_li' => '',
        
'sort_order' => 'DESC',
        
'sort_column' => 'menu_order'
    
);

    
$wallpapers get_pages($args);
    
$output '';
        
    foreach(
$wallpapers as $wallpaper){
        if(
has_post_thumbnail($wallpaper->ID)) {
            
$thumb get_the_post_thumbnail($wallpaper->ID'thumbnail'$attr 'title='.$wallpaper->post_title);
            
$link get_page_link($wallpaper->ID);

            
$output .= '<div class="wallpaper">' "\n";
            
$output .= '<a href="' $link '" title="' $wallpaper->post_title '">' $thumb '</a>' "\n";
            
$output .= '</div>' "\n\n";
        }
    }
    echo 
$output;
}
?>

Ziehier twee functies met eigenlijk dezelfde opbouw. Wat ik probeerde te bereiken was het uitlezen van de wallpapers en er een functie van maken zodat het makkelijk aan te roepen was vanuit een template (bovenstaande code staat namelijk apart in functions.php). Daarnaast wilde ik ook het aantal wallpapers erboven weergeven, dus een loopcount moest erbij en ook in een functie zodat ik het overal in de template netjes kon aanroepen. Helaas lukte het, ondanks veel trial & error, me niet om allebei de functies in/bij elkaar te houden aangezien het alleen in volgorde (eerst wallpapers, daarachter de count of alleen de count en geen wallpapers) werd weergegeven en dus niet flexibel was. Het werkt nu wel zoals het hoort, maar ik heb zo'n idee dat het compacter en "netter" kan.

Graag verbeter ik m'n code dus als iemand een suggestie heeft voor een nettere oplossing zou ik dat natuurlijk graag willen weten :s)
  vrijdag 4 november 2011 @ 13:50:08 #203
75592 GlowMouse
l'état, c'est moi
pi_103955521
hoe ziet dat aanroepen in een template eruit?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_103956273
1
2
3
4
<div class="entry-content">
    <p class="amount"><?php countWallpapers(); ?> wallpapers</p>
    <?php showWallpapers(); ?>
</div><!-- .entry-content -->
  vrijdag 4 november 2011 @ 14:22:38 #205
75592 GlowMouse
l'état, c'est moi
pi_103956594
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
<?php
function getWallpaperdata() {
    
$args = array(
        
'child_of' => $post->ID,
        
'title_li' => '',
        
'sort_order' => 'DESC',
        
'sort_column' => 'menu_order'
    
);

    
$wallpapers get_pages($args);
    
$count 0;
    
$output '';
        
    foreach(
$wallpapers as $wallpaper){
        if(
has_post_thumbnail($wallpaper->ID)) {
            
$count++;
            
$thumb get_the_post_thumbnail($wallpaper->ID'thumbnail'$attr 'title='.$wallpaper->post_title);
            
$link get_page_link($wallpaper->ID);

            
$output .= '<div class="wallpaper">' "\n";
            
$output .= '<a href="' $link '" title="' $wallpaper->post_title '">' $thumb '</a>' "\n";
            
$output .= '</div>' "\n\n";
        }
    }
    return array(
'count' => $count'html' => $output);
}
?>
1
2
3
4
<div class="entry-content">
    <p class="amount"><?php $wallpapers getWallpaperdata(); echo $wallpapers['count']; ?> wallpapers</p>
    <?php echo $wallpapers['html']; ?>
</div><!-- .entry-content -->
en opletten dat je in die foreach-loop niet de lelijkste queries uitvoert via get_the_post_thumbnail of get_page_link.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 4 november 2011 @ 14:25:38 #206
84244 Scorpie
Abject en infaam!
pi_103956680
quote:
0s.gif Op vrijdag 4 november 2011 14:22 schreef GlowMouse het volgende:

[ code verwijderd ]

[ code verwijderd ]

en opletten dat je in die foreach-loop niet de lelijkste queries uitvoert via get_the_post_thumbnail of get_page_link.
Die methodes zijn volgens mij best wel zwaar, daar valt wel wat winst te behalen denk.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_103957528
quote:
0s.gif Op vrijdag 4 november 2011 14:22 schreef GlowMouse het volgende:

[ code verwijderd ]

[ code verwijderd ]

en opletten dat je in die foreach-loop niet de lelijkste queries uitvoert via get_the_post_thumbnail of get_page_link.
Thanks ^O^ De values in een array gooien dus. Is het überhaupt mogelijk om aparte functies te maken van 2 values binnen een functie? Denk van niet aangezien mijn geGoogle niks opleverde maar ik vraag het toch even :@

Wat bedoel je precies met het laatste? De foreach loop had ik als snippet ergens vandaan geplukt, is hoewel ik ook een voorbeeld met add_filter zag. Zitten daar bepaalde (grote) voordelen aan tov get_the_post_thumbnail?
  vrijdag 4 november 2011 @ 14:54:37 #208
84244 Scorpie
Abject en infaam!
pi_103957676
quote:
14s.gif Op vrijdag 4 november 2011 14:50 schreef Chanty87 het volgende:

[..]

Thanks ^O^ De values in een array gooien dus. Is het überhaupt mogelijk om aparte functies te maken van 2 values binnen een functie? Denk van niet aangezien mijn geGoogle niks opleverde maar ik vraag het toch even :@
Functies van values maken snap ik niet helemaal?

quote:
Wat bedoel je precies met het laatste? De foreach loop had ik als snippet ergens vandaan geplukt, is hoewel ik ook een voorbeeld met add_filter zag. Zitten daar bepaalde (grote) voordelen aan tov get_the_post_thumbnail?
De methodes die je daar aanroept kunnen potentieel 'zwaar' zijn, dat wil zeggen dat ze lang duren, veel resources vreten of onnodig werk verrichten.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_103958176
quote:
0s.gif Op vrijdag 4 november 2011 14:54 schreef Scorpie het volgende:

[..]

Functies van values maken snap ik niet helemaal?
Zodat ik het ~netjes~ kan oproepen zoals ik eerst had gedaan :s)

quote:
0s.gif Op vrijdag 4 november 2011 14:54 schreef Scorpie het volgende:
[..]

De methodes die je daar aanroept kunnen potentieel 'zwaar' zijn, dat wil zeggen dat ze lang duren, veel resources vreten of onnodig werk verrichten.
Ah zo. :) Dacht juist dat je met get_the_post_thumbnail meteen de thumb als resultaat krijgt zonder de hele post aan te roepen en de thumbnail eruit te vissen. Blijkbaar is het andersom dan?
pi_103958371
quote:
0s.gif Op vrijdag 4 november 2011 15:08 schreef Chanty87 het volgende:

[..]

Zodat ik het ~netjes~ kan oproepen zoals ik eerst had gedaan :s)

Niemand weerhoudt je ervan die code die GlowMouse inline zet, in een aparte functie te douwen.

weleens van smarty gehoord trouwens?
  vrijdag 4 november 2011 @ 15:17:51 #211
75592 GlowMouse
l'état, c'est moi
pi_103958559
quote:
0s.gif Op vrijdag 4 november 2011 15:13 schreef KomtTijd... het volgende:

[..]
weleens van smarty gehoord trouwens?
ik wil, onding
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 4 november 2011 @ 15:23:27 #212
84244 Scorpie
Abject en infaam!
pi_103958807
quote:
0s.gif Op vrijdag 4 november 2011 15:08 schreef Chanty87 het volgende:

[..]

Zodat ik het ~netjes~ kan oproepen zoals ik eerst had gedaan :s)

Wat Glow heeft gedaan is het mooiste imo.

quote:
Ah zo. :) Dacht juist dat je met get_the_post_thumbnail meteen de thumb als resultaat krijgt zonder de hele post aan te roepen en de thumbnail eruit te vissen. Blijkbaar is het andersom dan?
Geen idee wat daar in gebeurt, het is een custom functie die we niet in kunnen zien, aan jou de schone taak dat uit te zoeken :)
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_103959222
quote:
0s.gif Op vrijdag 4 november 2011 15:23 schreef Scorpie het volgende:

[..]

Wat Glow heeft gedaan is het mooiste imo.
Ik had al eerder (zonder succes dus) geprobeerd om functies van die values te maken maar dan zou je de values vanuit getWallpaperdata(); moeten halen en daarbuiten in een eigen functie zetten. Want als ik de functies IN getWallpaperdata(); zet dan moet eerst getWallpaperdata(); zelf aangeroepen zijn anders bestaan de nieuwe functies niet.

Van Smarty had ik nog niet gehoord trouwens.

quote:
0s.gif Op vrijdag 4 november 2011 15:23 schreef Scorpie het volgende:
[..]

Geen idee wat daar in gebeurt, het is een custom functie die we niet in kunnen zien, aan jou de schone taak dat uit te zoeken :)
get_the_post_thumbnail is een Wordpress core functie, ziet er zo uit:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function get_the_post_thumbnail$post_id null$size 'post-thumbnail'$attr '' ) {
        
$post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
        
$post_thumbnail_id get_post_thumbnail_id$post_id );
        
$size apply_filters'post_thumbnail_size'$size );
        if ( 
$post_thumbnail_id ) {
                
do_action'begin_fetch_post_thumbnail_html'$post_id$post_thumbnail_id$size ); // for "Just In Time" filtering of all of wp_get_attachment_image()'s filters
                
if ( in_the_loop() )
                        
update_post_thumbnail_cache();
                
$html wp_get_attachment_image$post_thumbnail_id$sizefalse$attr );
                
do_action'end_fetch_post_thumbnail_html'$post_id$post_thumbnail_id$size );
        } else {
                
$html '';
        }
        return 
apply_filters'post_thumbnail_html'$html$post_id$post_thumbnail_id$size$attr );
}
?>

In principe niet zo heel spannend van wat ik zie... Nouja, in ieder geval thanks voor de hulp en info, ik kan er in ieder geval wat mee ^O^
pi_103987168
Ik probeer nu iets uit en ik loop een beetje vast.

Wat ik probeer te doen is door middel van een Onchange op een Select button, het gegeven ervan gebruiken in een functie die ernaast staat. (Soort van Ajax achtig idee.) Maar, ik loop ergens op vast.

Kortom:
Een maand Waarde uit Select button -> Jquery -> Php -> Terug op het scherm. (zonder pagina herladen).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
// Jquery.

    
$('#maand_gegeven').change(function(){
        
alert($('#maand_gegeven').attr('value'));
        $.
post("index.php", {
            
maand : $('#maand_gegeven').attr('value'),
            
jaar  : $('#jaar_gegeven').attr('value')
        });
    });

//html
<select name='maand' id='maand_gegeven' style='width:150px;'>
    <
option value='1'>Januari</option>
</
select>
?>

Alert op javascript gaf me mooi een melding met het cijfer dat ik nodig had. alleen verder doet het niet echt veel. Het zou uiteindelijk op een $_POST uitkomen die het verder moet verwerken, om het vervolgens weer op het scherm te laten tonen. Iemand die me kan helpen :)?
* cablegunmaster denkt dat het vastloopt op de $_POST dat die actie niet gebeurt.
Redacted
pi_103987714
1
2
3
4
5
6
7
8
9
10
11
    $('#maand_gegeven').change(function(){
        alert($('#maand_gegeven').val());
        $.post("index.php", {
            maand : $('#maand_gegeven').val(),
            jaar  : $('#jaar_gegeven').val()
        },
        function(data){
            alert('succes!');
            // doe iets nuttigs met data
        });
    });
En als je $.ajax() gebruikt, kun je ook een functie opgeven die moet afgaan als er een error is.

Verder kun je met de juiste tools (oa Firebug, of de ingebouwde developertools in Safari en Chrome) zien welke requests er gebeuren en welke antwoorden er door de server worden teruggestuurd. Anders moet je maar gokken wat er daadwerkelijk terug komt, en da's lastig met debuggen.

Verder heb ik geen idee wat je in php doet om te zien of je een POST of GET afhandelt, en wat je dan doet in die POST afhandeling.
pi_103995160
quote:
0s.gif Op zaterdag 5 november 2011 06:47 schreef Light het volgende:

[ code verwijderd ]

En als je $.ajax() gebruikt, kun je ook een functie opgeven die moet afgaan als er een error is.

Verder kun je met de juiste tools (oa Firebug, of de ingebouwde developertools in Safari en Chrome) zien welke requests er gebeuren en welke antwoorden er door de server worden teruggestuurd. Anders moet je maar gokken wat er daadwerkelijk terug komt, en da's lastig met debuggen.

Verder heb ik geen idee wat je in php doet om te zien of je een POST of GET afhandelt, en wat je dan doet in die POST afhandeling.
Om te testen had ik een echo var_dump($_POST); op de pagina gemaakt.
maar deze wil zich niet tonen op de pagina. wat er gebeurd is niet meer dan een query die nu al succesvol wordt weergegeven. Enige verschil is limitatie op maand of jaar.
Ik wou het zonder submit knop proberen, alleen $_POST werkt niet mee.

[ Bericht 8% gewijzigd door cablegunmaster op 05-11-2011 14:09:54 ]
Redacted
pi_103995445
Het resultaat van die var_dump() wordt niet vanzelf getoond, daar moet je moeite voor doen. Vandaar ook mijn tip om Firebug (of iets vergelijkbaars voor je browser) te gebruiken, dan kun je precies zien wat er teruggestuurd wordt naar de browser.
pi_103995720
quote:
0s.gif Op zaterdag 5 november 2011 14:12 schreef Light het volgende:
Het resultaat van die var_dump() wordt niet vanzelf getoond, daar moet je moeite voor doen. Vandaar ook mijn tip om Firebug (of iets vergelijkbaars voor je browser) te gebruiken, dan kun je precies zien wat er teruggestuurd wordt naar de browser.
Dit is mijn eerste keer dat ik het zo aanpak , ik heb firebug; maar snap niet waar ik moet kijken in firebug zelf.

ok breakpoints gevonden in Firebug :9 .
Nu nog leren debuggen. :P
het is gelukt :).

1
2
3
4
5
6
7
8
9
10
11
12
<?php
    
$('#maand_gegeven').change(function(){
        
alert($('#maand_gegeven').val());
        $.
post("index.php?action=totalen", {
            
maand : $('#maand_gegeven').val(),
            
jaar  : $('#jaar_gegeven').val()
        },
        function(
data){
            $(
"#wrapper").html(data);
        });
    });
?>
Blijkbaar moest ik de goede ID pakken om de hele pagina te laden. :). Werkt goed.

[ Bericht 36% gewijzigd door cablegunmaster op 05-11-2011 15:00:55 ]
Redacted
pi_104021958
Ik heb het nu voor elkaar gekregen dat ipv de hele pagina alleen dat ene stukje herlaad door de PHP te isoleren in een apart bestand en dat aan te roepen.

Voordeel: alleen de module verandert ipv de hele pagina die in de URL staat.
Nadeel: uitvogelen dat hij alle includes ook nodig heeft + de Javascript urls in het Aanroepende bestand. Dus opnieuw alle Jquery includen. (includes zijn dus alle customfuncties + DB connectie + $_POST afhandelingen. ) De reden dat ik de Javascript opnieuw include is omdat je anders het maar een enkele keer kan uitvoeren.

Wat deze functie doet -> Hij pakt een select veld dat ik een ID met #maand_gegeven heeft. Als deze verandert dan zal hij ajax_include.php?totaal aanroepen en 2 variabelen posten.
vervolgens include hij het bestand wat nodig is voor de weergave en past alles aan met de $_POST['maand'] en $_POST['jaar'] voert alle functies uit en laat het weer zien in ID #totaal

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
//html
<select name='maand' id='maand_gegeven' style='width:150px;'>
    <option value='1'>Januari</option>
</select>
//maincms.js
    $('#maand_gegeven').change(function(){
        $.post("ajax_include.php?totaal", {
            maand : $('#maand_gegeven').val(),
            jaar  : $('#jaar_gegeven').val()
        },
        function(data){
            $("#totalen").html(data);
        });
    });

// Ajax_include.php
    <script src="js/jquery-1.6.3.min.js" type="text/javascript"></script>
        <script src="js/maincms.js" type="text/javascript"></script>
<?php
    
include("includes.php");
/**
    File to include modules for Ajax.
    Only the files who are called from Jquery are found here.
*/
    
if(isset($_GET['totaal']))
    {
        include(
"./forms/overzicht_jaar_maand.php");
    }
?>

Even kort samengevat:
Een functie die kijkt naar een SELECT input veld en deze verandert als de waarde verandert. (met behulp van Jquery.) Vervolgens $_POST aanroept op ajax_include.php welk alle includes nodig heeft + javascript om een 2e verandering te zien. Deze verandering wordt hier opgevangen met een $_GET['totaal'] en er is zichtbaar een nieuwe pagina ingeladen. :P

Reden dat ik dit plaats, geen makkelijkere manier? doe ik het omslachtig? Of is dit de enige manier om een Inhoud te veranderen op 1 plek :D.

[ Bericht 1% gewijzigd door cablegunmaster op 06-11-2011 06:11:45 ]
Redacted
  zondag 6 november 2011 @ 10:19:04 #220
75592 GlowMouse
l'état, c'est moi
pi_104023048
quote:
0s.gif Op zondag 6 november 2011 05:23 schreef cablegunmaster het volgende:
De reden dat ik de Javascript opnieuw include is omdat je anders het maar een enkele keer kan uitvoeren.
;(
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104034529
quote:
0s.gif Op zondag 6 november 2011 10:19 schreef GlowMouse het volgende:

;(
Zonder deed hij het niet als ik het de eerste keer aanpaste.
Redacted
  zondag 6 november 2011 @ 15:20:10 #222
75592 GlowMouse
l'état, c'est moi
pi_104034611
dan roep je na $("#totalen").html(data); de relevante functies in je javascriptfile aan, die ook aangeroepen worden als je pagina voor het eerst geladen is
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104034993
quote:
0s.gif Op zondag 6 november 2011 15:20 schreef GlowMouse het volgende:
dan roep je na $("#totalen").html(data); de relevante functies in je javascriptfile aan, die ook aangeroepen worden als je pagina voor het eerst geladen is
Nou kijk het probleem is als volgt;
1
2
3
4
5
6
7
8
9
10
11
<?php
    
$('#maand_gegeven').change(function(){
        $.
post("ajax_include.php?totaal", {
            
maand : $('#maand_gegeven').val(),
            
jaar  : $('#jaar_gegeven').val()
        },
        function(
data){
            $(
"#totalen").html(data);
        });
    });
?>
Dit bovenste stukje werkt een enkele keer als ik het via index.php uitvoer en vervolgens landt dat in ajax_include.php?totaal en daar zit geen include in. ik krijg het idee dan dat ID #totalen op een totale andere pagina zit dit niet reageert op index.php wat het oorspronkelijke script op de pagina was. Daarom heb ik het opnieuw geinclude.
Redacted
  zondag 6 november 2011 @ 15:52:35 #224
75592 GlowMouse
l'état, c'est moi
pi_104036058
Dat komt denk ik omdat je de select met id maand_gegeven onderdeel is van de div met id totalen. Je krijgt dan een nieuw element, en daar moet je opnieuw een change-event aan binden.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104036664
Dit wetende zou ik dan eigenlijk in de Select Onchange="veranderWaarde(this.id)"
en dan een functie van mijn javascript maken van wat ik al heb?
Zou dit het probleem oplossen?
Even proberen :P
Redacted
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')