Elxis CMS Forum
Ελληνικό Forum => Πρόσθετα => Topic started by: eliasbou on October 17, 2011, 11:36:35
-
Γεια σας.
Έχω εγκαταστήσει το easy gallery το όποιο εμφανίζει φωτογραφίες από έναν φάκελο οι όποιες έχουν την μορφή Image1 Image2 .....
Το πρόβλημα μου είναι πως δεν μου τις εμφανίζει με την σειρά (Image1 Image2 ... όπως εμφανίζονται μέσα στον φάκελο) άλλα τυχαία.
Υπάρχει τρόπος να αλλάξει αυτό?
Ευχαριστώ.
-
Μήπως κάνεις κάποιο λάθος; Δεν μπορεί να συμβαίνει αυτό. Αν δηλ. στο περιεχόμενο βάλεις την έκφραση π.χ. {gallery}category:8{/gallery} θα δείξει τις εικόνες με την σειρά που έχουν τεθεί στην κατηγορία 8 όπως θα τις έβλεπες και μέσω του component IOS Gallery αν άνοιγες την συγκεκριμένη κατηγορία εικόνων.
-
Δεν παίρνω εικόνες από κατηγορία του component IOS Gallery αλλά απο φάκελο. Η διατύπωση που έχω είναι η εξής {gallery}images/flowers/{/gallery}και η μορφή των εικόνων είναι Image1 Image2 .....κλπ, παρόλα αυτα μου τις εμφανίζει με τυχαία σειρά.
-
Μόλις τώρα το δοκίμασα σε τοπική εγκατάσταση παίρνοντας φωτογραφίες από φάκελο και μου τις εμφάνισε κανονικότατα βάσει ονοματολογικής σειράς. Έκανα δε tests αλλάζοντας τα ονόματα των αρχείων εικόνων και το bot ανταποκρίθηκε διατηρώντας ορθά την ονοματολογική σειρά κατά την εμφάνιση. Δεν έχω κάτι περισσότερο να σου πω, οπότε κοίταξέ το πάλι, μήπως κάνεις κάποιο λάθος.
-
Νικό δεν ξέρω για τοπικά, αλλά στον server αρνιέται κατηγορηματικά να δουλέψει. Ορίστε και το link:
http://www.kennelalmalibre.gr/puppies/jack-russell-terrier/litter-d-jack-russell-terrier.html
-
Το έχω παρατηρήσει - διορθώσει αυτό. Ενώ τοπικά δουλεύει άψογα όταν το έχουμε online δεν τις εμφανίσει με την σειρά.
Η λύση :
Αρχείο : mambots/content/easygallery.php
Στην γραμμή 113 του αρχείο βρίσκουμε την εντολή closedir($handler); Πατάμε ένα enter (πριν την γραμμή αυτή) όπου μετά την αλλαγή πρέπει να γίνει :
asort($images['files']);
closedir($handler);
Τι το προκαλεί :
The opendir() does not allow the list to be sorted.
It (at least under linux) shows the list of files according to the timestamp when they were created.
Η συνάρτηση opendir() (http://php.net/manual/en/function.opendir.php)
-
Σταύρο αν είναι έτσι, τότε θα πρέπει να ενσωματωθεί η αλλαγή στην επόμενη έκδοση δηλ. την 1.7
-
Σίγουρα πράγματα ;)
-
Όντος με την αλλαγή δουλεύει μια χαρά.
Ευχαριστώ webgift.
-
Η χρήση του asort στο συγκεκριμένο array είναι λάθος. Χρειάζεται custom sorting function με το usort. Θα προσθέσω επιλογή ταξινόμισης στο bot.
-
Γιατί είναι λάθος; Έχω δει συνάρτηση ταξινόμησης που έχεις φτιάξει στο παρελθόν. Αφού το αποτέλεσμα είναι το επιθυμητό για αυτό αναρωτιέμαι.
-
Δεν νομίζω να έχω βάλει τέτοιο sorting, για πρόσεξε καλύτερα τι έκανα sort εκεί που αναφέρεσε. Αν έχω κάνει χρήση του sort σε τέτοια περίπτωση τότε ήμουν λάθος.
Το sort δουλεύει καλά σε array της μορφής: array('a', 'b', 'c', 'd');
Στο συγκεκριμένο array ($images['files']) το κάθε πεδίο (a, b, c, κλπ) είναι επίσης array οπότε χρειάζεσε μία user function που να την καλέσεις με την usort (http://www.php.net/manual/en/function.usort.php).
Έφτιαξα μία νέα έκδοση του bot easygallery (1.7) που κάνει sort με διάφορους τρόπους (τίτλο, ημερομηνία, όνομα αρχείου, τυχαία), την δημοσιεύω στο EDC εντός ολίγων λεπτών.
Edit: Η έκδοση 1.7 είναι διαθέσιμη από εδώ (http://www.elxis-downloads.com/el/downloads/image-galleries/222.html). Δεν την δοκίμασα αλλά πρέπει να είναι ΟΚ. Αν συναντήσετε κάποιο πρόβλημα πείτε μου.
-
Είδα μόλις τις αλλαγές. Έτσι και στα μαθηματικά πάντα έβρισκα άλλες λύσεις από αυτές που δίναν οι καθηγητές. Το αποτέλεσμα ήταν σωστό πάντως. ;D. Στην επέκταση mod_work_progress είχες κάνει παρόμοια τεχνική ταξινόμησης πινάκων.
-
Το sort/asort είναι λάθος αλλά σου δουλεύει για τον εξής λόγο: Η php είναι γλώσσα απλή, φτιαγμένη για να μπορεί να χρησιμοποιηθεί και από άτομα χωρίς ιδιαίτερες γνώσεις προγραμματισμού. Ετσι περιέχει πολλά "μαξιλαράκια" ασφαλείας. Δουλεύει δηλαδή και χωρίς να είναι όλα τέλεια. Βέβαια το αποτέλεσμα μπορεί να είναι απρόσμενο σε κάποιες περιπτώσεις. Στη συγκεκριμένη περίπτωση το sort/asort θα λάβει το πρώτο στοιχεία του multi-dimensional array $images['files'] ως το string που χρειάζεται για να ταξινομήσει τα αποτελέσματα (η sort για κάθε σύγκριση στοιχείων περιμένει να λάβει string και εσύ της δίνεις array). Το στοιχείο αυτό είναι το filename οπότε η ταξινόμιση κατ όνομα σου δουλεύει. Αυτό δεν σημαίνει όμως ότι είναι σωστή η χρήστη του sort/asort στη συγκεκριμένη περίπτωση.
Το module work progress χρησιμοποιεί και αυτό (σωστά) την usort και όχι sort/asort. Για πρόσεξέ το καλύτερα.
usort($works, array('modprogresswork', 'reorder'));
Χρυσός κανόνας: ότι φαίνεται εντάξει δεν σημαίνει ότι είναι και σωστό!
-
Χρυσός κανόνας: ότι φαίνεται εντάξει δεν σημαίνει ότι είναι και σωστό!
Αυτό το έχω στα υπόψιν. Το θέμα είναι ότι δεν μου δείχνει κάποια σημάδια ότι κάτι δεν θα πάει καλά για να καταλάβω τι συμβαίνει και να δράσω ανάλογα.
- Ναι. Δεν το έθεσα σωστά μάλλον. Στην επέκταση work progress δουλεύεις με τον ίδιο τρόπο όπως και τώρα μετά την αναβάθμιση για αυτό το θυμάμαι.
Το στοιχείο αυτό είναι το filename οπότε η ταξινόμιση κατ όνομα σου δουλεύει. Αυτό δεν σημαίνει όμως ότι είναι σωστή η χρήστη του sort/asort στη συγκεκριμένη περίπτωση.
Ναι για αυτό το επέλεξα. Τώρα θα ξέρω στις συγκεκριμένες περιπτώσεις τι θα χρησιμοποιώ και τι εργαλεία (συναρτήσεις) θα δουλεύω.
-
Γιάννη χρησιμοποίησα την διορθωμένη έκδοση του easy gallery και το αποτέλεσμα είναι να παίρνω λευκή σελίδα. Για δες το και εσύ .
-
Με την νέα έκδοση του easy gallery παίρνω το παρακάτω σφάλμα.
Fatal error: Cannot call method self::ordTitle() or method does not exist in /home/webico/public_html/demo/elxis/mambots/content/easygallery.php on line 116
???
-
Κάτι παίζει με την php σου. Δοκίμασε αυτή την έκδοση που επισυνάπτω εδώ. Λογικά θα σου δουλέψει.
[attachment deleted by admin]
-
Ευχαριστώ δουλεύει μια χαρά. ;)