Verkorte if statement
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
CREATE TABLE IF NOT EXISTS `site_content` (
`content_id` tinyint(4) NOT NULL AUTO_INCREMENT,
`body_id` varchar(64) NOT NULL,
// andere rijen
`page_content` text,
`page_content2` text,
PRIMARY KEY (`content_id`),
KEY `pageId` (`page_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
`content_id` tinyint(4) NOT NULL AUTO_INCREMENT,
`body_id` varchar(64) NOT NULL,
// andere rijen
`page_content` text,
`page_content2` text,
PRIMARY KEY (`content_id`),
KEY `pageId` (`page_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Er staan 16 rijen in deze tafel. Van deze rijen zijn er 12 rijen die page_content gebruiken. Van deze 12 zijn er ook nog een 4 die page_content2 gebruiken. In de CMS gebruik ik momenteel de volgende if statements om te bepalen of page_content en/of page_content2 zichtbaar zijn:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php if($body_id == 'edit_page_contact' || $body_class == 'edit_safety_rules' || $body_class != 'edit_page_non_flyers' || + nog 11 tatements): ?>
<div class="form-group">
<label>Page content</label>
<textarea name="page_content" class="form-control summernote" placeholder="Page content">
<?= $details['page_content']; ?>
</textarea>
</div>
<?php endif; ?>
<div class="form-group">
<label>Page content</label>
<textarea name="page_content" class="form-control summernote" placeholder="Page content">
<?= $details['page_content']; ?>
</textarea>
</div>
<?php endif; ?>
Dit is echter nogal lang. Zou dit korter kunnen. Ik gebruikte eerst de isEmpty functie maar die gebruik ik om verschillende reden niet
Gewijzigd op 01/05/2018 18:00:41 door Donald Boers
Misschien kun je ook wat snoeien in de condities, dit:
Is logisch gezien equivalent aan:
Immers, als $body_class gelijk is aan 'edit_safety_rules' dan verschilt $body_class ook van 'edit_page_non_flyers'. Het een impliceert al het ander.
Alvast bedankt
Welke waardes kan $body_class hebben?
edit_contact_page
edit_non_flyers_page
edit_accomodation_page
edit_tranfers_page
etc
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php if($details['page_content']): ?>
<div class="form-group">
<label>Page content</label>
<textarea name="page_content" class="form-control summernote" placeholder="Page content">
<?= $details['page_content']; ?>
</textarea>
</div>
<?php endif; ?>
<div class="form-group">
<label>Page content</label>
<textarea name="page_content" class="form-control summernote" placeholder="Page content">
<?= $details['page_content']; ?>
</textarea>
</div>
<?php endif; ?>
- In je site_content tabel via een extra veld ook opslaan welke velden getoond moeten worden (0 = geen, 1 = alleen page_content, 2 = alleen page_content2, 3 = beiden)
- Een "magic" waarde opslaan in page_content en page_content2 voor als ze niet getoond moeten worden (er vanuit gaande dat als ze niet getoond moeten worden, de inhoud er ook niet zo toe doet). In plaats van dat je controleert of ie niet leeg is, controleer je of ie ongelijk is aan de "magic" waarde (zo ja: tonen).
Gewijzigd op 01/05/2018 22:41:31 door Rob Doemaarwat
Rob Doemaarwat op 01/05/2018 22:41:05:
Komt het erop neer dat je page_content en page_content2 alleen wilt laten zien als ze niet leeg zijn? Want dan kun je dat beter controleren:Als dat een beetje te kort door de bocht is (mag leeg zijn, moet toch getoond worden) heb je nog wat andere mogelijkheden:
- In je site_content tabel via een extra veld ook opslaan welke velden getoond moeten worden (0 = geen, 1 = alleen page_content, 2 = alleen page_content2, 3 = beiden)
- Een "magic" waarde opslaan in page_content en page_content2 voor als ze niet getoond moeten worden (er vanuit gaande dat als ze niet getoond moeten worden, de inhoud er ook niet zo toe doet). In plaats van dat je controleert of ie niet leeg is, controleer je of ie ongelijk is aan de "magic" waarde (zo ja: tonen).
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php if($details['page_content']): ?>
<div class="form-group">
<label>Page content</label>
<textarea name="page_content" class="form-control summernote" placeholder="Page content">
<?= $details['page_content']; ?>
</textarea>
</div>
<?php endif; ?>
<div class="form-group">
<label>Page content</label>
<textarea name="page_content" class="form-control summernote" placeholder="Page content">
<?= $details['page_content']; ?>
</textarea>
</div>
<?php endif; ?>
- In je site_content tabel via een extra veld ook opslaan welke velden getoond moeten worden (0 = geen, 1 = alleen page_content, 2 = alleen page_content2, 3 = beiden)
- Een "magic" waarde opslaan in page_content en page_content2 voor als ze niet getoond moeten worden (er vanuit gaande dat als ze niet getoond moeten worden, de inhoud er ook niet zo toe doet). In plaats van dat je controleert of ie niet leeg is, controleer je of ie ongelijk is aan de "magic" waarde (zo ja: tonen).
@ Rob Doemaarwat. Dat laatste, met die magic waarde, vindt ik een hele interessante benadering. Dat biedt namelijk de admin namelijk de mogelijkheid om indien gewenst, voor een bepaalde pagina een content blok aan of uit te zetten. Ik ga nog even de mogelijkheden op een rijtje zetten maar ik vind dit echt een verheldering
Toevoeging op 02/05/2018 00:02:14:
Donald Boers op 02/05/2018 00:01:00:
Rob Doemaarwat op 01/05/2018 22:41:05:
Komt het erop neer dat je page_content en page_content2 alleen wilt laten zien als ze niet leeg zijn? Want dan kun je dat beter controleren:Als dat een beetje te kort door de bocht is (mag leeg zijn, moet toch getoond worden) heb je nog wat andere mogelijkheden:
- In je site_content tabel via een extra veld ook opslaan welke velden getoond moeten worden (0 = geen, 1 = alleen page_content, 2 = alleen page_content2, 3 = beiden)
- Een "magic" waarde opslaan in page_content en page_content2 voor als ze niet getoond moeten worden (er vanuit gaande dat als ze niet getoond moeten worden, de inhoud er ook niet zo toe doet). In plaats van dat je controleert of ie niet leeg is, controleer je of ie ongelijk is aan de "magic" waarde (zo ja: tonen).
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php if($details['page_content']): ?>
<div class="form-group">
<label>Page content</label>
<textarea name="page_content" class="form-control summernote" placeholder="Page content">
<?= $details['page_content']; ?>
</textarea>
</div>
<?php endif; ?>
<div class="form-group">
<label>Page content</label>
<textarea name="page_content" class="form-control summernote" placeholder="Page content">
<?= $details['page_content']; ?>
</textarea>
</div>
<?php endif; ?>
- In je site_content tabel via een extra veld ook opslaan welke velden getoond moeten worden (0 = geen, 1 = alleen page_content, 2 = alleen page_content2, 3 = beiden)
- Een "magic" waarde opslaan in page_content en page_content2 voor als ze niet getoond moeten worden (er vanuit gaande dat als ze niet getoond moeten worden, de inhoud er ook niet zo toe doet). In plaats van dat je controleert of ie niet leeg is, controleer je of ie ongelijk is aan de "magic" waarde (zo ja: tonen).
@ Rob Doemaarwat. Dat laatste, met die magic waarde, vindt ik een hele interessante benadering. Dat biedt de site admin namelijk de mogelijkheid om, indien gewenst, voor een bepaalde pagina een content blok aan of uit te zetten. Ik ga nog even de mogelijkheden op een rijtje zetten maar ik vind dit echt een verheldering