Beispiel #1
0
});
// Сохранение контента частей страниц
Observer::observe('page_edit_after_save', function ($page) {
    $parts = Arr::get(Request::initial()->post(), 'part_content', array());
    $indexable_content = '';
    foreach ($parts as $id => $content) {
        $part = ORM::factory('page_part', (int) $id);
        if ((bool) $part->is_indexable) {
            $indexable_content .= ' ' . $part->content;
        }
        if ($content == $part->content) {
            continue;
        }
        $part->values(array('content' => $content))->save();
    }
    if (in_array($page->status_id, Model_Page_Front::get_statuses())) {
        Search::instance()->add_to_index('pages', $page->id, $page->title, $indexable_content, '', array('uri' => $page->get_uri()));
    } else {
        Search::instance()->remove_from_index('pages', $page->id);
    }
});
Observer::observe('update_search_index', function () {
    $pages = ORM::factory('page')->find_all();
    foreach ($pages as $page) {
        $indexable_content = '';
        $parts = ORM::factory('page_part')->where('page_id', '=', $page->id)->where('is_indexable', '=', 1)->find_all();
        foreach ($parts as $part) {
            $indexable_content .= ' ' . $part->content;
        }
        Search::instance()->add_to_index('pages', $page->id, $page->title, $indexable_content, '', array('uri' => $page->get_uri()));
    }