Εγκατάσταση μετρητή λήψης - αναθεώρηση προσθηκών για WordPress. Δημιουργία μετρητή λήψης αρχείων με χρήση PHP και MySQL Αποθήκευση αρχείων κειμένου και γραφικών

Σε πολλούς ιστότοπους μπορείτε να δείτε συνδέσμους για λήψη αρχείων. Για παράδειγμα, οι κατασκευαστικές εταιρείες δημοσιεύουν οδηγίες για ένα συγκεκριμένο προϊόν στις επίσημες σελίδες τους. Επιπλέον, οι προγραμματιστές λογισμικόΠροσφέρουν επίσης να κατεβάσουν το πρόγραμμά τους δωρεάν, επιτρέποντας έτσι στον χρήστη να εξοικειωθεί με τις λειτουργίες και τη λειτουργία του.

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

Πώς να ορίσετε έναν μετρητή λήψεων σε έναν ιστότοπο WordPress;

Δεν υπάρχει τρόπος να δείτε αυτά τα στατιστικά στοιχεία μεταξύ των εργαλείων του WordPress. Επομένως, θα χρησιμοποιήσουμε μια λύση τρίτου κατασκευαστή - την προσθήκη Kama Click Counter.

Πρόσθετο Kama Click Counter

Το δωρεάν πρόσθετο Kama Click Counter παρέχει όλα τα απαραίτητα εργαλεία για την ακριβή μέτρηση του αριθμού των λήψεων ενός συγκεκριμένου αρχείου. Επομένως, πρώτα πρέπει να εγκατασταθεί και να ενεργοποιηθεί. Για παράδειγμα, θα εμφανίσουμε στη σελίδα ανάρτησης έναν σύνδεσμο προς ένα αρχείο pdf, για το οποίο θα μετρήσουμε τον αριθμό των λήψεων. Θα πρέπει να σημειωθεί ότι τα αρχεία ανεβαίνουν στον ιστότοπο χρησιμοποιώντας τυπικές μεθόδουςΒιβλιοθήκες πολυμέσων WordPress (Μέσα -> Προσθήκη νέου). Στη συνέχεια, πρέπει να ανοίξετε την ανάρτηση ή τη σελίδα για επεξεργασία. Στο τμήμα περιεχομένου, πρέπει να τοποθετήσετε τον κέρσορα στο σημείο όπου θα τοποθετηθεί ο σύνδεσμος προς το αρχείο και να κάνετε κλικ στο κουμπί που εμφανίζεται στη γραμμή εργαλείων του οπτικού επεξεργαστή.

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

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

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

Μετά την ενημέρωση του υλικού (κουμπί Ενημέρωση), μπορείτε να μεταβείτε στον ιστότοπο για να το δείτε.

Η προσθήκη μπορεί επίσης να εμφανίζει στατιστικά στοιχεία λήψης στο τμήμα χρήστη του ιστότοπου – σε ένα γραφικό στοιχείο. Σημειώστε ότι από προεπιλογή το πρόσθετο δεν εμφανίζει συγκεκριμένους αριθμούς στο widget σχετικά με το τι έγινε λήψη και πόσες φορές. Εμφανίζεται μόνο μια λίστα με τα αρχεία που λαμβάνετε πιο συχνά. Για να το κάνετε αυτό, μεταβείτε στην ενότητα διαχειριστή Εμφάνιση -> Γραφικά στοιχεία και σύρετε το γραφικό στοιχείο KSS:Top Downloads στην επιθυμητή θέση στην πλαϊνή γραμμή.

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

Εδώ μπορείτε να ορίσετε τις ακόλουθες βασικές παραμέτρους:

  • τίτλος widget (πεδίο τίτλου).
  • αριθμός αρχείων εξόδου στη λίστα (πόσοι σύνδεσμοι να εμφανιστούν;);
  • ταξινόμηση των αποτελεσμάτων (πώς να ταξινομήσετε το αποτέλεσμα;);
  • σύνθεση εμφάνισηπρότυπο (Πρότυπα και μπλοκ προτύπων CSS).

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

Αφού ολοκληρωθούν και αποθηκευτούν όλες οι ρυθμίσεις του widget (κουμπί Αποθήκευση), μπορείτε να δείτε το αποτέλεσμα στον ιστότοπο.

Δεν υπάρχουν μαθήματα για την PHP και τη MySQL εδώ και πολύ καιρό. Σήμερα θα δημιουργήσουμε έναν απλό αλλά αποτελεσματικό μετρητή λήψης.

Κάθε αρχείο θα έχει μια καταχώρηση σε μια γραμμή πίνακα βάσης δεδομένων. Ο αριθμός των λήψεων αρχείων θα αποθηκευτεί στον ίδιο πίνακα. Η PHP θα ενημερώσει τη βάση δεδομένων MySQL και θα ανακατευθύνει τον χρήστη σε απαιτούμενο αρχείο.

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

Βήμα 1 - XHTML

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

Τα αρχεία των οποίων οι λήψεις πρέπει να παρακολουθούνται τοποθετούνται στο φάκελο αρχείων στον ριζικό φάκελο του σεναρίου. Στη συνέχεια, η PHP περνάει από όλα τα αρχεία και προσθέτει το καθένα ως στοιχείο λίστας (li) στη μη ταξινομημένη λίστα.

demo.php


  • Λήψη photoShoot-1.0.zip 0

Σημειώστε ότι το χαρακτηριστικό href των συνδέσμων μεταβιβάζει το όνομα του αρχείου ως παράμετρο στο download.php. Εδώ γίνεται η παρακολούθηση του αριθμού των λήψεων.

Δεν χρειάζεται να εμφανίζετε τα πάντα με τον ίδιο τρόπο - μπορείτε απλώς να συνδέσετε το download.php στις σελίδες σας και όλες οι λήψεις δεν θα περάσουν.

Βήμα 2 - CSS

