Urdu Ελληνικά
English English Deutsch Deutsch Español Español Français Français Italiano Italiano Nederlands Nederlands Português Português Русский Русский Ελληνικά Ελληνικά
Login



 
Καλώς ήλθατε στο Jumi! Φροντιστήριο >> >> Αυτο μορφές καλώντας σε Joomla! περιεχόμενο

Υπάρχουν πολλοί άνθρωποι που επιθυμούν να δημοσιεύσουν προσαρμοσμένες φόρμες τους σε Joomla! περιεχόμενο.

Για να ικανοποιήσουν τις ανάγκες τους αποφάσισα να γράψω αυτό το tutorial. Το σεμινάριο είναι αφιερωμένο στο Joomla! 1.0.x κωδικοποίησης αρχάριους, αλλά ενδιάμεσες μπορεί να βρεθεί κάποια χρήσιμα κόλπα επίσης.

Σε αυτό το βήμα προς βήμα φροντιστήριο θα μάθετε

  • τι αυτο μορφές Colling είναι και για ποιο σκοπό που εξυπηρετούν,
  • κάποιες από τις πιο χρήσιμες PHP και Joomla! 1.0.x κόλπα που έχουν σχέση με τον εαυτό μορφές κλήση. Π.χ.:
    • πώς πιάνει ένα σενάριο ότι ένας χρήστης έχει στείλει τα δεδομένα,
    • πώς να αναγνωρίζουν μια διεύθυνση URL στο οποίο η δέσμη ενεργειών εκτελείται,
    • πώς να απενεργοποιήσετε τη συγκεκριμένη Joomla! Σελίδα από cache,
    • τι το Joomla! συγκεκριμένο αντικείμενο βάσης δεδομένων $, $ μου είναι, πού να βρει τις μεθόδους τους και η περιγραφή τους,
    • και ούτω καθεξής

Τι μορφές καλώντας τον εαυτό είναι και για ποιο σκοπό εξυπηρετούν

Κάθε μορφή συλλέγει ορισμένα στοιχεία από την ανταπόκριση.

Συλλέγονται δεδομένα δεν παραμένουν σε μια μορφή, αλλά είναι - συνήθως μετά από το πάτημα στο κουμπί - έστειλε κάπου. Στέλνονται σε κάποιο σενάριο επεξεργασίας που "κάθεται" σε μια άλλη διεύθυνση URL και ότι - μετά την προεπεξεργασία δυνατόν - γράφει τα δεδομένα στη βάση δεδομένων ή / και τους στέλνει σε μια διεύθυνση e-mail.

Αυτή είναι η πιο κοινή προσέγγιση. Και σε αυτή προσέγγιση στηρίζεται πρότυπο Joomla! μορφές συστατικών.

Αλλά είναι δυνατόν να ζήσουμε χωρίς τις συνιστώσες, είναι δυνατόν να έχουν τα δικά μας έντυπα που πρέπει να περιληφθούν σε ένα άρθρο του περιεχομένου. Τα έντυπα μπορούν να στείλουν τα δεδομένα που συλλέγονται για τον εαυτό και την επεξεργασία τους. Είναι τα λεγόμενα μορφές κάλεσμα αυτό.

Είναι ακόμη δυνατό ακόμη περισσότερο: για να δείτε τα αποτελέσματα της φόρμας στο ίδιο περιεχόμενο του άρθρου.

Σε αυτό το tutorial θα σας δείξει πώς.

Επειδή πρέπει να υπάρχει κάποια PHP script εκεί που χειρίζεται τα δεδομένα με τη μορφή που θα κάνουν χρήση του plugin Jumi για αυτό, συμπεριλαμβανομένων σεναρίων στο περιεχόμενο. Εάν προτιμάτε κάποιο άλλο plugin για ένταξη σε PHP script το Joomla! περιεχόμενο μπορείτε να το χρησιμοποιήσετε ως καλά.

Επίδειξη περιγραφή μορφή

Αν και η παρακάτω φόρμα demo είναι πολύ συγκεκριμένο, μπορείτε να γράψετε κάθε μορφή μπορείτε να φανταστείτε από την προσέγγιση που περιγράφεται σε αυτό το σεμινάριο.

Μην κάνετε δοκιμές για τη δημόσια διακομιστή παραγωγής, αλλά σε τοπικό υπολογιστή σας μόνο!

