Custom Fields & Overrides
Κάνε ένα νέο στοιχείο μενού "Αυτοκίνητα" που θα δείχνει στη Κατηγορία Αυτοκίνητα και στη κατηγορία αυτή δημιούργησε custom fields.
- Article Custom Fields : https://www.youtube.com/watch?v=phuKSmaCIPA
Μην επιλέξεις το "do not show automatically" που λέει και σαν εικόνα αυτοκινήτου αυτή που βάζει μέσα στο κείμενο βάλτην ως εισαγωγική εικόνα του άρθρου όπως το κάναμε. Άρα στον κειμενογράφο αν θες απλώς γράφεις μια μικρή περιγραφή για το αυτοκίνητο τυπικά για να έχει ένα κειμενάκι.
Άσκηση
Φτιάξε με τα custom fields μια λογική για τα άρθρα π.χ. σαν το car.gr ή σαν ένα eshop. Βάλε κατάσταση αυτοκινήτου, τιμή, χιλιόμετρα ή αν είναι τύπου eshop/κατάλογος βάλε τιμή, μέγεθος ώστε μετά να σου δούμε τι είναι τα overrides.
Οπότε διαλέγεις τα αντίστοιχα fields που χρειάζεσαι, κάνε μια νέα κατηγορία "Προϊόντα" σαν κατηγορία άρθρων. Βάλε 3 προϊόντα ή "Αμάξια" και βάλε 3 αμάξια (π.χ. Peugeot 308, Nissan GT-R, Lamborghini Gallardo - αυτά που είναι προς πώληση π.χ. τα οποία είναι άρθρα) και φτιάξε custom fields μόνο για αυτή τη κατηγορία. Δες ξανά το κομμάτι με τα custom fields που έκανα στο βίντεο.
Φτιάξε κάτι σαν το car.gr με αμάξια, οπότε κάνεις μια νέα κατηγορία "Αυτοκίνητα" για αρχή και προσθέτεις 3 άρθρα ως αυτοκίνητα στη κατηγορία αυτή. Και καινούριο στοιχείο μενού που θα δείχνει την κατηγορία αυτοκίνητα.
Δοκιμή πεδίου subform field π.χ. πεδίο για gallery με εικόνες, ή κάτι που να επαναλαμβάνεται αλλά να μη ξέρουμε πόσες φορές.
Template Overrides (custom fields και tabs από W3Schools)
Βασικά PHP σε 10 λεπτά : https://www.youtube.com/watch?v=2s6mIboARCM
Κώδικας για Field και Subform Field Override
//Εμφάνιση απλού πεδίου
echo $this->item->jcfields[2]->value;
//ή
echo $this->item->jcfields[2]->rawvalue;
//Εμφάνιση Subform (επαναλαμβανόμενου) πεδίου
//ονομάζουμε την τιμή όπως χρειάζεται και όπου υπάρχει νούμερο βάζουμε τα id
//το 28 είναι το id του subform πεδίου και το 29 το id του πεδίου που βρίσκεται μέσα στο subform
//Custom show and prevent any layout
$efarmoges = json_decode($this->item->jcfields[28]->rawvalue, true);
foreach ($efarmoges as $efarmogi) {
//29 το id του πεδίου που ανήκει στο subform
$ef_efarmogi = $efarmogi['field29'];
}
// render subform field with the layout used from the subform in administration
$subfield = $this->item->jcfields[28];
$context = 'com_content.article';
$layout = trim($subfield->params->get('layout', 'render'));
$content = trim(
Joomla\Component\Fields\Administrator\Helper\FieldsHelper::render(
$context,
'field.' . $layout, // normally just 'field.render'
['field' => $subfield]
)
);
json_decode functions
Μετατρέπουν ένα JSON string σε πίνακα ή object:
- https://www.w3schools.com/PHP/showphp.asp?filename=demo_json_decode4
- https://www.w3schools.com/PHP/showphp.asp?filename=demo_json_decode3
Χρώμα εικόνας μέσα στο subform
Ένα div με το χρώμα κάθε εικόνας μέσα στο subform:
<div style="width:20px;height:20px;display:block;background-color:<?php echo $timetavliti;?>"></div>