Μετά τη σήμανση, ας ξεκινήσουμε με το σχέδιο. Οι παρακάτω κανόνες CSS αναφέρονται στο div του διαχειριστή αρχείων με χρήση id (σύμβολο #), καθώς εμφανίζεται μόνο 1 φορά στη σελίδα και σε άλλα στοιχεία με ονόματα κλάσεων.

στυλ.css

#file-manager(χρώμα φόντου:#EEE; περίγραμμα: 1px συμπαγές #DDD; περιθώριο:50px αυτόματα; padding:10px; πλάτος:400px; )
ul.manager li( background:url("img/bg_gradient.gif") repeat-x κεντρικό κάτω #F5F5F5; περίγραμμα: 1px συμπαγές #DDD; border-top-color:#FFF; list-style:none; position:relative ; ) ul.manager li a( display:block; padding:8px; ) ul.manager li a:hover .download-label( /* Όταν τοποθετείτε το δείκτη του ποντικιού πάνω από το εικονίδιο, εμφανίστε πράσινο κείμενο λήψης: */ display:block; . download-label( background-color:#64B126; περίγραμμα:1px συμπαγές #4E9416; color:white; display:none; γραμματοσειρά μεγέθους:10px; padding:2px 4px; position:absolute; right:8px; text-decoration: κανένα ; text-shadow:0 0 1px #315D0D; top:6px; /* CSS3 Rounded Corners */
-moz-border-radius:3px; -webkit-border-radius:3px; περίγραμμα-ακτίνα:3px; ) span.download-count( color:#999; μέγεθος γραμματοσειράς: 10px; padding:3px 5px; position:absolute; text-decoration:none; )

Βήμα 3 - PHP

Όπως είπα προηγουμένως, η PHP αναζητά αρχεία στο φάκελο αρχείων και εξάγει κάθε αρχείο ως στοιχείο λίστας σε μια μη ταξινομημένη λίστα. Ας ρίξουμε μια ματιά στο πώς συμβαίνει αυτό

demo.php - πάνω μέρος

// Αναφορά σφάλματος: error_reporting(E_ALL^E_NOTICE); // : απαιτείται "connect.php"; $extension=""; $files_array = array(); /* Ανοίξτε το φάκελο και περάστε από όλα τα αρχεία: */ $dir_handle = @opendir($directory) or die("Υπάρχει σφάλμα με τον κατάλογο αρχείων σας!"); ενώ ($file = readdir($dir_handle)) ( /* Παράλειψη αρχεία συστήματος: */ if($file(0)==".") συνέχεια; Το /* end() εμφανίζει το τελευταίο στοιχείο του πίνακα που δημιουργήθηκε από τη συνάρτηση explode(): */ $extension = strtolower(end(explode(".",$file))); /* Παράλειψη αρχείων php: */ if($extension == "php") συνέχεια; $files_array=$file; ) /* Ταξινόμηση των αρχείων με αλφαβητική σειρά */ sort($files_array,SORT_STRING); $file_downloads=array(); $result = mysql_query("SELECT * FROM download_manager"); if(mysql_num_rows($result)) while($row=mysql_fetch_assoc($result)) ( /* Το κλειδί πίνακα $file_downloads θα είναι το όνομα του αρχείου και θα περιέχει τον αριθμό των λήψεων: */ $file_downloads[$row ["filename"] ]=$row["downloads"];)

Παρατηρήστε πώς επιλέγουμε όλες τις σειρές από τον πίνακα download_manager χρησιμοποιώντας τη mysql_query() και αργότερα τις προσθέτουμε στον πίνακα $file_downloads με το όνομα του αρχείου ως κλειδί για τον αριθμό των λήψεων. Έτσι, περαιτέρω στον κώδικα, μπορούμε να γράψουμε $file_downloads["archive.zip"] και να εμφανίσουμε τον αριθμό των λήψεων.

Παρακάτω μπορείτε να δείτε τον κώδικα που δημιουργεί τα στοιχεία της λίστας:

demo.php - μεσαίο τμήμα

Foreach($files_array as $key=>$val) ( echo "

  • ".$val." ".(int)$file_downloads[$val]." Κατεβάστε
  • "; }

    Όλα γίνονται απλά χρησιμοποιώντας έναν βρόχο foreach στον πίνακα $files_array. Μετά από αυτό, όλα εξάγονται χρησιμοποιώντας ηχώ.

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

    download.php

    // Έλεγχος σφάλματος : error_reporting(E_ALL^E_NOTICE); // Συμπεριλάβετε το αρχείο σύνδεσης στο DB: require("connect.php"); if(!$_GET["αρχείο"]) error("Λείπει παράμετρος!"); if($_GET["file"](0)==".") error("Λάθος αρχείο!"); if(file_exists($directory."/".$_GET["file"])) ( /* Εάν ο επισκέπτης δεν είναι bot αναζήτησης, μετράμε τη λήψη: */ if(!is_bot()) mysql_query(" INSERT INTO download_manager SET filename ="".mysql_real_escape_string($_GET["file"])."" ON DUPLICATE KEY UPDATE downloads=downloads+1"); header("Location: ".$directory."/".$_GET[ "αρχείο"]); έξοδος; ) else error("Αυτό το αρχείο κάνει δεν υπάρχει!"); /* βοηθητικές συναρτήσεις: */ σφάλμα συνάρτησης($str) ( die($str); ) συνάρτηση is_bot() ( /* Αυτή η συνάρτηση ελέγχει για ρομπότ */ $botlist = array("Teoma", " alexa ", "froogle", "Gigabot", "inktomi", "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory", "Ask Jeeves", "TECNOSEEK", "InfoSeek", "WebFindBot", "girafabot" " , "crawler", "www.galaxy.com", "Googlebot", "Scooter", "Slurp", "msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg", " rabaz", "Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot", "Mediapartners-Google", "Sogou web spider", "WebAlta Crawler", "TweetmemeBot", "Butterfly", "Twitturls" , "Me.dium","Twiceler"); foreach($botlist ως $bot) ( if(strpos($_SERVER["HTTP_USER_AGENT"],$bot)!==false) επιστροφή true; // Είναι bot ) επιστροφή false; // Όχι bot)

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

    Βήμα 4 - MySQL

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

    download.php

    INSERT INTO download_manager SET filename="filename.doc" ON DUPLICATE KEY UPDATE downloads=downloads+1

    Λέει στη MySQL να εισαγάγει μια νέα σειρά στον πίνακα download_manager και να ορίσει το πεδίο ονόματος αρχείου της σειράς στην τιμή του αρχείου που καλείται για λήψη. Ωστόσο, το πεδίο ονόματος αρχείου ορίζεται ως μοναδικό ευρετήριο στον πίνακα. Αυτό σημαίνει ότι κάθε σειρά μπορεί να εισαχθεί μόνο μία φορά, διαφορετικά θα προκύψει σφάλμα διπλού κλειδιού.

    Εδώ θα λειτουργήσει το δεύτερο μέρος του ερωτήματος - ON DUPLICATE KEY UPDATE θα πει η MySQL να προσθέσει ένα στη στήλη λήψεις εάν το αρχείο υπάρχει ήδη στη βάση δεδομένων.

    Με αυτόν τον τρόπο, νέα αρχεία θα προστεθούν αυτόματα στη βάση δεδομένων την πρώτη φορά που θα ληφθούν.

    Βήμα 5 - jQuery

    Για να κάνετε παρακολούθηση σε πραγματικό χρόνο, καλό θα ήταν να ενημερώνετε τον μετρητή δίπλα στο όνομα του αρχείου μετά από κάθε λήψη.

    Θα το κάνουμε αυτό χρησιμοποιώντας jQuery:

    script.js

    $(document).ready(function())( /* Ο κώδικας εκτελείται μετά τη φόρτωση της σελίδας */ $("ul.manager a").click(function())( var countSpan = $(".download -count",this) ; countSpan.text(parseInt(countSpan.text())+1); )); ));

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

    Βήμα 6 - htaccess

    Υπάρχει ακόμα ένα πράγμα που πρέπει να γίνει. Το Download.php ανακατευθύνει τον χρήστη στο αρχείο που ζητήθηκε που μεταβιβάστηκε ως παράμετρος. Ωστόσο, ίσως έχετε παρατηρήσει ότι τα προγράμματα περιήγησης προσπαθούν να ανοίξουν απευθείας ορισμένους τύπους αρχείων. Πρέπει να ξεκινήσουμε τη φόρτωσή τους. Αυτό μπορεί να γίνει με μερικές γραμμές μέσα στο αρχείο .htacess, το οποίο βρίσκεται στο φάκελο αρχείων.

    Εφαρμογή ForceType/ροή οκτάδας

    Τώρα ο πάγκος μας είναι εντελώς έτοιμος!

    συμπέρασμα

    Για να λειτουργήσει η επίδειξη, πρέπει να δημιουργήσετε ξανά τον πίνακα download_manager στη βάση δεδομένων MySQL. Μπορείτε να βρείτε τον απαιτούμενο κώδικα SQL στις πηγές.

    Μετά από αυτό, προσθέστε τα δεδομένα σας για σύνδεση στη βάση δεδομένων στο αρχείο configuration.php.

    // Κατάργηση μετατροπής λειτουργίας μαγικών εισαγωγικών $_POST["content"] = addslashes($_POST["content"]);

    // Ξαναγράψτε τα περιεχόμενα του αρχείου file_put_contents($_POST["filename"], "$_POST");

    4.9. Μετρητής λήψης αρχείων

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

    Θα δημιουργήσουμε τον μετρητή μας με τέτοιο τρόπο ώστε οι σύνδεσμοι για τη λήψη ενός αρχείου να είναι σύνδεσμοι προς την τρέχουσα σελίδα, περνώντας το όνομα του αρχείου ως παράμετρο, για παράδειγμα, index.php?down=archive.zip . Το σενάριο θα ελέγξει εάν η παράμετρος κάτω έχει περάσει και, αν ναι, θα καταγράψει τη λήψη του αρχείου στο filecount.txt. Όταν επαναφορτωθεί η σελίδα, οι τιμές μετρητή για κάθε αρχείο θα εξαχθούν από το αρχείο για έξοδο στο παράθυρο του προγράμματος περιήγησης. Το αρχείο θα μεταφερθεί για λήψη στέλνοντας την κεφαλίδα HTTP Location στον επισκέπτη, υποδεικνύοντας τη διαδρομή προς το αρχείο λήψης. Το σενάριο μετρητή λήψης αρχείου μπορεί να μοιάζει με αυτό που εμφανίζεται στη Λίστα 4.31.

    Λίστα 4.31. Μετρητής λήψης αρχείων

    // Ορίστε το επίπεδο χειρισμού σφάλματος error_reporting(E_ALL & ~E_NOTICE);

    // Καταχωρίστε τα ονόματα αρχείων σε έναν πίνακα

    $file_name = array("archive1.zip","archive2.zip","archive3.zip");

    // Όνομα του αρχείου όπου αποθηκεύονται τα στατιστικά $countname = "filecount.txt";

    // Εάν το αρχείο υπάρχει,

    // διαβάστε τα τρέχοντα στατιστικά στοιχεία σε έναν πίνακα if(file_exists($countname))

    // Λάβετε τα περιεχόμενα του μετρητή

    $content = file_get_contents($countname);

    // Αποσυσκευάστε τον πίνακα

    $count = unserialize($content);

    // Εάν δεν υπάρχει τέτοιο αρχείο, δημιουργήστε το,

    // και επαναφέρετε τα στατιστικά στοιχεία

    // Συμπληρώστε τον πίνακα $count με μηδενικές τιμές foreach ($file_name ως $file)

    $count[$file] = 0;

    // Συσκευάστε τον πίνακα και τοποθετήστε τον στον μετρητή file_put_contents($countname, serialize($count));

    // Ελέγξτε εάν η τιμή της παραμέτρου κάτω έχει περάσει

    // μέσω της μεθόδου GET

    if(isset($_GET["κάτω"]))

    // Ελέγξτε εάν περιλαμβάνεται η τιμή της παραμέτρου $_GET["down"]

    // στον πίνακα $file_name

    if(in_array($_GET["down"],$file_name))

    // Καταχωρίστε το γεγονός ότι έγινε λήψη αυτού του αρχείου

    //Αυξήστε την τιμή του μετρητή με το κλειδί

    // $_GET["κάτω"] κατά ένα

    $count[$_GET["κάτω"]]++;

    // Αντικαταστήστε το αρχείο μετρητή file_put_contents($countname, serialize($count));

    echo "Το αρχείο $file φορτώθηκε ".intval($count[$file])." φορές
    ";

    Τα ονόματα των ληφθέντων αρχείων αποθηκεύονται στον πίνακα $file_name· η προσθήκη ενός νέου αρχείου έχει ως αποτέλεσμα την αυτόματη εγγραφή του στο σύστημα. Η προεγγραφή στη συστοιχία είναι απαραίτητη για διάφορους λόγους. Αρχικά, όταν αποδέχεστε ένα όνομα πίνακα μέσω της παραμέτρου κάτω, πρέπει να ελέγξετε εάν είναι μεταξύ των αρχείων που επιτρέπεται να φορτωθούν. Δεύτερον, είναι πολύ πιο βολικό να επεξεργάζεστε ονόματα αρχείων σε έναν πίνακα. Έτσι, ο πίνακας $count, ο οποίος αποθηκεύει τον αριθμό των λήψεων αρχείων, δημιουργείται αυτόματα με βάση τη σειρά των αρχείων που είναι καταχωρημένα στο σύστημα,

    Είναι βολικό να συσκευάσετε έναν πίνακα σε μια συμβολοσειρά χρησιμοποιώντας τη συνάρτηση serialize() και στη συνέχεια να τον αποσυσκευάσετε ξανά σε έναν πίνακα χρησιμοποιώντας τη συνάρτηση unserialize().

    ΣΗΜΕΙΩΣΗ

    Είναι σημαντικό να θυμάστε ότι όλες οι κεφαλίδες HTTP πρέπει να αποσταλούν πριν από την αποστολή του κύριου περιεχομένου, διαφορετικά δεν θα σταλούν και ο διερμηνέας PHP θα εκδώσει μια προειδοποίηση "Προειδοποίηση: Δεν είναι δυνατή η τροποποίηση των πληροφοριών κεφαλίδας - κεφαλίδες έχουν ήδη αποσταλεί από"

    (Προειδοποίηση: Δεν είναι δυνατή η τροποποίηση των πληροφοριών κεφαλίδας - οι κεφαλίδες έχουν ήδη αποσταλεί). Αυτό υπαγορεύεται από το πρωτόκολλο HTTP: οι κεφαλίδες αποστέλλονται πρώτα και μετά τα περιεχόμενα του εγγράφου, επομένως οποιαδήποτε έξοδος στο παράθυρο του προγράμματος περιήγησης γίνεται αντιληπτή ως το τέλος της αποστολής των κεφαλίδων και η αρχή της αποστολής του σώματος του εγγράφου. Εάν η έξοδος στο παράθυρο του προγράμματος περιήγησης είναι αναπόφευκτη πριν από την αποστολή των κεφαλίδων, πρέπει να καταφύγετε σε λειτουργίες ελέγχου εξόδου, τοποθετώντας όλα τα αποτελέσματα σε μια προσωρινή μνήμη και στέλνοντάς τα στο τέλος του σεναρίου.

    Όπως μπορείτε να δείτε στη Λίστα 4.31, το σενάριο χειρίζεται την κατάσταση πρώτης εκτέλεσης όπου λείπει το αρχείο filecount.txt - δημιουργείται αυτόματα κατά τη φόρτωση της πρώτης σελίδας, ενεργοποιείται από μηδενικές τιμές για κάθε αρχείο στον πίνακα $file_name. Το αποτέλεσμα του σεναρίου από την Λίστα 4.31 φαίνεται στο Σχ. 4.4.

    Ρύζι. 4.4. Το αποτέλεσμα του μετρητή αρχείων

    4.10. Αποθήκευση αρχείων κειμένου και γραφικών

    Αν ακολουθήσετε έναν σύνδεσμο προς αρχεία κειμένου ή HTML, θα εμφανιστούν στο παράθυρο του προγράμματος περιήγησης, κάτι που δεν είναι πάντα βολικό, ειδικά εάν το αρχείο προορίζεται για λήψη. Η ίδια μοίρα περιμένει αρχεία γραφικώνκαι γενικά τυχόν αρχεία που μπορεί να εμφανίσει το πρόγραμμα περιήγησης. Το πρόγραμμα περιήγησης του επισκέπτη «μαθαίνει» για τα περιεχόμενα του αρχείου από τον διακομιστή, αφού κάθε αρχείο συνοδεύεται από κεφαλίδες HTTP που ενημερώνουν τον πελάτη για το περιεχόμενο, το μέγεθος του αρχείου που κατεβάζει, την ανάγκη ορισμού cookie κ.λπ. Ο τύπος αρχείου δεν μπορεί να προσδιοριστεί, αποστέλλεται απλώς ως δυαδική ροή.

    Μπορείτε να καταργήσετε αυτήν τη συμπεριφορά στέλνοντας τις κεφαλίδες HTTP που εμφανίζονται στη Λίστα 4.32.

    Λίστα 4.32. Ένα σενάριο που σας επιτρέπει να αποθηκεύετε αρχεία κειμένου και γραφικών

    $filename = όνομα βάσης ($_GET["κάτω"]); header("Content-Disposition: attachment; filename=$filename"); header("Content-type: application/octet-stream"); header("Content-length: ".filesize($_GET["down"]));

    echo file_get_contents($_GET["κάτω"]); ?>

    Το σενάριο στη Λίστα 4.32 παίρνει ένα όνομα αρχείου ως παράμετρο GET, για παράδειγμα,

    index.php?down=filetext.txt. Η συνάρτηση basename() ανακτά το όνομα

    αρχείο (σε περίπτωση που η παράμετρος GET down περιέχει τη διαδρομή προς το αρχείο). Η κεφαλίδα Content-Disposition HTTP καθορίζει το όνομα του αρχείου που θα αποθηκευτεί, το οποίο καθορίζεται από το χαρακτηριστικό filename. Στο παραπάνω σενάριο, η παράμετρος ονόματος αρχείου είναι ίδια με το όνομα του αρχείου που αποστέλλεται, ωστόσο, ένα αυθαίρετο όνομα μπορεί να μεταβιβαστεί ως παράμετρος ονόματος αρχείου. Η κεφαλίδα HTTP τύπου περιεχομένου υποδεικνύει ότι τα δεδομένα που μεταφέρονται είναι δυαδικά και δεν πρέπει να ερμηνεύονται από το πρόγραμμα περιήγησης. Η κεφαλίδα HTTP μήκους περιεχομένου μεταφέρει το μέγεθος του αρχείου στον πελάτη. Η τελευταία γραμμή εμφανίζει τα περιεχόμενα του αρχείου που έχουν περάσει από την παράμετρο $_GET["down"], τα οποία ανακτώνται χρησιμοποιώντας τη συνάρτηση file_get_contents(). Το αποτέλεσμα του σεναρίου από την Λίστα 4.32 φαίνεται στο Σχ. 4.5.

    ΣΗΜΕΙΩΣΗ

    Είναι σημαντικό μετά την έξοδο των περιεχομένων του αρχείου, να μην βγαίνει τίποτα άλλο στη ροή: ούτε από την κατασκευή echo ούτε από άμεση έξοδο - διαφορετικά όλα θα προσαρτηθούν στο τέλος του αρχείου. Αυτό ισχύει τόσο για τα πιθανά κενά όσο και για τις νέες γραμμές μετά την ετικέτα κατάληξης ?>.

    Ρύζι. 4.5. Πλαίσιο διαλόγου για τη λήψη ενός αρχείου

    Η επόμενη ερώτηση που με ενδιέφερε πρόσφατα κατά τη δημιουργία του έργου του απλού συγγραφέα ήταν το ερώτημα πώς να μετρήσω τον αριθμό των λήψεων ενός συγκεκριμένου αρχείου που δημοσιεύτηκε εδώ. Ήταν πολύ λογικό να υποθέσουμε ότι αυτό απαιτεί ένα άλλο πρόσθετο, κάποιο είδος διαχείρισης λήψεων ή κάτι πιο απλό - μετρητής λήψεων. Έχοντας ψάξει στο Διαδίκτυο, αποδείχθηκε ότι, ως συνήθως, υπάρχει ένα βαγόνι και ένα μικρό καρότσι από αυτά τα πρόσθετα. Και πάλι, όμως, δεν υπάρχουν κριτικές για αυτούς. Δεν είναι απολύτως σαφές τι να διαλέξω, και ως συνήθως, έπρεπε να δοκιμάσω τα πάντα στον εαυτό μου. Και με βάση τα αποτελέσματα των δοκιμών, δημιουργήθηκε αυτός ο κριτής. Χρειάστηκε πολύς χρόνος για να γραφτεί και ο στόχος δεν ήταν να δοκιμάσετε διεξοδικά όλα τα πρόσθετα που δόθηκαν με πλήρη ανασκόπηση των ρυθμίσεών τους, ώστε να μην βρείτε λεπτομερή στιγμιότυπα οθόνης για το καθένα, αλλά θα υπάρχουν βασικές ρυθμίσεις. Δεν ήθελα να μιλήσω καθόλου για μερικά από αυτά - ήταν τόσο ανόητα, αλλά από τότε που τα κοίταξα, ήταν κρίμα να μην γράψω τίποτα απολύτως.

    Εισαγωγή.

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

    • Είναι απαραίτητο ο αριθμός των λήψεων να εμφανίζεται κάπου στον πίνακα διαχείρισης, με δυνατότητα ταξινόμησης - πόσες λήφθηκαν ανά ημέρα, ανά εβδομάδα, μήνα, έτος, συνολικά
    • Θα ήταν επιθυμητό να μπορείτε να βλέπετε γραφήματα/διαγράμματα λήψεων αρχείων μεταξύ τους
    • Θα ήταν επιθυμητό να μπορείτε να βλέπετε γραφήματα/διαγράμματα λήψεων αρχείων με την πάροδο του χρόνου
    • Συνιστάται να διατηρείτε στατιστικά στοιχεία για το πότε έγινε η τελευταία λήψη του αρχείου
    • Η δυνατότητα εμφάνισης πληροφοριών δίπλα στον σύνδεσμο σχετικά με το πόσες φορές έγινε λήψη του αρχείου, καθώς και το μέγεθός του και την ημερομηνία λήψης για τον χρήστη που πρόκειται να το κατεβάσει. Λοιπόν, ή να μην αποσυρθεί - κατόπιν αιτήματος του διαχειριστή
    • Δυνατότητα εισαγωγής του κώδικα που είναι υπεύθυνος για αυτό χρησιμοποιώντας ένα ξεχωριστό κουμπί στον πίνακα γραφής αναρτήσεων Πρόγραμμα επεξεργασίας TinyMCE(Δεν μου αρέσει να χρησιμοποιώ quicktags)
    • Δυνατότητα περιορισμού της ταχύτητας λήψης (για κάθε περίπτωση)
    • Επισύναψη μιας συνάρτησης μεταφόρτωσης σε αυτό το πρόσθετο (φόρτωση αρχείων στον διακομιστή) - αντίθετα, δεν τα παράτησα. Το FTP λειτουργεί καλά και σε μένα. Αλλά αν δεν παρεμβαίνει πολύ, τότε αφήστε το να μείνει
    • Θα ήταν ωραίο να μπορούσατε να επισυνάψετε ένα ωραίο κουμπί στον σύνδεσμο λήψης - αν και για μένα αρκεί να γράψω class="button"

    ABAP

    Λήψη αρχείου!

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

    Εδώ είναι μια μικρή λίστα.

    Ανασκόπηση

    Αφού αποφασίσουμε για τις τεχνικές προδιαγραφές, θα αρχίσουμε να εξετάζουμε τι μας προσφέρεται άμεσα.

    1. Λήψη προσθήκης Counter 1.2, λήψη από εδώ.

    Αρχικά εντοπίστηκε η σελίδα της προσθήκης, αλλά ο συγγραφέας δεν την υποστηρίζει για περισσότερα από 4 χρόνια. Δημιουργούμε έναν άλλο φάκελο για αυτόν στον κατάλογο προσθηκών για μένα - download-counter, και ρίχνουμε και τα δύο αρχεία εκεί. Ως αποτέλεσμα - πού θα σκεφτόσασταν; — οι ρυθμίσεις για αυτό εμφανίζονται στις εγγραφές. Πολύ πρωτότυπο, αλλά εντάξει.

    Ας μπούμε μέσα και ας γράψουμε τη διαδρομή προς το αρχείο download-manager.php (πραγματικά δεν μου αρέσει να ρίχνω ανοησίες απευθείας στη ρίζα). Και ας δούμε τι έχουμε. Ανεβάστε το αρχείο, ελέγξτε αν έχει γίνει λήψη χειροκίνητη λειτουργία, εάν εισαγάγετε έναν άμεσο σύνδεσμο στο πρόγραμμα περιήγησης, εισαγάγετε τη διαδρομή στο πρόσθετο για να δημιουργήσετε έναν μετρητή. Θεωρητικά, θα πρέπει να δημιουργηθεί ένα αναγνωριστικό, το οποίο στη συνέχεια θα πρέπει να εισαχθεί παντού. Αλλά τίποτα δεν λειτούργησε - δίνει το σφάλμα "Σφάλμα - Δεν είναι δυνατή η αποθήκευση της εγγραφής". Λοιπόν, εντάξει, πείσαμε, το μεταφέρουμε στο root download-manager.php - πάλι τίποτα, ίδιο σφάλμα. Λοιπόν, στο διάολο, χρυσόψαρο, δεν ήταν αρκετό για μένα να καταλάβω ακόμα τα πρόσθετα από τα οποία ο συγγραφέας δεν εγκατέλειψε. Επιπλέον, η λειτουργικότητα είναι πρακτικά μηδενική.

    2. Κατεβάστε το πρόσθετο Counter Advanced 1.1.

    Θα πω αμέσως ότι δεν λειτούργησε ούτε για μένα, οπότε μπορείτε να διαβάσετε για την εγκατάσταση και τη διαμόρφωσή του μόνο από ακαδημαϊκό ενδιαφέρον. Ουσιαστικά, αυτό είναι το ίδιο πρόσθετο, μόνο ελαφρώς τροποποιημένο. Δόξα τω Θεώ, αν και οι οδηγίες δεν έχουν μεταφραστεί, μπορείτε να τις διαβάσετε κανονικά και να μην προσπαθήσετε να καταλάβετε τι εννοούσε ο μεταφραστής. Παρεμπιπτόντως, στον πίνακα διαχείρισης φαίνεται να είναι ένα εντελώς διαφορετικό πρόσθετο, που προσφέρει ενημέρωση (ναι, τι στο καλό). Παρόμοια με το προηγούμενο πρόσθετο, εντοπίστηκε η σελίδα του, και ομοίως ο συγγραφέας δεν το υποστηρίζει για περισσότερα από 4 χρόνια. Κατ' αναλογία, δημιουργούμε έναν άλλο φάκελο για αυτόν στον κατάλογο των πρόσθετων, ο δικός μου είναι μετρητής λήψης και ρίχνουμε όλα τα αρχεία εκεί. Οι ρυθμίσεις φαίνονται, φυσικά, πλουσιότερες, αν και η ταχύτητα λήψης είναι περιορισμένη για όλα τα αρχεία ταυτόχρονα και δεν έχει οριστεί για το καθένα. Πού είναι το αρχείο download-manager..php (μην ξεχάσετε το όνομα του αρχείου στο τέλος, αλλά μάντεψα καλά την πρώτη φορά που βρίσκονται όλες οι λήψεις, κάτι που με βύθισε σε τρομερή έκπληξη. Όπως αποδείχθηκε αργότερα, Μάντευα το όνομα του καταλόγου στον οποίο ανεβάζουν λήψεις, εδώ η λογική μου λειτουργούσε 100% πανομοιότυπα με τον συγγραφέα του πρόσθετου.

    Προσθέτουμε τα ονόματα των φακέλων που έχουμε στον διακομιστή στον κατάλογο λήψεων (στις ρυθμίσεις «κατηγορίες και κατάλογοι») για να διευκολύνουμε την επιλογή της διαδρομής προς τα αρχεία. Εάν δεν τα προσθέσετε, θα πρέπει να κατεβάσετε τα πάντα στη ρίζα λήψεων. Αποθήκευση, μπορείτε να προσθέσετε λήψεις. Αυτό είναι περίπου αυτό που παίρνουμε.

    Τώρα ας προσπαθήσουμε να το εισάγουμε στην ανάρτηση. Προσθέτουμε έναν σύνδεσμο, σε αυτόν αλλάζουμε τον σύνδεσμό μας με τον κωδικό, ο οποίος εκδίδεται απευθείας στις ρυθμίσεις του plugin. Και μετά... Γαμήσου! Σφάλμα HTTP 500 (Εσωτερικό σφάλμα διακομιστή): Παρουσιάστηκε μια απροσδόκητη κατάσταση ενώ ο διακομιστής προσπαθούσε να ολοκληρώσει το αίτημα. Λοιπόν, θα σας έλεγα πώς να προσθέσετε έναν μετρητή απευθείας σε μια ανάρτηση, τι θα γινόταν αν στον σύνδεσμο μέσα για να λειτουργήσει

    ABAP

    < ahref= "http://chewriter..jpg" />

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

    Αυτό είναι ακριβώς το πρόσθετο στο οποίο προτάθηκε να ενημερωθεί το προαναφερθέν Download Counter Advanced. Λοιπόν, προτείνει - και εντάξει, ας το κατεβάσουμε και ας δούμε. Το πρόσθετο επίσης δεν έχει ενημερωθεί για περισσότερα από 3 χρόνια και ορισμένοι χρήστες έκαναν ακόμη και διορθώσεις στον κώδικά του μόνοι τους. Εγκαθίσταται αρκετά επιτυχημένα, ο ασκητισμός των ρυθμίσεων δεν εμπνέει αισιοδοξία. Παρεμπιπτόντως, μπράβο τους, μαντέψανε πού να τοποθετήσουν τις ρυθμίσεις - όχι χειρότερα από την προηγούμενη περίπτωση. Προσθέτουμε μετρητές στη σελίδα ρυθμίσεων, όλα φαίνονται να εμφανίζονται όπως θα έπρεπε.

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

    Επομένως, δεν θα το εξετάσουμε περαιτέρω, μαζί με το συνοδευτικό πρόσθετο Download Counter Chart, το οποίο εμφανίζει πληροφορίες σε γραφική μορφή.

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


    Μετρητής λήψης DIY για WordPress

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

    Λοιπόν, αν μιλάμε για πρόσθετα γραμμένα από τους ανθρώπους μας, τότε δεν μπορούμε παρά να αναφέρουμε ένα ακόμη. Το τεράστιο πλεονέκτημά του είναι ότι σας επιτρέπει να μετράτε όχι μόνο τον αριθμό των λήψεων αρχείων, αλλά και απλά κλικ σε συνδέσμους - δεν έχει σημασία αν οδηγούν σε ένα αρχείο ή απλώς σε άλλη σελίδα. Ή σε ένα αρχείο στη σελίδα κάποιου άλλου :) Θα το μετρήσει επίσης, ή μάλλον, θεωρητικά θα πρέπει να το μετρήσει. Δεν είναι τόσο καλό ούτε με τα στατιστικά στοιχεία, δεν υπάρχουν κουμπιά στον πίνακα επεξεργασίας και δεν υπάρχουν περιορισμοί στις λήψεις. Αλλά εξακολουθεί να είναι ενδιαφέρον να το δούμε. Επομένως, πραγματοποιούμε λήψη και εγκατάσταση. Κατ 'αρχήν, υπάρχει μια αρκετά λεπτομερής περιγραφή στον ιστότοπο του συγγραφέα, επομένως δεν θα υπεισέλθω σε πολλές λεπτομέρειες. Πρέπει πάντα να έχετε κατά νου ότι εάν χρειάζεται να ορίσετε έναν μετρητή σε ένα αρχείο ή σε έναν σύνδεσμο, θα πρέπει να χρησιμοποιήσετε είτε έναν τύπο σύντομου κώδικα είτε να εισαγάγετε την κατηγορία class="count" στον σύνδεσμο. Αυτό, φυσικά, είναι ενοχλητικό· με ένα κουμπί θα ήταν πολύ πιο βολικό. Αλλά το πιο ενοχλητικό είναι ότι μετά από όλες τις προσπάθειες δεν μπόρεσα να το κάνω να λειτουργήσει επαρκώς - εάν χρησιμοποιήθηκε ένας σύντομος κώδικας, ο ίδιος ο σύνδεσμος λήψης δεν εμφανιζόταν και εάν χρησιμοποιήθηκε μια τάξη, τα στατιστικά στοιχεία για τους συνδέσμους δεν εμφανίζονταν στο Πίνακας Διαχειριστή. Τα στιγμιότυπα οθόνης μπορούν να προβληθούν από τον συγγραφέα - αν σας αρέσει η ίδια η ιδέα, δοκιμάστε την, ίσως πετύχετε.

    Πραγματικά πολύ απλό. Δεν απαιτούνται σύντομοι κωδικοί κ.λπ. Ωστόσο, αυτό το πρόσθετο παρέχει στατιστικά στοιχεία μόνο για τον συγγραφέα· για τους επισκέπτες, δίπλα στον σύνδεσμο προς το αρχείο, δεν εμφανίζεται.

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

    Οι ρυθμίσεις περιλαμβάνουν τα εξής:

    • Μπορείτε να καθορίσετε τον κατάλογο από τον οποίο μπορούν να ληφθούν αρχεία
    • Μπορείτε να καθορίσετε τους τύπους αρχείων που επιτρέπεται η λήψη
    • Αποτρέψτε την καταμέτρηση των λήψεων αρχείων ως συντάκτη
    • Ορίστε το διάστημα σε δευτερόλεπτα κατά το οποίο τα επαναλαμβανόμενα κλικ σε έναν σύνδεσμο από την ίδια IP θα μετρώνται μόνο μία φορά
    • Περιορίστε τον αριθμό των αρχείων που μπορούν να ληφθούν από μία IP ανά ημέρα
    • Χρησιμοποιήστε κάποιο είδος ενδιάμεσης σελίδας με πληροφορίες ότι η λήψη θα ξεκινήσει τώρα

    Ωστόσο, όλα αυτά λειτουργούν μόνο εάν είτε (πώς θα το θέσω πιο απλά...) έχετε άδεια να επεξεργαστείτε το αρχείο .htaccess ή εάν καθορίσετε τον σύνδεσμο απευθείας εισάγοντάς τον σε

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

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

    Λοιπόν, εδώ βρισκόμαστε σε κάτι περισσότερο ή λιγότερο άξιο. Σχεδόν μισό εκατομμύριο λήψεις - αυτό λέει κάτι. Βρίσκεται η επίσημη σελίδα του plugin. Για να εισαγάγετε ένα αρχείο σε μια ανάρτηση, πρέπει να χρησιμοποιήσετε το βέλος πάνω από το οπτικό πρόγραμμα επεξεργασίας (το ίδιο το εικονίδιο δεν εμφανίζεται σε αυτό)

    Και στο παράθυρο που εμφανίζεται, επιλέξτε το απαιτούμενο αρχείο (αυτό είναι ένα παράδειγμα εάν έχει ήδη μεταφορτωθεί μέσω FTP)

    Στη συνέχεια, κάντε κλικ στο κουμπί «Αποθήκευση νέας λήψης».

    και, μεταβαίνοντας στην επόμενη οθόνη, επιλέξτε τη μορφή λήψης και κάντε κλικ στο Εισαγάγετε σεΘέση. Είναι πιθανό να μην γίνει τίποτα. Η προσθήκη είναι ελαφρώς δυσλειτουργική πιο πρόσφατες εκδόσεις WordPress. Επομένως, πρέπει να κάνετε επιπλέον κλικ στον σύνδεσμο Προβολή λήψεων

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

    Μετά την οποία ο αντίστοιχος σύντομος κώδικας όπως

    ABAP

    [downloadid="7592" format="1"]

    Η προσθήκη απαιτεί λεπτή μη αυτόματη διαμόρφωση, αλλά δεν παρέχεται WYSIWYG. Το καλό είναι ότι χρειάζεται να το ρυθμίσετε μόνο μία φορά. Λεπτομερής τεκμηρίωση είναι διαθέσιμη στον συγγραφέα.

    Ακολουθεί ένα παράδειγμα ρύθμισης:

    ABAP

    (τίτλος)

    < ahref= "(url)" title="Λήψη (επισκέψεις,"ни разу","1 раз","% раза"}">{title}!}

    Σημειωτέον ότι οι αποκλίσεις δεν υποστηρίζονται, π.χ. εάν το αρχείο έχει ληφθεί 21 φορές και έχετε "raza" στο πρότυπό σας, τότε θα ακούγεται κάπως αντι-ρωσικό.

    Και εδώ είναι η επιλογή με το κουμπί:

    ABAP

    - (περιγραφή), (μέγεθος), Μεταφόρτωση (ημερομηνία"Y-m-d"), Φορές λήψης (επισκέψεις)

    < ahref= "(url)" title="Λήψη (επισκέψεις,"ни разу","1 раз","% раза"}">!} - (περιγραφή), (μέγεθος), Μεταφόρτωση (ημερομηνία"Y-m-d"), Φορές λήψης (επισκέψεις)

    Φαίνεται ότι:

    Λοιπόν, μετά από κάποια τροποποίηση, το δικό μου άρχισε να μοιάζει με αυτό (χωρίς κουμπιά ακόμα):

    Κωδικός γραμμής:

    ABAP

    (filetype_icon) (τίτλος) (Μέγεθος αρχείου: (μέγεθος), Μεταφόρτωση: (ημερομηνία"ημ.μ.Υ"), Φορές λήψης (επισκέψεις)
    (περιγραφή)

    Ο κατάλογος των δυνατοτήτων είναι αρκετά ευρύς:

    • Μπορείτε να ανεβάσετε αρχεία είτε χρησιμοποιώντας το (κάνοντας κλικ στο βέλος), είτε να καθορίσετε την τοποθεσία όπου βρίσκονται, αν έχουν μεταφορτωθεί νωρίτερα μέσω FTP, μπορείτε απλά να καθορίσετε τη διεύθυνση URL
    • Αποκρύπτει την πραγματική θέση του αρχείου, μπορείτε να αντικαταστήσετε οποιονδήποτε απαραίτητο συνδυασμό URL
    • Μπορείτε να χρησιμοποιήσετε το κουμπί λήψης, συμπεριλαμβανομένου του δικού σας
    • Οι λήψεις από τον διαχειριστή και όλες οι περιττές IP που περιλαμβάνονται στη λίστα εξαιρέσεων μετρητή δεν λαμβάνονται υπόψη.
    • Πρέπει να μετρήσω τις επαναλαμβανόμενες λήψεις μέσα σε ένα συγκεκριμένο χρονικό διάστημα από την ίδια IP;
    • Μπορείτε να ορίσετε πολλές μορφές - με εικόνα, με μετρητή, χωρίς μετρητή κ.λπ., και να χρησιμοποιήσετε καθεμία από αυτές στην κατάλληλη κατάσταση
    • Υπάρχει μια μεταφόρτωση του αρχείου καταγραφής λήψης ως αρχείο csv

    Εάν μεταφορτώνεται οποιοδήποτε αρχείο mp3 ή βίντεο, πρέπει να υποδείξετε εάν πρόκειται για αναγκαστική λήψη ή όχι. Εάν αναγκαστείτε - τότε κάνοντας κλικ σε αυτό, θα γίνει λήψη, εάν δεν επιλέξετε το πλαίσιο - αναπαραγωγή, στη συνέχεια αποθήκευση - κάντε δεξί κλικ. Θα ήθελα να σημειώσω ότι τα αρχεία που μεταφορτώνονται με τη βοήθειά του δεν τοποθετούνται εκεί όπου δημιουργήθηκε ο ειδικός σας κατάλογος για αρχεία, αλλά στο wp-content/uploads/downloads/ που δημιουργήθηκε από αυτό - πρέπει να το θυμάστε αυτό, καθώς και το γεγονός ότι κατά τη διαγραφή τους από τα στατιστικά στοιχεία - τα αρχεία διαγράφονται επίσης φυσικά από τον διακομιστή. Με αυτά που ανεβαίνουν μέσω FTP όλα είναι εντάξει. Επιπλέον, εάν εισαγάγετε έναν σύνδεσμο σε διαφορετικές αναρτήσεις στο ίδιο αρχείο, τότε δεν κατάλαβα αν θα τις συνόψιζε. Δυστυχώς, δεν υποστηρίζει κανέναν περιορισμό λήψης, εκτός από το ότι μπορείτε να απαγορεύσετε τη λήψη σε όλους εκτός από εγγεγραμμένους χρήστες. Όταν θέλετε να εμφανίσετε το όνομα ενός αρχείου στην κάτω γραμμή του προγράμματος περιήγησης ή πρέπει να το αλλάξετε στο αναγνωριστικό του, πρέπει να θυμάστε να μεταβείτε στις ρυθμίσεις->μόνιμοι σύνδεσμοι και να αποθηκεύσετε τη διαμόρφωση εκεί, ώστε όλα να είναι γραμμένα σωστά στο . htaccess - χωρίς αυτό, τα αρχεία δεν θα ληφθούν!

    Τα στατιστικά εμφανίζονται σε τρία σημεία ταυτόχρονα - στην κονσόλα, σε πληροφορίες σχετικά με αρχεία και σε αρχεία καταγραφής λήψεων. Αυτό δημιουργεί ορισμένες δυσκολίες, για παράδειγμα, όταν πρέπει να δείτε πότε έγινε η τελευταία λήψη ενός αρχείου, αλλά μπορείτε να κάνετε λήψη στατιστικών στοιχείων ως αρχείο csv και στη συνέχεια να τα ταξινομήσετε στο Excel. Λαμβάνοντας υπόψη ότι το Excel έχει διαβολικές δυνατότητες για την κατασκευή των απαραίτητων πινάκων και γραφημάτων, τότε ίσως αυτό δεν είναι κακό. Ωστόσο, νομίζω ότι τα στιγμιότυπα οθόνης θα πουν περισσότερα:

    Λοιπόν, ένα στιγμιότυπο οθόνης του ίδιου του αρχείου καταγραφής:

    Ταυτόχρονα, ένα τεράστιο πλεονέκτημα είναι ότι ένα widget με στατιστικά όπως αυτό εμφανίζεται στην κονσόλα:

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

    Αυτή η προσθήκη γράφτηκε από τον ίδιο συγγραφέα με την προσθήκη WP-Polls, την οποία, για παράδειγμα, χρησιμοποιώ σε αυτόν τον ιστότοπο. Αν και απολαμβάνει, σε σύγκριση, μια τάξη μεγέθους μικρότερη δημοτικότητα. Ας δούμε όμως αν αξίζει. Όλη η τεκμηρίωση βρίσκεται στον ιστότοπο του συγγραφέα. Στον πυρήνα του, το πρόσθετο είναι απολύτως πανομοιότυπο με το προηγούμενο - το πρότυπο είναι γραμμένο με τον ίδιο ακριβώς τρόπο, δεν υπάρχουν περιορισμοί στη λήψη, εκτός από εγγεγραμμένους ή μη εγγεγραμμένους χρήστες, και πρέπει επίσης να χρησιμοποιήσετε έναν σύντομο κώδικα όπως

    ABAP

    [downloadid="7592"]

    Λοιπόν, στα άλλα σημεία:

    • Μπορείτε να ανεβάσετε αρχεία χρησιμοποιώντας το (μέχρι δύο MB, ή ό,τι έχετε υποδείξει στο php.ini) και να υποδείξετε την τοποθεσία όπου βρίσκονται, αν έχουν μεταφορτωθεί νωρίτερα μέσω FTP, μπορείτε απλά να καθορίσετε τη διεύθυνση URL
    • Αποκρύπτει την πραγματική θέση του αρχείου, αλλά δεν είναι δυνατή η αντικατάσταση οποιουδήποτε απαραίτητου συνδυασμού URL, υπάρχουν μόνο μερικές σταθερές επιλογές, η κύρια από τις οποίες δεν λειτούργησε για μένα
    • Μπορεί να ρυθμιστεί ώστε να εμφανίζει πληροφορίες στους επισκέπτες σχετικά με το μέγεθος του αρχείου, πόσες φορές έγινε λήψη του, πότε έγινε λήψη
    • Μπορείτε να εμφανίσετε ένα εικονίδιο για τους αντίστοιχους τύπους αρχείων
    • Μπορείτε να επαναφέρετε τον μετρητή ή να ορίσετε την επιθυμητή τιμή

    Ωστόσο, υπάρχουν κάποιες διαφορές. Πρώτον, δεν υπάρχει κουμπί στο οπτικό πρόγραμμα επεξεργασίας με το οποίο μπορείτε να εισαγάγετε έναν σύντομο κώδικα. Ή μάλλον, υπάρχει ένα κουμπί, αλλά για να το χρησιμοποιήσετε, πρέπει πρώτα να προσθέσετε έναν μετρητή για το αρχείο στις ρυθμίσεις του πρόσθετου και στη συνέχεια με αυτό το κουμπί το αναγνωριστικό του μετρητή θα προστεθεί απευθείας στην ανάρτηση. Δεύτερον, υπάρχει μόνο ένα πρότυπο και δεν θα είναι δυνατή η εμφάνιση διαφορετικών πληροφοριών για διαφορετικά αρχεία. Μεταξύ των πλεονεκτημάτων των στατιστικών - δείχνει πότε έγινε η τελευταία λήψη του αρχείου, διαφορετικά υπάρχουν μόνο μειονεκτήματα - όχι μεταφόρτωση σε αρχείο csv, καμία προβολή του ποιος κατέβασε (χωρίς IP), καμία διανομή κατά ημερομηνία.

    Αλλά τα εικονίδια είναι πιο όμορφα (τα πρόσθεσα αργότερα στο προηγούμενο πρόσθετο). Το αποτέλεσμα της δουλειάς του μοιάζει με αυτό:

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

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

    Αλλά θα έλεγα ότι ορισμένες από τις δυνατότητες αυτού του πρόσθετου είναι περιττές και αυτές που χρειάζονται σύμφωνα με τα στατιστικά δεν είναι αρκετές. Υπάρχουν πολλές ρυθμίσεις, γραφικά στοιχεία λήψης, ένα σύνθετο σύστημα συγχρονισμού, ένα σύστημα για την εμφάνιση ετικετών mp3, την εμφάνιση αρχείων flv, την οργάνωση αποθήκευσης mini-αρχείων, την εμφάνιση όλων των αρχείων που αναφέρονται στη σελίδα στην αρχή ή στο τέλος της ανάρτησης, κ.λπ., κ.λπ.

    Δεν θέλω καν να δείξω στιγμιότυπα οθόνης όλων των ρυθμίσεων.

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

    Εισαγάγετε το όνομα του προτύπου στον κώδικα μη αυτόματα. Κάποιο είδος σύγκρουσης με το ρωσικό όνομα. Παρεμπιπτόντως, μοιάζει με αυτό (θα δώσω τρεις επιλογές για πρότυπα):

    Μετράει - μέσω ενός καταστρώματος κολοβωμάτων (καλά, ή δεν μετράει περισσότερες από μία λήψεις από μια IP, δεν ξέρω). Τα στατιστικά στοιχεία είναι λίγο λιγότερο από εντελώς παρόμοια με το πρόσθετο που μόλις συζητήθηκε παραπάνω.

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

    Ειλικρινά μιλώντας, όταν διάβασα την περιγραφή του, σκέφτηκα - αυτό είναι, αυτό που χρειάζομαι!

    Μετρητής, προστασία με κωδικό πρόσβασης, σύντομος κωδικός με δυνατότητα εισαγωγής κουμπιού, κουμπί με δυνατότητα επεξεργασίας κ.λπ.

    Και μοιάζει με αυτό (ανέφερε δύο τρία πρότυπα που χρησιμοποιούνται ταυτόχρονα):

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

    Τρίτον, δεν μπορείτε να ορίσετε την έξοδο ώστε να εμφανίζει το μέγεθος αρχείου για τον χρήστη. Τέταρτον, δεν υπάρχει όριο στην ταχύτητα λήψης, υπάρχει μόνο προστασία με κωδικό πρόσβασης για το αρχείο. Δεν είναι δυνατή η επεξεργασία των προτύπων. Και μια μεγάλη επιγραφή που προσφέρει να αγοράσετε την έκδοση premium για 45 δολάρια. Λοιπόν, γενικά, καταλαβαίνεις. Όλα τα νόστιμα είναι για τα χρήματα. Το απενεργοποίησε και το κατεδάφισε. Και όμορφα κάδρα, κουμπιά κ.λπ. - Θα το γράψω μόνος μου στα στυλ όταν θέλω.

    Περίληψη

    Εγκαταστήστε με τον τυπικό τρόπο (αντιγράφοντας στον κατάλογο wp-content/plugins/download-monitor/, αφήστε το να ενημερώσει, αντικαταστήστε όλα τα εικονίδια με εικονίδια από το αρχείο στον κατάλογο wp-content/plugins/download-monitor/img/filetype_icons/και ενεργοποιήστε.

    Στο μέλλον, αν το καταφέρω, σκέφτομαι να βάλω τους συνδέσμους σε ωραία πλαίσια χρησιμοποιώντας το css3, για το οποίο πιθανότατα θα γράψω και εγώ. Μείνετε συντονισμένοι :)

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

    Στη συνέχεια, όταν επιλέγετε τη δεύτερη επιλογή, λαμβάνετε κάτι σαν αυτό:

    Εκείνοι. επί νέα έκδοσηΔεν θα λειτουργήσει η χρήση της γραμμής που έδωσα στην περιγραφή, αλλά θα χρειαστεί να γράψετε ένα ειδικό αρχείο PHP που θα περιγράφει αυτό το πρότυπο εξόδου. Αλλά το πιο θλιβερό δεν είναι καν αυτό - αλλά το γεγονός ότι αυτό το αρχείο php, εάν τοποθετηθεί στον κατάλογο με το πρόσθετο, θα αντικαθίσταται κάθε φορά που ενημερώνεται το πρόσθετο. Και αν το βάλετε σε έναν κατάλογο με θέμα, τότε όταν αλλάζετε το θέμα (αν και αυτό, φυσικά, συμβαίνει πολύ λιγότερο συχνά). Αλλά σε κάθε περίπτωση, το να το γράψω είναι μια εργασία που απαιτεί αρκετά κόπο και μέχρι στιγμής δεν έχω καμία επιθυμία να το κάνω. Έτσι το μόνο συν του ενημερωμένου πρόσθετου είναι

    Αποφάσισα να δω πόσες φορές έγινε λήψη ενός από τα σενάρια μου από τον ιστότοπο. Για να το κάνω αυτό, αποφάσισα να γράψω έναν μετρητή λήψης αρχείων για τον ιστότοπο. Υπάρχουν πολλές υλοποιήσεις αυτού του προβλήματος στο Διαδίκτυο, αλλά παρ' όλα αυτά, ελέγξτε τη λύση μου.

    Η λογική πίσω από τον μετρητή λήψης είναι αρκετά απλή. Για να το εφαρμόσουμε θα χρησιμοποιήσουμε τον αγαπημένο μου ajax. Επισυνάπτουμε μια κλήση μέσω ajax στο κουμπί όταν συμβαίνει το συμβάν κλικ php αρχείομετρητής. Στην php, το αίτημα ajax επεξεργάζεται και ο συνολικός αριθμός των αγώνων εγγράφεται σε ένα αρχείο κειμένου. Μετά από μια επιτυχημένη εγγραφή, επιστρέφεται μια απάντηση με μετρητή συνολικής λήψης και ο χρήστης ανακατευθύνεται στον σύνδεσμο για τη λήψη του αρχείου (το αρχείο έχει ληφθεί). Αυτή είναι τόσο απλή λογική, τώρα ας αρχίσουμε να την εφαρμόζουμε. Ας δημιουργήσουμε εκ των προτέρων ένα αρχείο test.zip με δυνατότητα λήψης. Ας κωδικοποιήσουμε το κουμπί και ας δείξουμε τον μετρητή αγώνα.

    Λήψη αρχείου Αριθμός ιπποδρομιών:

    Δημιουργήσαμε ένα κουμπί με id="btnΑποστολή" , θα εμφανίσουμε τον μετρητή σε ένα διάστημα με id="countView" και θα αποθηκεύσουμε έναν σύνδεσμο προς το ληφθέν αρχείο στο χαρακτηριστικό λήψης δεδομένων

    Τώρα ας επισυνάψουμε ένα πρόγραμμα χειρισμού κλικ στο κουμπί. Εδώ θα χρησιμοποιήσουμε ήδη js και jquery. Μπορείτε να διαβάσετε πώς να εφαρμόσετε το clik χρησιμοποιώντας το jquery. Πριν όμως εγκαταστήσουμε το πρόγραμμα χειρισμού κλικ, θα έχουμε πρόσβαση με ajax στο αρχείο count.php, το οποίο θα περιέχει όλη την εργασία του μετρητή. Μπορείτε να διαβάσετε περισσότερα σχετικά με τη μεταφορά δεδομένων ajax. Αυτό είναι απαραίτητο για έξοδο από το αρχείο όπου ο μετρητής γράφει τον αριθμό των λήψεων που έχουν ήδη πραγματοποιηθεί και τις εμφανίζει σε ένα διάστημα με id="countView"

    /*λάβετε τον τρέχοντα αριθμό λήψεων*/ $(document).ready(function())( //απαγόρευση προσωρινής αποθήκευσης του αιτήματος ajax //διαφορετικά ο μετρητής θα αποτύχει $.ajaxSetup((cache: false)); var html ; $.ajax (( //πώς θα μεταφέρουμε τύπο δεδομένων: "GET", //πού θα μεταφέρουμε το url: "count.php", //τι δεδομένα θα μεταφέρουμε δεδομένα: (σημαία: 2), // συμβάν μετά τη λήψη απάντησης από το count.php success : function(data)( html=data; //εμφάνιση του τρέχοντος αριθμού λήψεων $("#countView").html(html); ) )); /*επισύναψη συμβάντος στο κουμπί λήψης αρχείου*/ var clickevent=false; //κλικ δοκιμαστική σημαία //click handler $("#btnSend").click(function())( if(!clickevent)( $.ajax(( //how) θα μεταφέρουμε τύπο δεδομένων: "GET", //πού θα τα μεταφέρουμε url: "count.php", //τι δεδομένα περνάμε δεδομένα: (σημαία: 1), //συμβάν πριν στείλουμε ajax πριν από την αποστολή: λειτουργία( ))( //αν έγινε κλικ στο κουμπί, τότε true clickevent=true; ), //event μετά τη λήψη της απάντησης, //receive the data in success data: function(data)( //μετά την ολοκλήρωση των ενεργειών, το επιτρέπουμε ξανά //για να επεξεργαστείτε το κλικ στο κουμπί clickevent=false; html=data; //εμφάνιση νέου μετρητή $("#countView").html(html); //λήψη του συνδέσμου από τη λήψη δεδομένων //ανακατεύθυνση στον σύνδεσμο λήψης, λήψη του αρχείου window.location.href = $("#btnΑποστολή").data("λήψη"); ) )); ) return false;//απαγόρευση επεξεργασίας του συμβάντος κλικ )); ));

    Για να μην πατηθεί ξανά κατά λάθος το κουμπί υποβολής, εισήγαγα τη σημαία clickevent στο σενάριο. Μέχρι να επιστρέψει η απάντηση από το count.php με ενημερωμένα δεδομένα μετρητή, το κλικ στο κουμπί θα απαγορεύεται. Νομίζω ότι η λειτουργία του κώδικα μετά το κλικ στο κουμπί είναι λίγο-πολύ σαφής. Αφού κάνετε κλικ στο κουμπί λήψης, τα δεδομένα μεταφέρονται στο αρχείο count.php, όπου γίνεται η επεξεργασία τους και τα ενημερωμένα δεδομένα μετρητή επιστρέφονται, γίνεται ανακατεύθυνση στον σύνδεσμο λήψης και, κατά συνέπεια, γίνεται λήψη του αρχείου.

    Ας δούμε τώρα την καρδιά του σεναρίου μας, δηλαδή το αρχείο count.php.

    Συνάρτηση clearInt ($date)( //reduce date σε μη αρνητικό αριθμό επιστροφή abs((int)$date); ) if($_SERVER["HTTP_X_REQUESTED_WITH"] == "XMLHttpRequest") ( //ελέγξτε ποια σημαία ήταν λήφθηκε εάν (clearInt($_GET["flag"]==1)) ( //άνοιξε το αρχείο για ανάγνωση $f=fopen("mycount.txt","a+"); //κλείνει την πρόσβαση στο αρχείο από άλλα προγράμματα flock($ f,LOCK_EX); //λάβετε την τιμή του μετρητή από το αρχείο $count=fread($f,100); //προσθέστε τον μετρητή @$count++; //αντικαταστήστε το αρχείο ftruncate($f,0) ; //γράψτε έναν νέο μετρητή που διαβάζει fwrite ($f,$count); //κλείστε το αρχείο fclose($f); //επιστρέφετε την τιμή echo $count; ) if(clearInt($_GET["flag"]= =2)) ( $c=fopen(" mycount.txt","a+"); flock($c,LOCK_EX); $festc=fread($c,100); fclose($c); //επιστρέφει το τιμή echo $festc; ))

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

    Μετρητής λήψης Joomla

    Αποφάσισα να επισυνάψω έναν παρόμοιο μετρητή σε ένα από τα έργα μου στο Joomla. Θεωρητικά, φυσικά, πρέπει να γράψετε είτε μια ξεχωριστή ενότητα είτε να ενσωματώσετε τον κώδικα στον ελεγκτή του στοιχείου περιεχομένου com, έτσι ώστε τα δεδομένα του μετρητή να μην εγγράφονται σε ένα αρχείο, αλλά στη βάση δεδομένων και για κάθε άρθρο ξεχωριστά. Όμως δεν υπάρχει χρόνος για τέτοια εξέλιξη και έλυσα το πρόβλημα πιο απλά. Χρειαζόμουν τον μετρητή για μια σελίδα. Πήρα το αρχείο count.php και το μετέφερα στο πρότυπο Joomla, το οποίο είναι συνδεδεμένο αυτήν τη στιγμή (στη ρίζα του ιστότοπου templates/your_template). Μην ξεχάσετε να εισαγάγετε τον κωδικό που ορίστηκε ("_JEXEC") ή να βάλετε στην κορυφή του count.php. (αυτό είναι για το Joomla). Εισάγουμε το κουμπί λήψης στη σελίδα που δημιουργούμε και ο κώδικας js μπορεί επίσης να ενσωματωθεί στη σελίδα ή να συνδεθεί ως ξεχωριστό αρχείο. Για παράδειγμα, το έχω ως ξεχωριστό αρχείο (βρίσκεται στον φάκελο js του προτύπου). Στο ίδιο το πρότυπο, στην κεφαλίδα, η σύνδεση γίνεται μέσω κώδικα

    
    Μπλουζα