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 --> |
Die methodes zijn volgens mij best wel zwaar, daar valt wel wat winst te behalen denk.quote: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.
Thanksquote: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.
Functies van values maken snap ik niet helemaal?quote:Op vrijdag 4 november 2011 14:50 schreef Chanty87 het volgende:
[..]
ThanksDe 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
![]()
De methodes die je daar aanroept kunnen potentieel 'zwaar' zijn, dat wil zeggen dat ze lang duren, veel resources vreten of onnodig werk verrichten.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?
Zodat ik het ~netjes~ kan oproepen zoals ik eerst had gedaanquote:Op vrijdag 4 november 2011 14:54 schreef Scorpie het volgende:
[..]
Functies van values maken snap ik niet helemaal?
Ah zo.quote: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.
Niemand weerhoudt je ervan die code die GlowMouse inline zet, in een aparte functie te douwen.quote:Op vrijdag 4 november 2011 15:08 schreef Chanty87 het volgende:
[..]
Zodat ik het ~netjes~ kan oproepen zoals ik eerst had gedaan
ik wil, ondingquote:Op vrijdag 4 november 2011 15:13 schreef KomtTijd... het volgende:
[..]
weleens van smarty gehoord trouwens?
Wat Glow heeft gedaan is het mooiste imo.quote:Op vrijdag 4 november 2011 15:08 schreef Chanty87 het volgende:
[..]
Zodat ik het ~netjes~ kan oproepen zoals ik eerst had gedaan
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 zoekenquote: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?
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.quote:Op vrijdag 4 november 2011 15:23 schreef Scorpie het volgende:
[..]
Wat Glow heeft gedaan is het mooiste imo.
get_the_post_thumbnail is een Wordpress core functie, ziet er zo uit:quote: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
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, $size, false, $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 ); } ?> |
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> ?> |
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 }); }); |
Om te testen had ik een echo var_dump($_POST); op de pagina gemaakt.quote: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.
Dit is mijn eerste keer dat ik het zo aanpak , ik heb firebug; maar snap niet waar ik moet kijken in firebug zelf.quote: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.
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); }); }); ?> |
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"); } ?> |
quote: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.
Nou kijk het probleem is als volgt;quote: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
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); }); }); ?> |
1 2 3 | <?php echo "<a href=\"includes/admin/verwijderen_optreden.php?id=".$array['O_id']."\">Verwijderen </a>"; ?> |
1 2 3 | <?php <img src="http://myimglink.com/img.png\" border=0> ?> |
<a href=\"includes/admin/verwijderen_optreden.php?id=".$array['O_id']."\"><img data-src="http://myimglink.com/img.png\" style="visibility:hidden;" border=0></a> ?quote:Op maandag 7 november 2011 11:51 schreef MrNiles het volgende:
als ik deze code heb om een item te verwijderen
[ code verwijderd ]
wat moet ik veranderen zodat de tekst een image wordt?
waarschijnlijk met zoiets
[ code verwijderd ]
maar ik krijg unexpected T_LNUMBER
1 2 3 | <?php "<img src=\"http://myimglink.com/img.png\" border=\"0\" onclick=javascript:doSomething();>"; ?> |
Maar dan nog een extra \ bij src=".quote:Op maandag 7 november 2011 11:54 schreef remi1986 het volgende:
[..]
<a href=\"includes/admin/verwijderen_optreden.php?id=".$array['O_id']."\"><img data-src="http://myimglink.com/img.png\" style="visibility:hidden;" border=0></a> ?
1 2 3 4 5 6 7 8 9 10 11 12 | <?php echo '0 01 012 0123 01234 012345 0123456 01234567 012345678 0123456789'; ?> |
zet er een while omheen en zorg dat hij 1x uitgevoerd wordt, of kom met wat eleganters voor je huiswerkquote:Op maandag 7 november 2011 12:36 schreef vlam12 het volgende:
[..]
ja, maar hoe doe je dat met een while lus?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php $i = 1; while ( $i != 11 ) { $j = 0; while ( $j != $i ) { echo $j; $j++; } echo "<br />"; $i++; } ?> |
Ninja'dquote:Op maandag 7 november 2011 12:53 schreef Pakspul het volgende:
[ code verwijderd ]
Huiswerk af, snel naar de coffee shop voordat je handen gaan trillen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php $max = 9; $loop = 0; while($loop <= $max) { $loop2 = 0; while($loop2 <= $loop) { echo $loop2; $loop2++; } echo "<br/>"; $loop++; } ?> |
1 2 3 4 5 6 7 8 9 | <?php $count = 0; $total = '0123456789'; while($count <= 9) { $count++; echo substr($total, 0, $count)."<br/>"; } ?> |
Brrrrrrr. Dat kan netter.quote:Op maandag 7 november 2011 12:53 schreef Pakspul het volgende:
[ code verwijderd ]
Huiswerk af, snel naar de coffee shop voordat je handen gaan trillen
Ik vind het ook bijzonder knap van ze.quote:Op maandag 7 november 2011 13:10 schreef vlam12 het volgende:
wow! hoe zien jullie zo snel wat de oplossing is?
Door ook maar een klein beetje programmeerinzicht te hebben?quote:Op maandag 7 november 2011 13:10 schreef vlam12 het volgende:
wow! hoe zien jullie zo snel wat de oplossing is?
Inzicht, weten hoe je er door heen moet lopen + ervaring.quote:Op maandag 7 november 2011 13:10 schreef vlam12 het volgende:
wow! hoe zien jullie zo snel wat de oplossing is?
Kan netter ja, maar kan ook nog velen malen uitgebreiderquote:
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 | <?php class ArrayList { private $_Index = -1; private $_InnerList; public function Add($value) { $this->_InnerList[] = $value; } public function Count() { return count($this->_InnerList); } public function Read() { $this->_Index++; if ( $this->_Index == $this->Count() ) { return false; } return true; } public function Item() { if ( $this->_Index < 0 ) { throw new Exception('List not started reading.'); } return $this->_InnerList[$this->_Index]; } } $lineList = new ArrayList(); while ( $lineList->Count() != 10 ) { $numberList = new ArrayList(); while ( $numberList->Count() != ($lineList->Count() + 1) ) { $numberList->Add($numberList->Count()); } $lineList->Add($numberList); } while ( $lineList->Read() ) { $numberList = $lineList->Item(); while ( $numberList->Read() ) { echo $numberList->Item(); } echo "<br />"; } ?> |
Dat kan uitgebreider, je kan bijv $lineList->Count()+1 ook weer in een aparte functie stoppen.quote:Op maandag 7 november 2011 13:23 schreef Pakspul het volgende:
[..]
Inzicht, weten hoe je er door heen moet lopen + ervaring.
[..]
Kan netter ja, maar kan ook nog velen malen uitgebreider
[ code verwijderd ]
Als het je huiswerk is, lever dit in
Nee, want dat heeft geen nut voor dit verhaal. Je gebruikt het alleen hier en de class zou je overal weer kunnen gebruiken (beetje OO denken).quote:Op maandag 7 november 2011 13:26 schreef Luchtkoker het volgende:
[..]
Dat kan uitgebreider, je kan bijv $lineList->Count()+1 ook weer in een aparte functie stoppen.
Kun je heel mooi gebruiken voor lijsten zo te zien?quote:Op maandag 7 november 2011 13:28 schreef GlowMouse het volgende:
jullie zijn bekend met de iterator? http://php.net/manual/en/class.iterator.php
Daar ging het niet om, voor dit verhaal heeft het ook weinig nut om allemaal classes te gaan gebruiken etc, het ging erom dat het uitgebreider kon.quote:Op maandag 7 november 2011 13:32 schreef Pakspul het volgende:
[..]
Nee, want dat heeft geen nut voor dit verhaal. Je gebruikt het alleen hier en de class zou je overal weer kunnen gebruiken (beetje OO denken).
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | <?php class Console { private static $newLine = "<br />"; public static function Write($value) { echo $value; } public static function WriteLine($value = "") { echo $value; echo self::$newLine; } } class ArrayList { private $_Index = -1; private $_InnerList; public function Add($value) { $this->_InnerList[] = $value; } public function Count() { return count($this->_InnerList); } public function Read() { $this->_Index++; if ( $this->_Index == $this->Count() ) { return false; } return true; } public function Item() { if ( $this->_Index < 0 ) { throw new Exception('List not started reading.'); } return $this->_InnerList[$this->_Index]; } } $lineList = new ArrayList(); while ( $lineList->Count() != 10 ) { $numberList = new ArrayList(); while ( $numberList->Count() != ($lineList->Count() + 1) ) { $numberList->Add($numberList->Count()); } $lineList->Add($numberList); } while ( $lineList->Read() ) { $numberList = $lineList->Item(); while ( $numberList->Read() ) { Console::Write($numberList->Item()); } Console::WriteLine(); } ?> |
Nee, sorry ik vind het geen optiequote:Op maandag 7 november 2011 13:34 schreef Luchtkoker het volgende:
[..]
Daar ging het niet om, voor dit verhaal heeft het ook weinig nut om allemaal classes te gaan gebruiken etc, het ging erom dat het uitgebreider kon.
Het is geen kwestie van "de oplossing zien", het is een kwestie van een oplossing bedenken. Het is geen geheim waar je achter moet zien te komen ofzo, je moet gewoon verzinnen wat je voor instructies zou moeten geven om de gewenste output te krijgen. En aangezien het niet zo'n moeilijk probleem is, duurt het dus ook niet erg lang voordat je een geschikte oplossing hebt verzonnen.quote:Op maandag 7 november 2011 13:10 schreef vlam12 het volgende:
wow! hoe zien jullie zo snel wat de oplossing is?
Ik had denk ik een while(true) gebruikt icm met een for en een for each loop, gewoon, om hem te stangen.quote:Op maandag 7 november 2011 15:01 schreef Pakspul het volgende:
[..]
Als het om een bullshit opdracht gaat dan kun je nooit teveel onnodige loops hebben
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |