Elxis CMS Forum

Ελληνικό Forum => Πρόσθετα => Topic started by: vman on January 30, 2007, 16:38:12

Title: Related_items
Post by: vman on January 30, 2007, 16:38:12
Καλησπέρα, έχω εγκαταστήσει ένα module το οποίο εμφανίζει τα related_items ενός content (βασίζεται στα metadata του content).. Το πρόβλημα είναι οτι το module θέλω να το εμφανίζω μόνο όταν ο χρήστης διαβάζει ένα άθρο..  αλλά στο elxis μπορείς να ορίσεις που θα εμφανίζεται το module βάση των menu.. ενώ στο site μου οδηγείσε στο άθρο μέσω blog..  καμιά ιδέα ???
Title: Re: Related_items
Post by: CREATIVE Options on January 30, 2007, 21:13:07
αλλά στο elxis μπορείς να ορίσεις που θα εμφανίζεται το module βάση των menu.. ενώ στο site μου οδηγείσε στο άθρο μέσω blog..  καμιά ιδέα ???

Μάλλον είμαι λίγο ζαλισμένος και δεν σε κατάλαβα, μπορείς να μου εξηγήσεις κάπως καλύτερα ποια είναι η δυσκολία ή να μας πεις για ποιο module αναφέρεσαι, έχε υπόψη ότι το module μπορεί να μην συνεργάζεται με το elxis.
Title: Re: Related_items
Post by: datahell on January 30, 2007, 21:29:54
Άσχετο και σχετικό: η έκδοση 2007 θα έχει ενσωματωμένη τη δυνατότητα να ορίζεις related items όπως και related links (δείτε επίσης...). Αυτή τη δυνατότητα την έχει ήδη το component Elxis Directory. Περισσότερα για αυτό μελλοντικά.
Title: Re: Related_items
Post by: vman on January 30, 2007, 22:03:10
το module είναι  το mod_related_items.. και δουλεβει μια χαρά..   απλά θέλω να εμφανίζεται μόνο όταν ο χρήστης διαβάζει ένα άθρο..  γίνεται αυτό??
Title: Re: Related_items
Post by: datahell on January 30, 2007, 22:18:18
Δεν θυμάμαι πως και αν γίνεται, πρέπει να το κοιτάξω. Δεν είναι η ειδικότητά μου τα κουμπάκια. Η ειδικότητά μου είναι ο κώδικας και θα σου δώσω λύση με βάση αυτό.

Μπορείς να το κάνεις πάρα πολύ εύκολα προσθέτοντας στην αρχή του module αυτό:

global $option, $task;
if (($option != 'com_content') || ($task != 'view')) { return; }



αυτό ήταν!
Title: Re: Related_items
Post by: vman on January 31, 2007, 02:44:02
Με φτιαξες.. να σε καλα  ;D
Title: Re: Related_items
Post by: michalis1984 on October 17, 2008, 02:51:29
Μια απορία σχετικά με το related item. Σε πολλά άρθρα μου βγάζει μέχρι και 100 άρθρα ως σχετικά. Πως μπορώ να περιορίζω τον αριθμό των σχετικών άρθρων; Πχ σε.. 5 ;
Title: Re: Related_items
Post by: ArXoS on December 11, 2009, 00:34:19
το module είναι  το mod_related_items.. και δουλεβει μια χαρά..   απλά θέλω να εμφανίζεται μόνο όταν ο χρήστης διαβάζει ένα άθρο..  γίνεται αυτό??

