Өзгертпелі көзді қосу кезінде тақырыптар көрсетілмейді

Құжаттарға сәйкес пайдаланушы көздерін қосқан кезде https://cretcms.com/docs/plugins/hooks -reference # modifyEntrySources келесідей:

foreach($this->regions as $region)
{
    $sources[] = ['heading' => $region['title']];
    $sources['news:'.$region['id']] = [
        'label'    => 'News',
        'criteria' => ['relatedTo' => $region['id'], 'section' => 'news', 'editable' => true],
        'data'     => array('type' => SectionType::Channel, 'handle' => 'news'),
        'defaultSort' => array('postDate', 'desc'),
    ];
    $sources['notifications:'.$region['id']] = [
        'label'    => 'Notifications',
        'criteria' => ['relatedTo' => $region['id'], 'section' => 'notifications', 'editable' => true],
        'data'     => array('type' => SectionType::Channel, 'handle' => 'notifications'),
        'defaultSort' => array('postDate', 'desc'),
    ];
}

тақырыптар көздер арасында көрсетілмейді. Мен бірдеңе жетіспеймін бе?

UPDATE: Ok, I've managed to figure out that it is to do with ElementIndexSettings. In ElementIndexesService->getSources() is a check for sourceOrder in the settings...

// Should we output the sources in a custom order?
if (isset($settings['sourceOrder']))
...

Егер логиканы қайталамайтын болсам, ешқандай параметрлер болмаса, тақырыптарым күтілгендей көрсетіледі.

Сондықтан менің сұрағым бірнеше өзгерді, біріншіден, бұл күтілетін мінез-құлық? Егер мен осы дереккөздерді белгілі бір пайдаланушыларға ғана қолдансам, индекс баптауларын менің плагиннің init функциясынан уақытша өшіре аламын ба?

Рахмет.

0

1 жауаптар

Сондықтан, менің тақырыптарым қазір көрсетіледі, бірақ бұл жауапқа қарағанда кемшіліктерді жою.

Basically when the ElementIndexesService->getSources() function finds element index settings it then works through the sources ordering them and applying headings based on the settings.

Менің көздерім плагинмен қосылатын әдеттегі болып табылатындықтан, олар параметрлерде жоқ. Осыған байланысты, олар тізімнің соңына араласып, тақырыптар жойылады.

Менің түзетуім - оларды дерекқордағы параметрлерге қосу. Мұны пайдалана отырып, ...

$elementIndexesService = new ElementIndexesService();
$settings = $elementIndexesService->getSettings(ElementType::Entry);
// and
$elementIndexesService->setSettings(ElementType::Entry, $settings);

$settings consists of two sub arrays containing the sources and their order. By adding my custom sources to these everything appears in the entries index as planned.

Мінез-құлық көздеріне әсер ететін жазбалар жасалса немесе жойылса, қазір оны сақтау керек. Сондай-ақ, индекстік баптаулар модальы дерекқордағы параметрлерді қайта жазады, сондықтан олар өзгертілсе, оны қолдауға тура келеді.

1
қосылды