Ας υποθέσουμε θέλουμε

  • μια μορφή ψήφου που συλλέγει απαντήσεις στις ερωτήσεις 3 αλληλοαποκλείονται,
  • να αποθηκεύσετε τις απαντήσεις σε μια βάση δεδομένων μαζί με την ημερομηνία και την ώρα της απάντησης και μαζί με τον προσδιορισμό ενός χρήστη,
  • να δείξει ένα "ευχαριστώ" ανακοίνωση και περίληψη των αποτελεσμάτων, αλλά αποκλειστικά σε εκείνους τους χρήστες που ψήφισαν.

Βασική στρατηγική

Ο διαχωρισμός του κώδικα σε πολλά κομμάτια, λειτουργικά και λογικά μπλοκ προσφέρει πολλά πλεονεκτήματα. Αν και δεν θα συζητηθούν τα πλεονεκτήματα εδώ θα ακολουθήσει αυτή τη γενική καλή πρακτική εδώ.

Υπάρχουν δύο κύριες λογικές ενότητες στο έργο μας:

  • + δείχνουν αποτελούν τη συλλογή δεδομένων + + ελέγχει τους αποθηκεύσετε τα δεδομένα σε μια βάση δεδομένων (αυτο μορφή κλήσης)
  • ανάγνωση δεδομένων από μια βάση δεδομένων και δείτε τα αποτελέσματα.

Γι 'αυτό θα χωρίσει την εφαρμογή μας σε δύο αρχεία script πολύ: self_call_form.php show_results.php.

Θα μπω σε λεπτομέρειες στη συνέχεια.

Αλλά ας ξεκινήσουμε με μια βάση δεδομένων πρώτα.

βάση δεδομένων

Αφήστε όνομα της βάσης δεδομένων μας τραπέζι είναι xxx_mytable_test όπου xxx αντιπροσωπεύει το Joomla! πρόθεμα βάσης δεδομένων. Μερικοί το Joomla! χρήστες έχουν Jos άλλοι έχουν πρόθεμα MOS πρόθεμα. Θα υποθέσω Jos πρόθεμα στο εξής.

Επαναλαμβάνω το καθήκον μας είναι να αποθηκεύουν ημερομηνία αρχείου και χρόνος, αναγνώριση του χρήστη και μια απάντηση.

Χωρίς να υπεισέλθω σε βάση δεδομένων MySQL και σχεδιαστικές λεπτομέρειες πίνακα που μπορεί να βρεθεί αλλού η δομή του πίνακα περιγράφεται στη γλώσσα της MySQL θα είναι:

Δημιουργία πίνακα ΑΝ ΔΕΝ ΥΠΑΡΧΕΙ `jos_mytable_test` (
`Id` int (11) NOT NULL AUTO_INCREMENT,
`Recordtime` datetime NOT NULL default "0000-00-00 00: 00: 00»,
`User_id` varchar (15) NOT NULL default "υποδοχής",
`Απαντήσουν` int ΔΕΝ (6) NULL default "0»,
PRIMARY KEY (`id`)
) TYPE = MyISAM?

Το πεδίο id προστέθηκε μόνο για τον πίνακα ρεκόρ μοναδικό αναγνωριστικό.

Θα πρέπει να δημιουργήσετε τον πίνακα σε Joomla βάση δεδομένων σας. Βεβαιωθείτε, ότι το πρόθεμα σας είναι jos_. Αν εξακολουθεί να είναι mos_, αλλάξτε το πρόθεμα πίνακα.

Μπορείτε να δημιουργήσετε πίνακα με το phpMyAdmin είτε χειροκίνητα είτε αυτόματα από το copy-paste της δήλωσης MySQL παραπάνω.

Θα υποθέσουμε ότι ο πίνακας jos_mytable_test δημιουργείται από τώρα.

self_call_form.php

Υπάρχουν βασικά δύο μέθοδοι με τις οποίες επικοινωνούν με το περιβάλλον μορφή της: POST και GET. ΠΑΡΤΕ στέλνει (και διαβάζει) τα δεδομένα από το παράρτημα διεύθυνση URL. Δεν θα χρησιμοποιήσουμε τη μέθοδο GET εδώ.

Μέθοδο POST γράφει δεδομένα σε παγκόσμια php μεταβλητή $ _POST. Έτσι έχουμε πλήρη πρόσβαση στα δεδομένα που αποστέλλονται εδώ.

Γενικά ο αλγόριθμος του self_call_form.php