να ρωτησω βρε παιδιά .. υπάρχει τρόπος να το κάνεις να μην εμφανίζεται και ο τίτλος ?  ??? ???
Έχω βάλει να εμφανίζεται το module μόνο σε section άρθρων που θέλω (με τσεκαρισμένη την εμφάνιση τίτλου όπως το θέλω), εμφανίζει αποτελέσματα  όταν βλέπεις άρθρα, αλλά όταν βλέπεις τις κατηγορίες του section (σε blog π.χ.) εμφανίζεται το module άδειο μόνο με το τίτλο του, και ενοχλεί να φαίνεται μία θέση module κενή μόνο με τίτλο ...
(http://img686.imageshack.us/img686/940/image2v.jpg)

Υπάρχει κανένα hack για αυτή τη περίπτωση ? 
Title: Re: Related_items
Post by: ArXoS on December 11, 2009, 00:58:47
οκ παιδιά, νομίζω οτι βρήκα λύση ...

δημοσίευσα το module χωρίς εμφάνιση τίτλου, και έβαλα τον τίτλο μέσα στο php του module ..

έβαλα δηλαδή μέσα στο module το εξής :
?><div class="moduletable"><h3>Παρόμοιες συνταγές</h3></div><?php   

(του έκοψα την php, έβαλα τον τίτλο μου και συνέχισα την php από εκεί που είχε μείνει για να συνεχίσει τη δουλειά του το module)

Το βλέπω και δουλεύει καλά. Στέκει όμως σαν ιδέα ή είναι μαμακία ?
Title: Re: Related_items
Post by: CREATIVE Options on December 11, 2009, 11:05:44
Είσαι ΟΚ ! λογικά το έχεις βάλει στην κορυφή που δομή το αποτέλεσμα σωστά ;

Εχθές αργά είδα την ερώτηση σου στο mail μου αλλά ήμουν κομμάτια για να σου απαντήσω.
Αλλά θα σου έλεγα να κάνεις το ίδιο, να βάλεις τον τίτλο μέσα στο outcome αποτέλεσμα.
Title: Re: Related_items
Post by: ArXoS on December 11, 2009, 15:26:33
καλά κάνεις και δε μου απαντάς αμέσως .. με την αναμονή το ψάχνω κι εγω και μαθαίνω πράγματα  :D
Title: Re: Related_items
Post by: ArXoS on December 12, 2009, 01:51:30
Μια απορία σχετικά με το related item. Σε πολλά άρθρα μου βγάζει μέχρι και 100 άρθρα ως σχετικά. Πως μπορώ να περιορίζω τον αριθμό των σχετικών άρθρων; Πχ σε.. 5 ;

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

(http://img189.imageshack.us/img189/4894/related.jpg)

Ο κώδικας που χρησιμοποίησα είναι από το module στην έκδοση του elxis 2006.4 (αυτό χρησιμοποιώ) και μου δουλεύει μια χαρά.
Δεν ξέρω εαν δουλέψει και στις επόμενες εκδόσεις, μπορείς να το δοκιμάσεις. Αν δε δουλέψει σε 2008*9, γίνεται εύκολα edit για να προστεθούν οι επιπλέον επιλογές στις νέες εκδόσεις γιατί είναι πολύ καθαρό και μικρούλι module


Το πρόβλημα όμως που αντιμετωπίζω είναι τώρα άλλο :
Ας πούμε κανονικά ένα άρθρο έχει 30-40 σχετικές σελίδες, και βάλω στις παραμέτρους του module να μου βγάλει μόνο τις 10 στα αποτελέσματα. Πάντα λοιπόν, αυτά τα 10 είναι ίδια (μετράει τις σελίδες με τη σειρά, και πάντα βγάζει τις 10 πρώτες σε όλες τις 30-40 σχετικές).
Πως μπορώ εγώ να το κάνω να μου βγάζει π.χ. 10 τυχαία αποτελέσματα (για να αλλάζουν μεταξύ τους) ;;
Είναι εύκολο κάτι τέτοιο ?

[attachment deleted by admin]
Title: Re: Related_items
Post by: ArXoS on December 12, 2009, 18:59:38
Πως μπορώ εγώ να το κάνω να μου βγάζει π.χ. 10 τυχαία αποτελέσματα (για να αλλάζουν μεταξύ τους) ;;
Είναι εύκολο κάτι τέτοιο ?

από ότι βλέπω από τον κώδικα, το query του είναι αυτό

Code: [Select]
$query = "SELECT id, title"
. "\n FROM #__content"
. "\n WHERE id<>$id AND state=1 AND access IN (".$my->allowed.")"
            . "\n AND ((language LIKE '%$lang%') OR (language IS NULL))"           
            . "\n AND (metakey LIKE '%";
$query .= implode( "%' OR metakey LIKE '%", $likes );
$query .= "%')";

πως μπορώ να βάλω σε αυτό το query μια ORDER by rand παράμετρο ? (έχω φάει τα μάτια μου με την php αλλά δεν τα έχω καταφέρει  :()
Title: Re: Related_items
Post by: ArXoS on December 14, 2009, 00:40:59
Έχω δοκιμάσει σε όλες τις πιθανές θέσεις να βάλω στην εντολή
         ."\n ORDER BY RAND()";

Και το module τα παίζει .. μπας και είναι καμιά άλλη η εντολή randomize ?  ???
Title: Re: Related_items
Post by: CREATIVE Options on December 14, 2009, 10:49:46
δεν νομίζω ότι η μεταβλητή "rand" μπορεί να χρησιμοποιηθεί για τα περιεχόμενα - τίτλους.

έψαξα και στο SVN για να δω την δομήσει που έχει κάνει ο datahell, αλλά δεν βρήκα κάτι.

Datahell κάποια βοήθεια ;;;
Title: Re: Related_items
Post by: ArXoS on December 20, 2009, 15:27:48
οκ, μετά από δοκιμές το βρήκα και αυτό ..
στον παραπάνω κώδικα που πρόσθεσα, έβαλα από κάτω αυτό

            $query .= "ORDER BY RAND()";

έτσι έχω τυχαία random items για κάθε άρθρο
Δοκιμάστε για παράδειγμα στο http://www.greekmasa.gr/index.php?option=com_content&task=view&id=4117&Itemid=49 απανωτά refresh. Στην διπλανή στήλη εμφανίζει 5 τυχαία σχετικά άρθρα, διαφορετικά κάθε φορά  :D


ερώτηση :
... καταπονείται πολύ η βάση με αυτό το query ?
Title: Re: Related_items
Post by: datahell on December 21, 2009, 08:41:46
ΟΚ είναι. Το σωστό πάντως είναι να γραφτεί με τρόπο συμβατό με το ADODB:

$query .= "ORDER BY ".$database->_resource->random;
Title: Re: Related_items
Post by: ArXoS on December 21, 2009, 15:21:28
 οκ ;D
Title: Re: Related_items
Post by: m0st on March 23, 2013, 10:35:22
Θα ήταν εύκολο είτε να μας πείτε ακριβώς το σημείο που έγινε η επέμβαση του κώδικα με την προσθήκη των δύο γραμμών για το Randomization; Προσπάθησα αλλά δεν... ή απλά να το ανεβάσετε πειραγμένο;
Ευχαριστώ
Title: Re: Related_items
Post by: datahell on March 23, 2013, 10:56:51
Στο τέλος του query το προσθέτεις. Κώδικας από mod_related_items για το Elxis 2009.x :

$query = "SELECT a.id, a.title, a.seotitle, ...
.....
. "\n AND ( a.publish_down = '2060-01-01 00:00:00' OR a.publish_down >= '$now' )";
$query .= " ORDER BY ".$database->_resource->random;
Title: Re: Related_items
Post by: m0st on March 23, 2013, 11:21:55
Πήρα το mod που είχε ανεβάσει εδώ ο Arxos γιατί ήθελα να ορίζω τα προβαλλόμενα σχετικά ... δεν πιστεύω να μπορείς να μου το πεις σε σχέση με αυτό ε;
Μήπως πριν το
$query .= implode( "%' OR metakey LIKE '%", $likes );
         $query .= "%')";
Title: Re: Related_items
Post by: webgift on March 23, 2013, 11:29:58
Σου επισυνάπτω το αρχείο php.
Title: Re: Related_items
Post by: m0st on March 23, 2013, 14:51:08
Ευχαριστώ Webgift ... Το Randomization δουλεύει κανονικά αλλά παρότι υπάρχει το Limit of Results δεν δουλεύει με αποτέλεσμα να μου βγάζει παπάδες...
Title: Re: Related_items
Post by: datahell on March 23, 2013, 19:36:07
Αν θες να περιορίσεις τα αποτελέσματα (το module τα εμφανίζει όλα) άλλαξε αυτό:
$database->setQuery( $query );
σε αυτό:
$database->setQuery( $query, '#__', 10, 0 );

Το 10 άλλαξέ το στον μέγιστο αριθμό άρθρων που θες να εμφανίζεις (εφόσον υπάρχουν).
Title: Re: Related_items
Post by: michalis1984 on March 05, 2015, 19:57:48
Παιδιά βοήθεια! Πρόκειτε για πλατφόρμα elxis 4 αλλά είναι σχετικό να μην φτιάχνω νέο θέμα. Παραμετροποιώ λίγο το latestarticles για να εμφανίζει custom άρθρα (πηγή custom και ένα text όπου ο χρήστης δίνει τα id των άρθρων πχ. 2,33,45,66).

Έκανα τις αλλαγές, παίρνει τα σωστά άρθρα αλλά αυτό που θέλω είναι να εμφανίζονται με τη σειρά που τα δίνει ο χρήστης και όχι με την default που υπάρχει στο module:

$sql .= "\n ORDER BY a.created DESC";

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

To short by id επίσης δεν μου κάνει γιατί τα άρθρα δεν δίνονται με σειρά όπως στο πιο πάνω παράδειγμα αλλά τυχαία πχ 3,18,6,1.
Title: Re: Related_items
Post by: datahell on March 05, 2015, 23:02:45
Αυτό που ζητάς απαιτεί custom ταξινόμηση με βάση την συνάρτηση usort. Παίρνεις τα άρθρα που θες από την βάση χωρίς καμία ταξινόμηση και μετά τα ταξινομείς με την usort της php.
Title: Re: Related_items
Post by: webgift on March 06, 2015, 12:56:09
Συνάρτηση FIELD της MySql.

Παράδειγμα:
SELECT * FROM articles
ORDER BY FIELD(id, 5, 9, 2);
Title: Re: Related_items
Post by: michalis1984 on March 06, 2015, 18:54:53
Να'στε καλά κύριοι! Μου φάνηκε πιο εύκολο για την περίπτωση (αλλά και για μένα) να γίνει με τη συνάρτηση field και έτσι βολεύτηκα με αυτήν.