Elxis CMS Forum

Ελληνικό Forum => Πρόσθετα => Topic started by: thanasis on June 08, 2017, 11:10:55

Title: PlugIn
Post by: thanasis on June 08, 2017, 11:10:55
Καλησπέρα,
Προσπαθώ να φτιάξω 2 plugin και να τα χρησιμοποιήσω ταυτόχρονα για να κάνω το εξής:

{plugin1}mla-mpla1{/plugin1}  // να ισχύει if (eFactory::getElxis()->user()->gid == 7) {}
{plugin2}mla-mpla2{/plugin2}  // να ισχύει if (eFactory::getElxis()->user()->gid <> 7) {}

Κάτι κάνω λάθος γιατί το καθένα μόνο του τρέχει κανονικά ενώ όταν μπούν και τα δύο δεν εμφανίζεται τίποτα.
Από ότι καταλαβαίνω το ένα αναιρεί το άλλο μετά το ELSE ?

Quote
         public function process(&$row, $published, $params) {
            eFactory::getElxis()->user()->gid;
            if (eFactory::getElxis()->user()->gid == 7) {   
               
               $regex = "#{plugin1}(.*?){/plugin1}#s";
               if (!$published) {
                  $row->text = preg_replace($regex, '', $row->text);
                  return true;
               }
               preg_match_all($regex, $row->text, $matches, PREG_PATTERN_ORDER);

               if (!$matches) { return true; }

               foreach ($matches[0] as $i => $match) {
               $contents = $matches[1][$i];
               $html = $contents;
               $row->text = preg_replace("#".$match."#", $html, $row->text);
               }
               return true;
            }   else {
               $row->text = preg_replace($regex, '', $row->text);
               return;
            }

         }
Quote
         public function process(&$row, $published, $params) {
            eFactory::getElxis()->user()->gid;
            if (eFactory::getElxis()->user()->gid <> 7) {   
               
               $regex = "#{plugin2}(.*?){/plugin2}#s";
               if (!$published) {
                  $row->text = preg_replace($regex, '', $row->text);
                  return true;
               }
               preg_match_all($regex, $row->text, $matches, PREG_PATTERN_ORDER);

               if (!$matches) { return true; }

               foreach ($matches[0] as $i => $match) {
               $contents = $matches[1][$i];
               $html = $contents;
               $row->text = preg_replace("#".$match."#", $html, $row->text);
               }
               return true;
            }   else {
               $row->text = preg_replace($regex, '', $row->text);
               return;
            }

         }
Title: Re: PlugIn
Post by: nikos on June 08, 2017, 12:44:37
Αν ο στόχος σου είναι να εμφανίζεται ένα plugin μόνο σε επισκέπτες τότε η 1η περίπτωση δηλ. $elxis->user()->gid == 7 νομίζω ότι αρκεί.
Title: Re: PlugIn
Post by: thanasis on June 08, 2017, 12:52:18
Καλησπέρα,
Στόχος είναι εναλλαγή διαφορετικού περιεχομένου μεταξύ επισκεπτών και χρηστών.
Title: Re: PlugIn
Post by: nikos on June 08, 2017, 13:45:54
Παρόμοιο έχω κάνει στο παρελθόν σε ένα site που ήθελα να δείχνω περιεχόμενο σε συγκεκριμένη θέση module μόνο σε επισκέπτες, με το όρισμα αυτό και μόνο δηλ.  if ($elxis->user()->gid == 7) { do something } και το περιεχόμενο σε επίπεδο πρόσβασης για άλλες ομάδες π.χ. χρήστες, το όριζα από τις παραμέτρους του εκάστοτε module.

Παράδειγμα εμφάνισης module στη πρώτη σελίδα μόνο για επισκέπτες

Code: [Select]

if (eFactory::getURI()->getUriString() == eFactory::getElxis()->getConfig('DEFAULT_ROUTE')) { // show a module in frontpage only to visitors
if ($elxis->user()->gid == 7) { $eDoc->modules('user5'); }
}

Title: Re: PlugIn
Post by: thanasis on June 08, 2017, 13:53:56
Όπως το σκέφτομαι νομίζω ότι μόνο με plugin μπορώ να το κάνω.
Θέλω ουσιαστικά να εναλλάσω τιμές πώλησης σε πολλά άρθρα.
Επομένως μέσα στο κάθε άρθρο πρέπει να υπάρχει μια τιμή Α που θα βλέπουν οι επισκέπτες και όταν μπαίνουν οι χρήστες να μην εμφανίζεται η τιμή Α αλλά μια άλλη τιμή Β.
Title: Re: PlugIn
Post by: nikos on June 08, 2017, 14:14:27
Μπορείς να δοκιμάσεις, αν θες εναλλακτικά, αυτό που σου ανέφερα, βάζοντας την τιμή Α (για επισκέπτες) σε ένα module π.χ. user5 και την τιμή Β (για χρήστες) σε άλλο module π.χ. user4 τα οποία να εμφανίζονται παραπλεύρως των άρθρων και επέλεξε σε ποια κατηγορία άρθρων θα εμφανίζεται το καθένα.
Title: Re: PlugIn
Post by: webgift on June 08, 2017, 14:36:56
Μπορείς να αναπτύξεις 1 plugin της μορφής {dprices}u_5,v_10{/dprices}
Η τιμή για τους χρήστες (u: users) είναι 5 και η αντίστοιχη για τους επισκέπτες
(v: visitors) θα είναι 10.