Views-ում ինչպես հեռացնել նոդերի կրկնությունները, երբ օգտագործվում են բազմակի արժեքներ ունեցող դաշտեր
Վերջերս ցուցադրում էի ընկերությունների ցանկը Views-ի միջոցով, և ինչ-որ հետաքննությամբ Views-ն կրկնօրինակում էր նույն գրառումները 1-3 անգամ, ինչը բավականին տարօրինակ էր։ Փորձելով հեռացնել ֆիլտրերն ու դասավորումներն, այնուամենայնիվ կա կրկնօրինակություն։ Պроблема заключается в том, что նոդերը ունեցել են բազմակի արժեքներով ամսաթիվ դաշտ և այդ ընկերությունների նոդերը կրկնվում էին։ Ներկայացնում եմ իմ՝ և, հնարավոր է, ձեր խնդրի լուծումը՝ Views-ում կրկնօրինակման խնդիրից ազատվելու համար․
Ստեղծում ենք նոր մոդուլ, ես կոչելու եմ այն sitemade։ sitemade.info ֆայլի բովանդակությունը․
name = Views Remove Duplicates description = Removes duplicate nodes. Requires editing the module file to identify the views you want to affect. package = "Views" core = 6.x dependencies[] = views
Հետո ստեղծում եմ sitemade.module ֆայլը․
<?php
function sitemade_views_pre_render(&$view){
$used_nids = array();
if ($view->name == 'companies'){
if ($view->current_display == 'page_1'){
foreach ($view->result as $row){
if (!in_array($row->nid, $used_nids)){
$new_view_result[] = $row;
$used_nids[] = $row->nid;
}
}
$view->result = $new_view_result;
}
}
}
?>
Այստեղ 'companies'-ը իմ View-ի անունն է, իսկ 'page_1'-ը իմ view-ի էջի display-ի անունը։ Այս կոդի տեղադրմամբ նոդերը View-ում այլևս չեն կրկնվել։
Աંગ્રլերեն լուծումը և այլ մոտիկները գտել եմ այստեղ՝