Elxis CMS Forum

Ελληνικό Forum => Διαχείριση => Topic started by: evkarab on June 06, 2025, 11:37:11

Title: Parallaxrest φωτογραφία
Post by: evkarab on June 06, 2025, 11:37:11
Καλημέρα

Έχω δύο κατηγορίες και θέλω να εμφανίζεται συγκεκριμένη φωτογραφία για κάθε μιά, γίνεται;
Η ερώτηση αφορά στο θέμα SmartHotel, δημιουργεί αυτό όταν επιλέγουμε φωτογραφία για τις υπόλοιπες σελίδες.
<div id="parallax-pagetitle" style="background-image: #url(://mysite/templates/mysite/images/parallaxrest.jpg);">
Με ποιό τρόπο θα μπορούσα να επιλέγω id κατηγορίας και να εμφανίζει τη φωτογραφία που θέλω;
Σκέφτομαι κάτι με if θα γίνεται αλλά δεν ξέρω που ακριβώς και τι πρέπει να γραφτεί.

Αν είναι κάτι πολύ χρονοβόρο αγνοήστε την ερώτηση.
Title: Re: Parallaxrest φωτογραφία
Post by: datahell on June 09, 2025, 22:14:06
Λοιπόν, άνοιξε αυτό το αρχείο:
templates/smarthotel/includes/smarthotel.class.php
Πήγαινε στις γραμμές 270-275 (ή κάπου εκεί) και βρες αυτό:

$img = trim($params->get('parallaxrest', ''));
if (($img == '') || !file_exists(ELXIS_PATH.'/'.$img)) {
   $imgurl = $elxis->secureBase().'/templates/smarthotel/images/parallax-default.jpg';
} else {
   $imgurl = $elxis->secureBase().'/'.$img;
}

Γράψε από κάτω:

if (defined('ELXIS_CATID')) {
   if (file_exists(ELXIS_PATH.'/templates/smarthotel/images/parallax-category'.ELXIS_CATID.'.jpg')) {
      $imgurl = $elxis->secureBase().'/templates/smarthotel/images/parallax-category'.ELXIS_CATID.'.jpg';
   }
}

Τώρα αν πχ έχεις μία κατηγορία με ID 5 ανέβασε την εικόνα με όνομα parallax-category5.jpg στο φάκελο templates/smarthotel/images/
Δηλαδή ανεβάζεις τις εικόνες έτσι:
templates/smarthotel/images/parallax-category5.jpg
templates/smarthotel/images/parallax-category8.jpg
templates/smarthotel/images/parallax-category12.jpg
κλπ
Όπου το template βρίσκει custom εικόνα θα την χρησιμοποιεί αυτόματα.
Title: Re: Parallaxrest φωτογραφία
Post by: evkarab on June 10, 2025, 10:07:46
Γιάννη καλημέρα
Έκανα όπως μου είπες αλλά επιμένει να φορτώνει την parallaxrest.jpg. Δοκίμασα να ανεβάσω από την διαχείριση του θέματος την φωτογραφία με όνομα parallax-category39.jpg(μπας και το ξεγελάσω), αλλά την μετονομάζει σε parallaxrest.
Title: Re: Parallaxrest φωτογραφία
Post by: datahell on June 10, 2025, 21:30:50
Αν δεν στη φορτώνει σημαίνει πως η φωτογραφία δεν βρέθηκε στον φάκελο. Έλεγξε το όνομα του αρχείου και ότι την έχεις βάλει στο σωστό φάκελο.
Title: Re: Parallaxrest φωτογραφία
Post by: evkarab on June 21, 2025, 09:09:51
Λοιπόν, άνοιξε αυτό το αρχείο:
templates/smarthotel/includes/smarthotel.class.php
Πήγαινε στις γραμμές 270-275 (ή κάπου εκεί) και βρες αυτό:

$img = trim($params->get('parallaxrest', ''));
if (($img == '') || !file_exists(ELXIS_PATH.'/'.$img)) {
   $imgurl = $elxis->secureBase().'/templates/smarthotel/images/parallax-default.jpg';
} else {
   $imgurl = $elxis->secureBase().'/'.$img;
}

Γράψε από κάτω:

if (defined('ELXIS_CATID')) {
   if (file_exists(ELXIS_PATH.'/templates/smarthotel/images/parallax-category'.ELXIS_CATID.'.jpg')) {
      $imgurl = $elxis->secureBase().'/templates/smarthotel/images/parallax-category'.ELXIS_CATID.'.jpg';
   }
}

Τώρα αν πχ έχεις μία κατηγορία με ID 5 ανέβασε την εικόνα με όνομα parallax-category5.jpg στο φάκελο templates/smarthotel/images/
Δηλαδή ανεβάζεις τις εικόνες έτσι:
templates/smarthotel/images/parallax-category5.jpg
templates/smarthotel/images/parallax-category8.jpg
templates/smarthotel/images/parallax-category12.jpg
κλπ
Όπου το template βρίσκει custom εικόνα θα την χρησιμοποιεί αυτόματα.

Καλημερά
Επανέρχομαι στο θέμα γιατί μετά από πολύ μελέτη (αυτοδίδακτος με απειροελάχιστες γνώσεις) έκανα μια αλλαγή που αρχικά νόμισα πως πέτυχα τον στόχο μου.
Άλλαξα στη γραμμη 801 του smarthotel.class.php την $imgurl αντικαθιστώντας την 'parallax-rest-default.jpg' σε 'parallax-category'.ELXIS_CATID.'.jpg'. Κατάφερα να αλλάζει το background βάσει τον κωδικό της κατηγορίας, αλλά προκύψανε σφάλματα. Uncaught Error:Undefined constant "ELXIS_CATID" in /templates/smarthotel/includes/smarthotel.class.php line 801 που με τη σειρά του προκάλεσε αλυσίδα σφαλμάτων σε όλο το σύμπαν. Ενώ επέλεγα τις κατηγορίες και έβλεπα κανονικά τις ανάλογες φωτογραφίες, φόρτωνε λάθος την σελίδα επικοινωνίας που δεν είναι σε κατηγορία αλλά έχει background-rest. Τώρα κόλλησα πάλι.
Title: Re: Parallaxrest φωτογραφία
Post by: michalis1984 on June 21, 2025, 12:32:43
Χρησιμοποίησε if statement παρόμοιο με τον κώδικα που σου πρόσθεσε ο Γιάννης για να ελέγχεις αν το ELXIS_CATID είναι δηλωμένο στην τρέχουσα σελίδα. Αν δεν είναι κατηγορία τότε προφανώς σου βγάζει error.

if (defined('ELXIS_CATID')) { .... }

στις υπόλοιπες άσε την default 'parallax-rest-default.jpg'
Title: Re: Parallaxrest φωτογραφία
Post by: evkarab on June 21, 2025, 15:37:02
@michalis1984 αυτό που προτείνεις ήταν το πρώτο πράγμα που έκανα αφού είδα πως ο κώδικας δεν φόρτωνε τις φωτογραφίες. Η κατηγορία υπάρχει, η φωτογραφία υπάρχει, αλλά επέμενε να φορτώνει αυτή που όπως διαπιστώθηκε του έλεγε ο αρχικός κώδικας. Για να μην πλατιάζω, άλλαξα την $imgurl και δούλεψε. Όμως δούλευε μόνο εφόσον άλλαζε η κατηγορία. Όταν πήγα να ανοίξω ένα άρθρο της κατηγορίας, μπλοκάριζε η σελίδα και έστελνε μηνύματα fatal error.
Το αφήνω αυτό που θα ήθελα να γίνει, διότι αντιλαμβάνομαι πως το θέμα SmartHotel, δεν είναι κατασκευασμένο να λειτουργεί έτσι όπως το έχω φανταστεί. Πιθανότατα χρειάζεται μεγάλη τροποποίηση, πράγμα που εγώ αδυνατώ να κάνω. Ευχαριστώ για το ενδιαφέρον και τους δυό σας.