Problem: Content type: News Fields: - Title (Textbox) (Machine name: title) - Body (Textarea) (Machine name: body) - Logo (File) (Machine name: logo) - Featured (Checkbox) (Machine name: featured_news)
I need to show only one featured news ordered by changed date descending and other requirements.
How to implement it? When someone checked the Featured field of one news then already checked other featured news should be unchecked.
Here are my steps that I followed:
- Made a module (newscheckbox)
- Made functions
function newscheckbox_form_alter(&$form, $form_state, $form_id) {
if($form_id == 'MY_FORM_ID_REPLACE_WITH_UNDERSCORE') {
$form['#submit'][]='featured_news_update';
}
}
function featured_news_update(){
$nodeid=getFeaturedNews();
if($nodeid){
nodeSaveNews($nodeid);
}
}
function nodeSaveNews($nodeid){
$node = node_load($nodeid); // 1 is node id we want to load
$node->field_featured_news[$node->language][0]['value'] = '0';
node_save($node);
}
Somehow it is working, but is there any other good way to achieve it.