integratie om de voorkant in je keuze test, de integratie van multiple choice - - om de voorkant in je,,,,,,,,,, delen, 5 delen,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' dit artikel niet missen, is een reeks genaamd wordpress integratie van een deel van de keuze test. De integratie in het creëren van multiple choice wordpress backstage,,,, dit is de ontwikkeling van een wordpress multiple choice testen, het tweede deel van de serie.In het eerste deel van de « plugin » we creëren we backstage toegang tot de nodige gegevens in de gegevensbank zijn opgeslagen, in het laatste hoofdstuk van de « plugin », creëren we de voorkant, kunnen de gebruikers te testen en de beoordeling van hun kennis, met inbegrip van de volgende inhoud, zal in dit deel van de Voltooiing van de « plugin » we:,, het creëren van een korte code een test, de integratie van een goede blok blijkt dat het probleem van navigatie, de voltooiing van de test en het creëren van de resultaten, het creëren van een Timer, testen, moeten we een groot aantal problemen op de achtergrond willekeurige test.Ik hoop dat je al genoeg problemen op de achtergrond van de opslag van de test. En we beginnen.,, het creëren van een korte code een test, het eerste wat we moeten doen is een kantoor of de website - testen tonen aan dat element.Dit kan door het gebruik van een korte of pagina 's model.In de « plugin », een zakenman kan het thema van vereenvoudigde onafhankelijk is, toestemming voor het gebruik van plug - in als een afzonderlijke component van de thema 's in de pagina' s model afhankelijk zijn.Aan de andere kant, pagina 's model veiliger dan korte code fout kan het schrappen van een korte code blz.De eerste, de produktie, vereenvoudigde beschikbare tests, kan de gebruiker de keuze van een categorie die test.Een zakenman, zou worden gebruikt, add_shortcode fabrikant toe te voegen, zoals de volgende functies van de code, add_shortcode ("wpq_show_quiz array ($," wpq_show_quiz "); en nu, laten we eens kijken naar de vereenvoudigde code uit de database te halen de beschikbare test, wpq_show_quiz (functionele klassen van de dollar. $atts) {na: //europa.eu.int /comm /="; < div = "quiz_panel" > < vorm van actie = "methode =" na ">"; en ": //europa.eu.int /comm /. = = = = = = = < die van de werkbalk" > ";": //europa.eu.int /comm /. = < div = "toolbar_item" > < de keuze van de quiz_category "=" quiz_category ">"; ///////- categorie te verkrijgen uit de database van $quiz_categories = get_terms ("quiz_categories", "hide_empty = 1); voor ($quiz_categories quiz_category dollar) {Voor: //europa.eu.int /comm /< de waarde van de optie ". = = = = = = =".Quiz_category dollar - > term_id. "> ".Quiz_category dollar - > naam. "< /option> ";'<} patroon zelf. -; /select> < /div>"; -'< patroon zelf; - type = "verborgen". "Select_quiz_cat" naam "wpq_action" /> "; -'< patroon zelf; div =" toolbar_item "> - = <" dienen "in" select quiz categorie ". /> < /div>"; -'< patroon zelf; /form> "; -'< patroon zelf; div =" volledige toolbar_item "> < - type =" knop "=" completeQuiz. "Ga" resultaten "/> < /div>"; //////////////Displaying: tenuitvoerlegging van de vorm van de quiz als unorderd lijst de terugkeer van onze shortcode patroon zelf;}, zal de steun van de burgers voor de vorm en de nodige controles: //europa.eu.int /comm /gebruikt voor de quiz.We zoeken een lijst van beschikbare vragen klasse - gebied om de selectie van prioritaire categorieën.We kunnen gebruiken, get_terms, de functie, het hide_empty = 1, worden ten minste de quiz is er een probleem, een verborgen gebied, wpq_action, wordt gebruikt om te controleren of de waarde van de dollar, _post, ingediend na. In je korte codes ingevoegd in de produktie of een pagina, ziet er uit als het scherm beneden.,, de gebruiker kan kiezen, nu vragen, indienen in de vorm van voor het verkrijgen van de test.Dus je gaat aan de vorm van de indiening in een shorcode je de geselecteerde categorieën en retrieve willekeurige vragen voor quizzes., de volgende code bevat de uitvoering van een retrieving vragen van een bepaalde, $questions_str = "; als lid is ($_POST['wpq_action']) & &'select_quiz_cat'= = = = = = = $_POST['wpq_action']). - {patroon zelf'< die id =" de timer style= ": het"; "> < /div>"; -'< patroon zelf; style= "- die beide;" > < /div> < /div> "; $quiz_category_id = $_POST['quiz_category']; $quiz_num = get_option ('wpq_num_questions'); $args = array ('post_type'=>'wptuts_quiz','tax_query'=> - (2 => ('taxonomy';'quiz_categories','field''i =>D ','terms'=> $quiz_category_id)),'orderby'=>'rand','post_status'=>'publish','posts_per_page'=> $quiz_num); $query = nieuwe WP_Query ($args); $quiz_index = 1; terwijl ($query-> have_posts ()): $query-> the_post (); ///////voor de: //europa.eu.int /comm /voor vragen en je endwhile; wp_reset_query (); geen ander patroon zelf ook} {///////-'< div = "timer" style= ": geen;" > < /div> "; -'< patroon zelf; style=" - die beide; "> < /div> < /div>";}, de code gegeven moet worden opgenomen in de, uitvoering van het deel van de activiteiten van de vorm van de indiening,., als de vorm is ingediend, wij controleren of het formulier bevat de vereiste actie met behulp van de verborgen dat We gDe eerste die.We zullen vragen klasse, _post dollar, installatie, en we vragen de database wptuts_quiz geselecteerde vragen, en de post, belangrijk is, orderby,, Oostlander, die test waren, zou elke keer dezelfde vraag.Tegelijkertijd moet worden vastgesteld, posts_per_page, die elk een bepaald, de maximale hoeveelheid van de test, zodra de resultaten die we nodig hebben om het probleem van de elementen toegevoegd: //europa.eu.int /comm /, en we zullen in de volgende afdeling, integratie, uitvoering van een). Ook blijkt dat het probleem van navigatie -, test kan worden met het opstellen van een scherm met alle problemen in een het scherm, of in de tijd die navigatie controle een probleem.Ik denk dat de meesten van hen houdt van die technologie.Dus, we gaan en die voor een probleem en een probleem dat vanaf het begin de test -, die deze functie kan een tijdrovende bezigheid en opnieuw uitvinden.Deze situatie is ook een perfecte oplossing, zou ik met de rhinoslider, want het is mijn favoriet, dus pak een kopie downloaden, binnen de MAP, dan zie je de drie documenten, foto 's, is de CSS,,,,.Begrepen, IMG - CSS, MAP naar de « plugin » JS in onze documenten, de bestaande is het dossier, dat we bij het testen van de « plugin ».Nu kunnen we beginnen met inbegrip van de nodige script en de stijl van de glijder., met inbegrip van de voorzijde script, in het eerste deel, het creëren van de noodzakelijke achtergrond. Van ons.In dit deel zullen wij met inbegrip van rhinoslider nodig en quiz.js script, omschreven taken, voor de grote aanvragen, kunnen we gebruik maken van de verschillende scenario 's dossier aan de voor - en achterkant.Ik zal gebruik maken van een script, maakt de dingen makkelijker.Het script, rekening te houden met en noodzakelijk de configuratie van de gegevens, de volgende code, de functie wpq_frontend_scripts () {wp_register_script ("neushoorn", plugins_url ('J' s /rhinoslider-1.05. Uitgave ", __file__), - (:)); wp_register_script (" neushoorn -, plugins_url ('J' s /roller. Js, __file__), - ())); wp_register_script ("neushoorn los", plugins_url ('J' s /los. Js, __file__), - (:)); wp_register_script ("test", plugins_url ('J' s /test. Js, __file__), - ("), de neushoorn", "neushoorn -", "neushoorn los")); wp_enqueue_script ("test"); quiz_duration dollar = get_option ("wpq_duration" quiz_duration = ($).Lege (dollar quiz_duration))?Quiz_duration dollar: 300 dollar ('ajaxurl); config_array = "= > admin_url (" beheer van Ajax, PHP),'quiznonce "= > wp_create_nonce (" test ",'quizduration" t) = > quiz_duration dollar,'plugin_url "= > de dollar - > plugin_url); wp_localize_script (" test "," test ", config_array dollar);}, er zijn drie documenten die worden gebruikt voor de rhinoslider en javascript, quiz.js, gebruik van documenten.In het eerste deel van onze tijd, de toewijzing van de test.We kunnen gebruiken, get_option opvragen, de functie en de distributie, $- configuratie.We moeten bij de toewijzing van de algemene regeling (met inbegrip van, we uiteindelijk kunnen worden gebruikt, wp_localize_script, functie, quiz.js, de configuratie van gegevens, met inbegrip van de stijl van de voorkant, kunnen we ook met inbegrip van de CSS - documenten die vereist zijn voor de neushoorn. Gebruik de volgende codes, de functie wpq_frontend_styles () {wp_register_style ("op basis van de neushoorn, plugins_url (de Wegwijzerdienst /rhinoslider-1.05. De CSS, __file__) ("); wp_enqueue_style neushoorn basis "); aanpassing van de « plugin »}. En tot slot moeten wij de fabrikant met inbegrip van het script en de stijl van de toevoeging van de volgende codes, de nodige maatregelen add_action (" wp_enqueue_scripts array ($, "wpq_frontend_scripts") ("); add_action wp_enqueue_scripts array ($," wpq_frontend_styles"); de voorbereidingen, dat we eerder ook de integratie van de korte, de problemen te creëren.Laten we gaan, die ook in de bedrijven, die we op dit moment in de commerciële functie twee opmerkingen ": //europa.eu.int /comm /problemen" en "die blok".Deze delen moeten worden bijgewerkt en de overeenkomstige code voor het genereren van een glijbaan.In de eerste plaats moeten we de cyclus als volgt aangepast, terwijl de,, ($vraag > have_posts ()): $vraag > the_post (); question_id dollar = get_the_id (); $problemen = the_title ("," "valse").Dollar. Get_the_content (); question_answers = json_decode (get_post_meta (question_id dollar, _question_answers "," echt)); questions_str dollar. = "< li >"; questions_str dollar. = = = = = = = < "die" ques_title "> < breedte =" quiz_num ">".Quiz_index dollar. "< /ijk > "."$"< /div >; questions_str dollar. = = = = = = = "ques_answers" < die gegevens id = "test".Question_id dollar. "> "; quiestion_index dollar = 1; voor (question_answers dollar belangrijke = > de dollar in waarde) (als (".= de waarde van) {% questions_str. = quiestion_index dollar. "Input - type = de draadloze "=".Quiestion_index dollar. "Naam: "ans_".Question_id dollar. "[] ">".Waarde.< BR /> ";}, + + + + + + quiestion_index;} questions_str dollar. =" < /div > < /Lee >; quiz_index dollar +; endwhile;,, van de interpretatie van de code,,, in het verkeer, In de eerste plaats krijgen we problemen in verband met de titel en inhoud van het probleem we zoeken. En dan antwoord op elke vraag, get_post_meta, functie, die voor de cyclus, alle antwoorden zal verdeeld in de knop en de waarde van de lijst nodig, noodzakelijk zal worden toegewezen in het verkeer, met inbegrip van: //europa.eu.int /comm /gegevens dit zal van pas komen in het volgende hoofdstuk, terwijl de hoogte van de definitief de produktie zal vragen en antwoorden die een lijst van variabelen, de volgende: //europa.eu.int /comm /touw. En moeten we tot documentenDe afdeling voor de burgers "opgenomen.".De volgende codes bevatten voor het creëren van een container: //europa.eu.int /comm /code: //europa.eu.int /comm /dollar. = "< - ul - id =" blok ">".Questions_str dollar; http: //europa.eu.int. = "< li id =" quiz_result_page "> < div =" ques_title "> het resultaat van de test < span id =" concentratie "> < Kruis > < /div >"; ": //europa.eu.int /comm /. = = = = = = =" quiz_result div < "> < /div >; $: //europa.eu.int /comm /. =" < /Lee > < /UL > < /div > "; zullen we gebruik maken van een lijst, de wanorde in de container blok neushoorn.We hebben problemen in de eerste cyclus, die de instellingen gebruik, antwoord, questions_str dollar.Het bevat een lijst van een verzameling van gegevens, en dan moeten we het creëren van een lijst van projecten, om te laten zien dat de resultaten van tests en cijfers, nu alle gegevens die nodig zijn voor de toepassing van de test en de dia 's programma - configuratie.We zullen een neushoorn in actie zien quiz.js, slider, test: (document). Klaar voor de (functie ($) {% ("# blok"). Rhinoslider ({controlsmousewheel: valse, controlsplaypause: valse, showbullets:'altijd ", showcontrols:'altijd"});}), gebruik ik een gewoonte. Met Het oog op de verbetering van de CSS, zien en voelen.Je kan vinden in alle amendementen, wp_quiz CSS, rhinoslider-1.05.css deel van het dossier.Nu, je moet de volgende beelden,,, voltooiing van de test en de resultaten die, eenmaal geladen, kun je de navigatie controle tussen de beweging van de problemen en de keuze van het antwoord.Als alle vragen beantwoord zijn, je moet op de knop "resultaten".Nu moeten we met een verzoek om de resultaten van de tests van Ajax, laten we de Ajax verzoeken) code te bereiken. En $("# completequiz"). Daarna (functie) (wpq_quiz_results ();}); var wpq_quiz_results = functie () {VAR selected_answers = {}; $(". Ques_answers"). Elke (functie) (var question_id =% (dit).Attr ("gegevens test id"); var selected_answer = $(het) vinden (input [radio]: controle van soorten); als (selected_answer.length!= 0) {VAR selected_answer = $(selected_answer). Val (); selected_answers ["qid_" + question_id] = selected_answer;} {selected_answers ["of qid_" + question_id] = ";}}); ///////Ajax verzoek}; als" resultaten "knop klikt, bellen We als wpq_quiz_results, de functie, het gebruik van dit.Elk probleem worden toegevoegd aan een speciale klasse van de CSS ques_answers, slider,., en door elke elementen en, ques_answers, klasse, we zoeken het probleem: //europa.eu.int /comm /id gegevens, gegevens id, en de geselecteerde radio gebruiken), uiteindelijk zullen we alle vragen en antwoorden voor de keuze van een installatie, selected_answers het verzoek is door de Ajax,,, naar de volgende code dat Ajax verzoeken dollar. (quiz.ajaxurl {actie: "get_quiz_results", ": quiz.quiznonce, gegevens: selected_answers,), functionele (data) {///////verwerking van de resultaten van de code} Ajax," hola "); het gebruik van, in de eerste plaats creëren we jax verzoek aangewezen de toewijzing van de gegevensM wpq_frontend_scripts, functioneren.In het vorige hoofdstuk van de lijst die in het antwoord worden toegestuurd aan de parameters.De resultaten voor de behandeling, zien we het volgende deel van de code van de server te bereiken, het creëren van een behandeling op de server van Ajax, ten eerste moeten we gebruik maken van het voor de gebruiker en de gewone gebruikers. De volgende code aangegeven noodzakelijke maatregelen te verbeteren, add_action (van de fabrikant. Wp_ajax_nopriv_get_quiz_results array ($, "get_quiz_results") ("); add_action wp_ajax_get_quiz_results - ($," get_quiz_results "); en dan kunnen we naar de verwezenlijking van de volgende functies, get_quiz_results code aangegeven, de functie get_quiz_results () {% score = 0; dollar question_answers = _post dollar [data]; question_results dollar = ((); voor (question_answers dollar._id = > $antwoord) {% question_id = decoratie (str_replace ("qid_", "voor de ques_id)).""; correct_answer = get_post_meta dollar (USD question_id," _question_correct_answer, waar); als ($antwoord = = $correct_answer) {% score +; question_results dollar [] = - $question_id "(" het antwoord "= > $antwoordde," correct_answer "= > correct_answer dollar en mark" = > de "juiste");} {% question_results of "$question_id" [] = - ("het antwoord" = > $antwoordde, "correct_answer" = > correct_answer dollar en mark "= >" niet goed ");}} $total_questions = tellen. ($question_answers); $quiz_result_data = array (" total_questions "= > total_questions dollar, 'scoren' = > als de score," resultaten "= > question_results dollar (USD); ECHO json_encode quiz_result_data); uit de interpretatie van de code;},,,,, de verkiezing van EenAlle problemen nswers zal de toegang tot de gegevens binnen de parameters van de _post dollar en we zoeken, -., elk vraagstuk id vervangen, qid_, kengetal, we worden gebruikt, get_post_meta database, het juiste antwoord op elke vraag. En we controleren of de antwoorden en het juiste antwoord, creëren, question_results dollar, op basis van de resultaten van de het antwoord staat, en voor de controle van de test scores, we moeten worden bijgewerkt, $, veranderd, de laatste test resultaten en de resultaten zullen wij, als reactie op de quiz_result_data dollar sturen, -.,, tot nu toe, creëren we Ajax verzoeken en dat de reactie van de server.In het volgende deel zullen wij door de behandeling van de voltooiing van de test resultaten van Ajax reacties die tijdens de verwerking van gegevens, Ajax reactie, in reactie op een deel van het proces, we hebben veel taken omvatten de test scores zien.Dus ik ga de code in te delen, om heel duidelijk te zijn.Als de volgende code die is de volledige Ajax request., $.post (quiz.ajaxURL {het'get_quiz_results', nonce: quiz.quizNonce, data: selected_answers}, functie (data) {///////1 var. Total_questions = data.total_questions; $('#slider').Data ('rhinoslider').Next ($('#rhino-item'+ total_questions)); - ('#score') (data.score. + + + + + + +); ///////total_questions "/" artikel 2 var result_html ='< table> "; result_html + ='< tr> < td> Question< /td> < td> Answer< /td> < td> Correct Answer< /td> < td> Result< /td> < /tr>"; var. Quiz_index = 1; $.each (data.result, functie (sleutel, ques) {result_html + ='< tr>< td> "+ quiz_index +'< /td> < td>" + ques.answer +'< /td> < td> "+ ques.correct_answer +'< /td>"; result_html + ='< td> < IMG - src = "+ + + +'.png quiz.plugin_url'img/'ques.mark /> /td> <"; /tr> <;; "; quiz_index++;}); result_html + ='< tr> < td> & nbsp; < /td> < td> < /td> < td> < /td>"; result_html + ='< td> < /td> < /tr> "; Afdeling 3 $('#quiz_result') ///////.Parent (). ('overflow-y','scroll'); en ('#quiz_result'). (result_html); en ('#timer').Hide ();},'json');,, 4 van afdeling 1, ten eerste, we retrieve, het totale vragen van de quiz van de reactie ontvangen van de server.Dan gebruiken we, in het kader van een neushoorn slider, de functie van de gebruikers van de resultaten van de dia 's.Dan hebben we een score en de gebruikers inscoort en de totale vraag, de container.,, deel 2, van deze code uit te leggen, het eerste deel van de tabel en de titel: //europa.eu.int /comm /nodig is de weergave van de resultaten.En dan hebben we het probleem van de verdeling van de belangrijkste, in de tabel, de ring.We hebben het gebruik van 2 foto 's om blijk te geven van dit probleem het slagen of mislukken van de staat, deel 3 van de verklaring, in eerste instantie, we moeten het mogelijk maken dat de resultaten van de rollen van de pagina' s lang, want het kan de test met een groot aantal problemen.De Wegwijzerdienst, overflow-y eigenschap is, te laten rollen.Tot slot hebben we de resultaten in tabel,quiz_result, containers en verborgen Timer, en we zullen in de volgende afdeling ten uitvoer worden gelegd, zodra de na voltooiing van de test, je scherm moet lijken op de volgende beelden,.,,, het creëren van een test de timer, meestal een test met vooraf bepaalde termijnen.Daarom zullen wij gebruik maken van onze instellingen in de « plugin » pagina 's van de toewijzing van de duur van die test de timer.We hebben de timer is verborgen in de toewijzing van de eerste pagina 's en vorm indienen, zichtbaar, in een korte, laten we op de dynamische timer gebruikt: code, zoals blijkt uit de volgende focus. Var. = quiz.quizduration × 60; $(document). Klaar voor de (functie ($) (settimeout ("startpuzzlecount ("), 1000);}); var startpuzzlecount = functie) (. ("# timer. $) (+" tweede "); als (= =" 0 ") {% ("timer). (""); wpq_quiz_results (); de terugkeer; settimeout ('} startpuzzlecount ("), 1000);}, met behulp van de configuratie van de test; - door het gebruik van, wp_localize_script opvragen.De tijd en vermenigvuldigd met 60, omgerekend in seconden, dan maken we een settimeout functie, de timer.In een functie, het verminderen van de duur van de opdracht geven, 1,Timer, tank.Toen de tijd kwam naar nul, noemen we het, wpq_quiz_results, automatische voltooiing van de test en de functie van het resultaat van die, wij noemen het settimeout, de vernieuwing, de rest is recursief.We hebben je timing, de uitvoering van de test moeten de volgende beeld lijkt de timer.,,,, zijn verpakt, in de twee delen van de serie, we de ontwikkeling van een eenvoudige wordpress en de voltooiing van de multiple choice toets plug - ins.Je kan de uitbreiding van de « plugin » te voldoen aan uw verzoek.Ik adviseer je kan op de volgende manieren om verbetering te brengen in de « plugin »: het creëren van een methode voor de toewijzing, de problemen in plaats van willekeurige test te redden en de examens van de gebruikers, het creëren van een quiz tussen gebruikers en tussen.