Elxis CMS Forum

Ελληνικό Forum => Πρόσθετα => Topic started by: eliasbou on October 17, 2011, 11:36:35

Title: Easy Gallery. Σειρά εικόνων.
Post by: eliasbou on October 17, 2011, 11:36:35
Γεια σας.
Έχω εγκαταστήσει το easy gallery το όποιο εμφανίζει φωτογραφίες από έναν φάκελο οι όποιες έχουν την μορφή Image1 Image2 .....
Το πρόβλημα μου είναι πως δεν μου τις εμφανίζει με την σειρά (Image1 Image2 ... όπως εμφανίζονται μέσα στον φάκελο) άλλα τυχαία.
Υπάρχει τρόπος να αλλάξει αυτό?

Ευχαριστώ.
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: nikos on October 17, 2011, 12:05:46
Μήπως κάνεις κάποιο λάθος; Δεν μπορεί να συμβαίνει αυτό. Αν δηλ. στο περιεχόμενο βάλεις την έκφραση π.χ. {gallery}category:8{/gallery} θα δείξει τις εικόνες με την σειρά που έχουν τεθεί στην κατηγορία 8 όπως θα τις έβλεπες και μέσω του component IOS Gallery αν άνοιγες την συγκεκριμένη κατηγορία εικόνων.
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: eliasbou on October 17, 2011, 15:09:03
Δεν παίρνω εικόνες από κατηγορία του component IOS Gallery αλλά απο φάκελο. Η διατύπωση που έχω είναι η εξής {gallery}images/flowers/{/gallery}και η μορφή των εικόνων είναι Image1 Image2 .....κλπ, παρόλα αυτα μου τις εμφανίζει με τυχαία σειρά.
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: nikos on October 18, 2011, 02:56:55
Μόλις τώρα το δοκίμασα σε τοπική εγκατάσταση παίρνοντας φωτογραφίες από φάκελο και μου τις εμφάνισε κανονικότατα βάσει ονοματολογικής σειράς. Έκανα δε tests αλλάζοντας τα ονόματα των αρχείων εικόνων και το bot ανταποκρίθηκε διατηρώντας ορθά την ονοματολογική σειρά κατά την εμφάνιση. Δεν έχω κάτι περισσότερο να σου πω, οπότε κοίταξέ το πάλι, μήπως κάνεις κάποιο λάθος.
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: eliasbou on October 18, 2011, 10:29:43
Νικό δεν ξέρω για τοπικά, αλλά στον server αρνιέται κατηγορηματικά να δουλέψει. Ορίστε και το link:

http://www.kennelalmalibre.gr/puppies/jack-russell-terrier/litter-d-jack-russell-terrier.html
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: webgift on October 18, 2011, 13:19:50
Το έχω παρατηρήσει - διορθώσει αυτό. Ενώ τοπικά δουλεύει άψογα όταν το έχουμε 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)
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: nikos on October 18, 2011, 14:39:50
Σταύρο αν είναι έτσι, τότε θα πρέπει να ενσωματωθεί η αλλαγή στην επόμενη έκδοση δηλ. την 1.7
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: webgift on October 18, 2011, 14:41:23
Σίγουρα πράγματα ;)
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: eliasbou on October 18, 2011, 19:04:52
Όντος με την αλλαγή δουλεύει μια χαρά.
Ευχαριστώ webgift.
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: datahell on October 18, 2011, 20:23:50
Η χρήση του asort στο συγκεκριμένο array είναι λάθος. Χρειάζεται custom sorting function με το usort. Θα προσθέσω επιλογή ταξινόμισης στο bot.
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: webgift on October 18, 2011, 21:31:28
Γιατί είναι λάθος; Έχω δει συνάρτηση ταξινόμησης που έχεις φτιάξει στο παρελθόν. Αφού το αποτέλεσμα είναι το επιθυμητό για αυτό αναρωτιέμαι.
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: datahell on October 18, 2011, 21:52:05
Δεν νομίζω να έχω βάλει τέτοιο 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). Δεν την δοκίμασα αλλά πρέπει να είναι ΟΚ. Αν συναντήσετε κάποιο πρόβλημα πείτε μου.
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: webgift on October 18, 2011, 23:40:22
Είδα μόλις τις αλλαγές. Έτσι και στα μαθηματικά πάντα έβρισκα άλλες λύσεις από αυτές που δίναν οι καθηγητές. Το αποτέλεσμα ήταν σωστό πάντως. ;D. Στην επέκταση mod_work_progress είχες κάνει παρόμοια τεχνική ταξινόμησης πινάκων.
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: datahell on October 19, 2011, 00:05:15
Το 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'));

Χρυσός κανόνας: ότι φαίνεται εντάξει δεν σημαίνει ότι είναι και σωστό!
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: webgift on October 19, 2011, 00:14:42
Χρυσός κανόνας: ότι φαίνεται εντάξει δεν σημαίνει ότι είναι και σωστό!
Αυτό το έχω στα υπόψιν. Το θέμα είναι ότι δεν μου δείχνει κάποια σημάδια ότι κάτι δεν θα πάει καλά για να καταλάβω τι συμβαίνει και να δράσω ανάλογα.

- Ναι. Δεν το έθεσα σωστά μάλλον. Στην επέκταση work progress δουλεύεις με τον ίδιο τρόπο όπως και τώρα μετά την αναβάθμιση για αυτό το θυμάμαι.

Το στοιχείο αυτό είναι το filename οπότε η ταξινόμιση κατ όνομα σου δουλεύει. Αυτό δεν σημαίνει όμως ότι είναι σωστή η χρήστη του sort/asort στη συγκεκριμένη περίπτωση.
Ναι για αυτό το επέλεξα. Τώρα θα ξέρω στις συγκεκριμένες περιπτώσεις τι θα χρησιμοποιώ και τι εργαλεία (συναρτήσεις) θα δουλεύω.
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: eliasbou on October 19, 2011, 08:38:51
Γιάννη χρησιμοποίησα την διορθωμένη έκδοση του easy gallery και το αποτέλεσμα είναι να παίρνω λευκή σελίδα. Για δες το και εσύ .
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: eliasbou on October 21, 2011, 09:19:58
Με την νέα έκδοση του 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

 ???
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: datahell on October 21, 2011, 14:59:14
Κάτι παίζει με την php σου. Δοκίμασε αυτή την έκδοση που επισυνάπτω εδώ. Λογικά θα σου δουλέψει.

[attachment deleted by admin]
Title: Re: Easy Gallery. Σειρά εικόνων.
Post by: eliasbou on October 21, 2011, 22:01:20
Ευχαριστώ δουλεύει μια χαρά.  ;)