Εάν δεν υπάρχουν σχετικά στοιχεία στο $ _POST, δηλαδή δεν υπάρχει καμία απάντηση από ένα χρήστη, τότε δείχνουν μορφή. Εάν ο χρήστης απάντησε, τότε να τον ευχαριστήσω και να γράψει την απάντηση (και άλλα δεδομένα) στη βάση δεδομένων.

Ο αλγόριθμος παραπάνω μεταφράζονται στη γλώσσα php μοιάζει με αυτό τον κωδικό:

λειτουργία self_form()
 // Όνομα κουμπιού ραδιοφώνου (εδώ "απάντηση") πρέπει να είναι και ένα όνομα στήλης σε μια βάση δεδομένων !!!
{

 $ Άγκυρα = "Μορφή"; / / Η μεταβλητή $ άγκυρα θα χρειαστεί αργότερα
 ηχώ " "; / / Html η άγκυρα θα χρειαστεί αργότερα
 ηχώ " "; / / Μορφή εμπορευματοκιβωτίων

 if(!isset($ _POST[«Απάντηση»])) / / Αν δεν υπάρχει απάντηση και στη συνέχεια γράψτε τη μορφή
 {
  $ RETURN_URL = Get_return_url($ Άγκυρα);
  ηχώ " ";
  ηχώ " Βρήκατε αυτό το σεμινάριο χρήσιμο; ";
  ηχώ " Φυσικά και όχι.\n";
  ηχώ " Ετσι κι έτσι.\n";
  ηχώ " Ναί. Ευχαριστώ για αυτό.\n";
  ηχώ " ";
  ηχώ " ";
 }

 αλλιώς / / Αν δεν υπάρχει μια απάντηση ευχαριστήσω και να γράψει την απάντηση στη βάση δεδομένων
 {
  ηχώ " Σας ευχαριστώ για την ψηφοφορία σας "?
  write_data($ _POST[«Απάντηση»]);
 }

 ηχώ " ";
}

Η εξήγηση και μερικά κόλπα

PHP λειτουργία isset («απάντηση») ελέγχει τα «απάντηση» σε καιρό υπάρχει $ _POST.

Θέλουμε τη φόρμα για να στείλετε δεδομένα σε αυτο. Αυτό σημαίνει ότι στην ίδια διεύθυνση URL (έντυπο και χειρόγραφο της επεξεργασίας μπορεί να βρεθεί στην ίδια διεύθυνση URL). Μπορούμε να χρησιμοποιήσουμε σκληρά κωδικοποιημένο διεύθυνση URL της σελίδας ή, όπως στην περίπτωσή μας, μπορούμε να πάρουμε τη διεύθυνση URL από το Joomla περιβάλλον χρησιμοποιώντας ένα απλό τέχνασμα. Χρησιμοποιώντας το τέχνασμα είναι καλύτερα στη συνέχεια ο πρώτος σκληρός κωδικοποιημένη προσέγγιση επειδή ο κώδικας μας είναι επαναχρησιμοποιήσιμα σε διάφορες σελίδες χωρίς καμία επαφή.

Έτσι, εδώ έρχεται το τέχνασμα που περιέχονται στο get_return_url λειτουργία ($ άγκυρα).

Λειτουργία get_return_url ()
λειτουργία get_return_url($ Άγκυρα)
{
 if ($ QUERY_STRING = MosGetParam( $ _SERVER, "QUERY_STRING", '' ))

 {
  $ Επιστρέψει = 'Index.php? " . $ QUERY_STRING;
 }
 αλλιώς
 {

  $ Επιστρέψει = "Index.php";
 }
 / / Ένα url ξεκινά με index.php τώρα
 
 // μετατροπή & σε & για συμμόρφωση xtml

 $ Επιστρέψει = str_replace( «&», '&', $ Επιστρέψει );
 / / Προσθήκη άγκυρα στο τέλος του url

 $ Επιστρέψει .="# $ άγκυρα"; / / Προσθήκη άγκυρα στο url
 / / Prepand http:// στην αρχή του URL
 απόδοση sefRelToAbs($ Επιστρέψει);

}

Δεν υπάρχει κανένα θαύμα σε αυτό. Η συνάρτηση επιστρέφει μόνο διεύθυνση URL όπου τρέχει (σε ​​μορφή μας). Συμπεριλαμβάνοντας την άγκυρα.

Γιατί έχω συμπεριλάβει την (HTML) άγκυρα στη διεύθυνση επιστροφής;

