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-ում այլևս չեն կրկնվել։
Աંગ્રլերեն լուծումը և այլ մոտիկները գտել եմ այստեղ՝