Elxis CMS Forum

Ελληνικό Forum => Πρόσθετα => Topic started by: mouema@gmail.com on January 30, 2010, 20:49:27

Title: Όριο στα downloads που κάνουν οι χρήστες;
Post by: mouema@gmail.com on January 30, 2010, 20:49:27
Μπορεί να οριστεί όριο στο πόσες φορές ένας χρήστης θα κατεβάζει κάποιο αρχείο από το IOS Downloads?  Σε μορφή γενικού κανόνα, όχι για κάθε χρήστη χωριστά. Περιπτώσεις χρήσης: Οι free χρήστες μπορούν να κατεβάσουν κάθε αρχείο 1 φορά, ενώ οι subscribers περισσότερες φορές.

Αν δεν γίνεται αυτό με το IOS Downloads, με κάποιο άλλο προϊόν?

Ευχαριστώ!
Title: Re: Όριο στα downloads που κάνουν οι χρήστες;
Post by: datahell on January 30, 2010, 22:03:03
Μπορεί να γίνει, αν και χρειάζεται τροποποίηση στο component, αλλά δεν καταλαβαίνω τι νόημα έχει να κατεβάσει κάποιος το ίδιο αρχείο δεύτερη φορά... Εκτός αν του κάνεις επεξεργασία και το αλλάζεις καθέ τόσο.
Title: Re: Όριο στα downloads που κάνουν οι χρήστες;
Post by: mouema@gmail.com on January 30, 2010, 22:16:08
1.Η δυνατότητα να κατεβαίνει πολλές φορές ένα αρχείο θα λειτουργεί ως κίνητρο για να "ανέβουν" σε επίπεδο subscriptions οι χρήστες.
2.Με τη χρήση ενός τέτοιου περιορισμού μπορώ να αποτρέψω να παίρνει ξανά κάποιος το αρχείο πχ αν δώσει τον κωδικό του σε άλλο χρήστη. Μπαίνει μια φορά, το κατεβάζει, καταγράφεται ότι κατέβηκε το αρχείο από τον "τάδε" χρήστη και δεν μπορεί να το ξανακατεβάσει. Δεν είναι η "απόλυτη" προστασία, αλλά μου ζητήθηκε έτσι.

Μπορείς να μου δώσεις λεπτομέρειες για την τροποποίηση του component; Υπάρχει περίπτωση για πιθανή ενσωμάτωση τέτοιας λειτουργίας σε επόμενη version;




Title: Re: Όριο στα downloads που κάνουν οι χρήστες;
Post by: datahell on January 30, 2010, 22:38:12
Θα σου περιγράψω πως να το φτιάξεις (εγώ δεν έχω χρόνο να ασχοληθώ με αυτό αυτή την περίοδο).

Χρειάζεσε ένα επιπλέον πίνακα στη βάση δεδομένων. Ονόμασέ τον πχ elx_downloads_log
Ο πίνακα χρειάζεται 4 στήλες:
id (primary key, integer, default 0, auto increment), fid (ID αρχείου, integer, default 0), uid (ID χρήστη, integer, default 0), times(φορές που κατέβηκε το αρχείο, integer, default 0)

Έστω ο χρήστης με uid = 70 ($my->id = uid = 70) πατάει για να κατεβάσει το αρχείο με fid = 12.
Πριν του το "δώσεις" ελέγχεις αν το έχει κατεβάσει ήδη στο παρελθόν.

Code: (php) [Select]
<?php 
$query 
"SELECT id, times FROM #__downloads_log WHERE fid=&#39;ID_ARXEIOY_EDO&#39; AND uid=&#39;".$my->id."&#39;";
$database->setQuery($query, &#39;#__&#39;, 1, 0);
$row $database->loadRow();

if (!
$row) { // δεν το έχει ξανακατεβάσει
     //....πέρνα μία εγγραφή (INSERT) στον πίνακα (με times=1) και μετά άστον να κατεβάσει το αρχείο
} else { //το έχει ξανακατεβάσει $row[&#39;times&#39;] φορές
    // μπορείς να του απαγορεύσεις να το κατεβάσει ξανά ή να του επιτρέψεις 
    // να το κατεβάσει μέχρι έναν μέγιστο αριθμό φορών.
    // Κάθε φορά που του επιτρέπεις να το κατεβάζει ενημέρωνε την εγγραφή 
    // αυξάνοντας το "times" κατά ένα
}
?>