Φανταστείτε ότι η μορφή μας είναι στο κάτω μέρος του ένα πολύ μεγάλο σελίδα. Αν δεν ήταν για την άγκυρα στη συνέχεια, μετά την αποστολή δεδομένων χρήστης θα δει στην κορυφή της σελίδας και πρέπει να μετακινηθείτε προς τα κάτω. Με την αγκυροβόληση των χρηστών θα πρέπει να επιστρέψει στον τόπο που ψήφισαν.

Θα ήθελα να στρέψω την προσοχή σας στο Joomla! συγκεκριμένες mosGetParam λειτουργία () πολύ. Είναι η πιο χρήσιμη λειτουργία. Και θα πρέπει να χρησιμοποιείται σε σας αποτελεί εντατικά.

Η γενική περιγραφή του mosGetParam () μπορεί να βρεθεί εδώ. Ένα από τα πρακτικά έθιμά εξής:

Αντί να χρησιμοποιεί:

$ _POST ['Somename »]

είναι καλύτερο να χρησιμοποιήσετε:

mosGetParam ($ _POST, «somename»)

διότι όχι μόνο κάνει κάποια κλάδεμα των ανεπιθύμητων εισόδου του χρήστη, αλλά υπάρχουν και κάποιες άλλες χρήσιμες επιλογές σε αυτό.

Ωστόσο, αν έχετε πολλά δεδομένα για επεξεργασία μπορεί να είναι μάλλον καταναλωτική χρόνο να αποσύρει όλες τις τιμές από $ _POST ένα προς ένα: είτε με άμεση πρόσβαση σε αυτά ή μέσω mosGetParam () συνάρτηση. Υπάρχει ένα άλλο τέχνασμα: η χρήση php λειτουργία εκχύλισμα ($ _POST) που χτίζει τις μεταβλητές και τους εκχωρεί ονόματα από όλο το περιεχόμενο των $ _POST.

Ανακοίνωση που χρησιμοποιούμε $ _SERVER στην get_return_url λειτουργία (). $ _SERVER Είναι μια άλλη παγκόσμια PHP μεταβλητή $ _POST, όπως και μπορεί να είναι κάποια σενάρια χρήσης σε σας πάρα πολύ. Εάν δεν γνωρίζετε το περιεχόμενο των μεταβλητών που μπορείτε να τους δείξουμε στις σελίδες σας χρησιμοποιώντας την var_dump ($ somoevaribale) λειτουργία.

Λειτουργία checkForm ()

Αυτή είναι η επικύρωση το javascript λειτουργία που επικυρώνει είσοδο χρήστη από ορισμένους κανόνες. Αυτό το email είναι πραγματικά μια διεύθυνση ηλεκτρονικού ταχυδρομείου, ότι το όνομα δεν είναι κενή, κλπ.

Και πάλι: μπορείτε να βρείτε διάφορα σενάρια σχετικά με την επικύρωση εκατοντάδες πηγές από το Internet.

Με τη μορφή demo μας θα επικυρώσει ο χρήστης έχει επιλέξει μια "απάντηση" κουμπί. Αν δεν υπάρχει «απάντηση» δεν υποβάλλουν δεδομένα, αλλά δείχνουν μια προειδοποίηση:

<SCRIPT type="κείμενο / javascript">
λειτουργία checkForm(TheForm) {
 var γιατί = "";
  for (i=0; Εγώ) {

   if (theForm.answer[i]. Ελέγχονται) {
    var checkvalue = theForm.answer[i]. Τιμή?
     σπάσει;
    }
  }

  γιατί checkRadio + =(checkvalue);
  if (γιατί! = "") {
   γιατί + = "\nΑν νομίζετε ότι είναι λάθος μας, ενημερώστε μας παρακαλώ. "?
   ειδοποιεί(WHY);
   απόδοση ψευδής;
  }

  απόδοση αληθής;
}
 
λειτουργία checkRadio(checkvalue) {
 var Σφάλμα = "";
  if (!(checkvalue)) {

   Σφάλμα = "Δεν έχετε ορίσει καμία επιλογή.\n";
   }
   απόδοση λάθος?
}
->

Δεν υπάρχουν κόλπα και δεν θαύματα εδώ οπότε ας πάμε να τα γράφει τα δεδομένα στη βάση δεδομένων.

Λειτουργία write_data ()

Μπορείτε να διαθέσετε πολύ χρόνο, αν χρησιμοποιείτε το Joomla! αντικειμένων και μεθόδων αντί της χρησιμοποίησης τυπική λειτουργία βάσης δεδομένων MySQL. Εννοώ τη χρήση βάσεων δεδομένων-> ... φορτίο, βάση δεδομένων-> ερώτημα, κλπ. Πολύ περιγραφικό εγχειριδίου μπορεί να βρεθεί εδώ.

λειτουργία write_data($ Αξία)
/ / Αν ο χρήστης είναι συνδεδεμένος αποθήκευση id του σώσει με άλλο τρόπο «υποδοχής»

{
 παγκόσμια $ Βάση δεδομένων, $ Μου;
 if ($ Μου->id)
  $ User_id = $ Μου->id;
 αλλιώς

  $ User_id = "πλήθος";
 $ Βάση δεδομένων->setQuery( "INSERT INTO #__mytable_test (id, χρόνος εγγραφής, user_id, απάντηση) ΤΙΜΕΣ ('', '". Ραντεβού ("Y-μ-d H: i: s ')."','".$ User_id."','".$ Αξία."');" );
 $ Βάση δεδομένων->απορία(); / / Εγγραφή δεδομένων

}

Τίποτα ενδιαφέρον εδώ, εκτός από παγκόσμια Joomla! μεταβλητή $ μου. Περιέχει User ID, όνομα, e-mail κλπ., του πάλι: προσπαθήστε να χρησιμοποιείστε την var_dump ($ μου) στον κώδικά σας και θα δείτε τη δομή και το περιεχόμενο.

Επικύρωση ερώτημα:

Δεν έχω καμία επικύρωση περιλαμβάνονται στοιχεία ότι είχε πράγματι γράψει. Μπορείτε να το κάνετε αν θέλετε. Απλά αντικαταστήστε τη γραμμή βάσης δεδομένων $-> ερώτημα ()? Από
if (!$ Βάση δεδομένων->απορία()) { / / Εγγραφή δεδομένων και αν προκύψει σφάλμα συναγερμού

  ηχώ " alert('".$ Βάση δεδομένων->getErrorMsg()."'); ";
 }

Έτσι, έχουμε όλα τα δομικά στοιχεία του εαυτού μορφή καλώντας μας τώρα.

Μπορείτε να το δοκιμάσετε αμέσως (εφόσον έχετε Jos ή mos_mytable_test πίνακα που έχει δημιουργηθεί).

Αλλά υπάρχει κάτι ακόμα ...

Δεν είναι για όλους μας η συμπεριφορά αίτηση θα πρέπει να αναμένεται ως συνήθως: μετά την υποβολή του εντύπου θα είναι ακόμη ορατά και θα υπάρχει ένα "ευχαριστώ" ανακοίνωση.

Αυτό θα συμβεί για εκείνους των οποίων το Joomla! cache είναι ενεργοποιημένη.

Και εδώ έρχεται ένα άλλο τέχνασμα: το σβήσιμο ολόκληρη η μνήμη cache του Joomla είναι εύκολο, αλλά το σβήσιμο του cache για μία από τις σελίδες Joomla φαίνεται να είναι το πρόβλημα.

Το μεγάλο πρόβλημα με την πολύ απλή λύση.

Η κρύπτη ήταν αμυχή που περιγράφονται στο Joomla! φόρουμ:

Επεξεργασία / includes / Cache / Lite.php
Θα δείτε "Αποθήκευση λειτουργία ($ δεδομένων ..."
αλλαγή

λειτουργία αποθηκεύσετε($ Δεδομένα, $ Id = Τιμή NULL, $ Ομάδας = «Προεπιλογή»)

{
 if ($ Αυτό-> _ προσωρινή αποθήκευση) {

προς την

λειτουργία αποθηκεύσετε($ Δεδομένα, $ Id = Τιμή NULL, $ Ομάδας = «Προεπιλογή»)

{
 if(strpos($ Δεδομένα," ") ! == ψευδής) {
  $ Αυτό-> _ προσωρινή αποθήκευση = 0;
 }

 if ($ Αυτό-> _ προσωρινή αποθήκευση ) {

στη συνέχεια, δημιουργήστε μια ενότητα με


στο σώμα, και να το δημοσιεύσετε σε οποιαδήποτε θέση εμφανίζεται (Οι χρήστες δεν θα το δείτε) ... Στη συνέχεια, επιτρέπουν μόνο τη λειτουργική μονάδα σε οποιαδήποτε σελίδα δεν θέλετε να αποθηκευτεί προσωρινά ...

Είμαι απλά προσθέτοντας ότι «η οδηγία nocache" μπορούν να συμπεριληφθούν στο περιεχόμενο, καθώς και.

Περίληψη της self_call_form.php

Έτσι, υπάρχει όλο το περιεχόμενο του self_call_form.php:

<?php
ορίζεται( «_VALID_MOS» ) or πεθαίνουν( "Περιορισμένη πρόσβαση" ); / / Για λόγους ασφαλείας

?>
<SCRIPT type="κείμενο / javascript">
λειτουργία checkForm(TheForm) {
 ...
}
λειτουργία checkRadio(checkvalue) {

...
}
->

 

<?php
λειτουργία self_form()
{
...

}
λειτουργία get_return_url($ Άγκυρα){
 ...
}
λειτουργία write_data($ Αξία){
...
}
 

/ / Κώδικας εκτελεστικό αρχίζει εδώ
self_form();
/ / Κώδικας εκτελεστικό τελειώνει εδώ
?>

Σημείωση: όλο το σενάριο είναι "τυλιγμένο" μέσα στο self_form εκτελεστικό () λειτουργίες. Δεν σενάριο μεταβλητές που ορίζονται έξω από οποιεσδήποτε λειτουργίες, ώστε να μην υπάρχει κίνδυνος οι μεταβλητές θα αλληλεπιδρούν με άλλους 3rd μέρος ή το Joomla! μεταβλητές με απρόβλεπτο τρόπο.

Ουφ ...

Αυτό είναι όλο για τη μορφή καλώντας τον εαυτό: μορφή εμφάνισης + + συλλέγουν στοιχεία επαληθεύουν τους + αποθηκεύσετε τα δεδομένα σε μια βάση δεδομένων.

Τώρα γράψτε στο άρθρο σας

{jumi [somepathway / self_call_form.php]}

και να το δοκιμάσετε.

Πρώτα θα δείτε

jumi εισόδου μορφή

και μετά ψήφου σας (μόνο μετά ψήφου) μπορείτε να δείτε το αποτέλεσμα του δεύτερου μέρους (show_results.php):

jumi εξόδου μορφή

Το δεύτερο μέρος - που παρουσιάζουν τα αποτελέσματα που προέκυψαν από τη βάση δεδομένων - είναι πολύ πιο εύκολο στη συνέχεια το προηγούμενο μέρος.

show_results.php

<?php
ορίζεται( «_VALID_MOS» ) or πεθαίνουν( "Περιορισμένη πρόσβαση" );

 
λειτουργία show_results()
{
 παγκόσμια $ Βάση δεδομένων;
 ηχώ " "; / / Δεν είναι απαραίτητη αλλά χρήσιμη εδώ

 $ Radios_name = "απάντηση"; / / Πρέπει να είναι μια στήλη σε μια βάση δεδομένων πολύ!
 if(isset($ _POST[$ Radios_name])) {/ / Τα αποτελέσματα δείχνουν πως για όσους ψήφισαν μόνο
  ηχώ " ";
  ηχώ " Αυτό το σεμινάριο ήταν ";
  $ Βάση δεδομένων->setQuery( "ΕΠΙΛΕΞΤΕ $ radios_name, COUNT (id) AS numitems FROM #__myform_test GROUP BY $ radios_name");
  $ Σειρές = $ Βάση δεδομένων->loadObjectList();
  foreach ( $ Σειρές as $ Σειρά ){ / / Με τα πόδια μέσα από τις απαντήσεις

   αλλαγή ($ Σειρά->απάντηση){
    περίπτωση 1:
     ηχώ "δεν είναι χρήσιμο για".$ Σειρά->numItems."αναγνώστες,\n";
    σπάσει;
    περίπτωση 2:
     ηχώ "τόσο χρήσιμο για".$ Σειρά->numItems."αναγνώστες και\n";
    σπάσει;
    περίπτωση 3:
     ηχώ "πολύ χρήσιμο για".$ Σειρά->numItems."αναγνώστες\n";
    σπάσει;
    αθέτηση:
   }

 }
 ηχώ " ";
 }
}
show_results();
?>

Τώρα γράψτε στο περιεχόμενό σας ακριβώς κάτω από προηγούμενη δήλωση plugin jumi:

{jumi [somepathway / show_results.php]}

και να το δοκιμάσετε.

Δεν νομίζω ότι υπάρχει πολύ για την εξήγηση, εκτός από το χειρισμό της βάσης δεδομένων και σειρές αντικειμένων. Και πάλι: πηγαίνετε στο Joomla! API περιγραφή.

Συμπέρασμα

Όλα λύθηκε, όλα ήταν γραμμένα. Μπορείτε να κατεβάσετε ολόκληρο το σενάριο εδώ.