protected function preAdmin() { parent::preAdmin(); if (class_exists('\\Search\\Factory')) { \Search\Factory::registerSource(new \Search\Models\Source(array('id' => 'users', 'title' => 'Users', 'class' => '\\Users\\Models\\Users', 'priority' => 20))); } static::setActive(); }
protected function preAdmin() { if (class_exists('\\Modules\\Factory')) { \Modules\Factory::registerPositions(array('blog-tag-cloud')); } if (class_exists('\\Search\\Factory')) { \Search\Factory::registerSource(new \Search\Models\Source(array('id' => 'blog.posts', 'title' => 'Blog Posts', 'class' => '\\Blog\\Models\\Posts'))); } }
protected function runAdmin() { $f3 = \Base::instance(); if (!is_dir($f3->get('PATH_ROOT') . 'public/AdminTheme')) { $publictheme = $f3->get('PATH_ROOT') . 'public/AdminTheme'; $admintheme = $f3->get('PATH_ROOT') . 'vendor/dioscouri/f3-admin/AdminTheme'; $res = symlink($admintheme, $publictheme); } \Dsc\System::instance()->get('theme')->setTheme('AdminTheme', $this->dir . '/src/Admin/Theme/'); if (class_exists('\\Modules\\Factory')) { \Modules\Factory::registerPositions(array('admin-dashboard')); } if (class_exists('\\Search\\Factory')) { \Search\Factory::registerSource(new \Search\Models\Source(array('id' => 'navigation', 'title' => 'Navigation Items', 'class' => '\\Admin\\Models\\Navigation', 'priority' => 40))); } parent::runAdmin(); }
/** * Gets the current selected source * * @throws \Exception * @return unknown */ public static function current() { // Get the default source $default_source = \Search\Factory::defaultSource(); // Get the current selected source (use the state), fallback = default $current_source = (new \Search\Models\Source())->populateState()->getState('filter.search', $default_source); // find the source if ($source_exists = \Search\Factory::source($current_source)) { $class = $source_exists['class']; } elseif ($source_exists = \Search\Factory::source($default_source)) { $class = $source_exists['class']; } if (empty($class) || !class_exists($class)) { throw new \Exception('Search Type Not Found'); } return $source_exists; }
protected function preAdmin() { if (class_exists('\\Search\\Factory')) { \Search\Factory::registerSource(new \Search\Models\Source(array('id' => 'modules', 'title' => 'Modules', 'class' => '\\Modules\\Models\\Modules', 'priority' => 40))); } $path = $this->app->hive()['PATH']; if (strpos($path, '/admin/module/edit') !== false) { // Bootstrap the reports \Modules\Models\Conditions::bootstrap(); } $custom_nav_items = (new \Admin\Models\Navigation())->emptyState()->setState('filter.root', false)->setState('filter.published', true)->setState('order_clause', array('tree' => 1, 'lft' => 1))->setCondition('details.type', 'module-custom')->getList(); if ($custom_nav_items) { foreach ($custom_nav_items as $nav_item) { if ($position = $nav_item->{'details.module_position'}) { \Modules\Factory::registerPositions(array($position)); } } } }
protected function filteredSearch() { $q = $this->input->get('q', null, 'default'); try { $current_source = \Search\Models\Source::current(); $paginated = \Search\Models\Source::paginate($current_source, $q); $count = 0; foreach (\Search\Factory::sources() as $key => $source) { $count = $count + \Search\Models\Source::count($source, $q); } } catch (\Exception $e) { $this->app->error(404, 'Search Type Not Found'); return; } $this->app->set('current_source', $current_source); $this->app->set('paginated', $paginated); $this->app->set('count', $count); $this->app->set('q', $q); $this->app->set('meta.title', trim('Search ' . $current_source['title'])); echo $this->theme->render('Search/Admin/Views::search/index.php'); }
protected function preSite() { if (class_exists('\\Search\\Factory')) { \Search\Factory::registerSource(new \Search\Models\Source(array('id' => 'shop.products', 'title' => 'Products', 'class' => '\\Shop\\Models\\Products'))); } if (class_exists('\\Minify\\Factory')) { \Minify\Factory::registerPath($this->dir . "/src/"); $files = array('Shop/Assets/js/class.js', 'Shop/Assets/js/validation.js', 'Shop/Assets/js/site.js', 'Shop/Assets/js/jquery.popupoverlay.js', 'Shop/Assets/js/jquery.scrollTo.js', 'Shop/Assets/js/jquery.payment.js', 'Shop/Assets/js/jquery.star-rating.js'); if ($check_campaigns = \Dsc\System::instance()->get('session')->get('shop.check_campaigns')) { $files[] = 'Shop/Assets/js/check_campaigns.js'; } foreach ($files as $file) { \Minify\Factory::js($file); } $files = array('Shop/Assets/css/jquery.star-rating.css'); foreach ($files as $file) { \Minify\Factory::css($file); } } $app = \Base::instance(); $request_kmi = \Dsc\System::instance()->get('input')->get('kmi', null, 'string'); $cookie_kmi = $app->get('COOKIE.kmi'); if (!empty($request_kmi)) { if ($cookie_kmi != $request_kmi) { $app->set('COOKIE.kmi', $request_kmi); } $cart = \Shop\Models\Carts::fetch(); if (empty($cart->user_email)) { $cart->user_email = $request_kmi; $cart->store(); } } // symlink to the public folder if necessary if (!is_dir($this->app->get('PATH_ROOT') . 'public/ShopAssets')) { $public_assets = $this->app->get('PATH_ROOT') . 'public/ShopAssets'; $app_assets = realpath(__DIR__ . '/src/Shop/Assets'); $res = symlink($app_assets, $public_assets); } static::diagnostics(); }
/** * Searches All sources get two results per section * TODO maybe the number of results is configurable in settings? */ protected function allSearch() { $results = array(); $q = trim($this->input->get('q', null, 'default')); try { if (!empty($q)) { $sources = \Search\Factory::sources(); foreach ($sources as $key => $source) { $paginated = \Search\Models\Source::paginate($source, $q); if (!empty($paginated->items)) { $results[$source['title']] = array_slice($paginated->items, 0, 2); } } \Dsc\Activities::track('Performed Search', array('Search Term' => $q, 'Search Source' => 'All', 'page_number' => '1', 'app' => 'search')); } } catch (\Exception $e) { \Dsc\System::addMessage($e->getMessage(), 'error'); } $this->app->set('current_source', 'all'); $this->app->set('results', $results); $this->app->set('q', $q); $this->app->set('meta.title', trim('Search All')); echo $this->theme->render('Search/Site/Views::search/all.php'); }
<h3 class="">Search Settings</h3> <hr /> <div class=""> <div class="form-group"> <label>Source</label> <div class="col-md-7"> <select name="search[source]"> <?php $options[] = array('text' => 'All', 'value' => 'all'); $sources = \Search\Factory::sources(); foreach ($sources as $source) { $options[] = array('text' => $source['title'], 'value' => (string) $source['id']); } ?> <?php echo \Dsc\Html\Select::options($options, $flash->old('search.source')); ?> </select> </div> </div> <!-- /.form-group --> </div>
<div class="col-sm-2 col-md-2"> <ul class="nav nav-pills nav-stacked"> <li class="active"> <a href="./admin/search?q=<?php echo $q; ?> "> Global Search <span class="badge pull-right"><?php echo (int) $count; ?> </span> </a> </li> <?php foreach (\Search\Factory::sources() as $source) { ?> <li> <a href="./admin/search?q=<?php echo $q; ?> &filter[search]=<?php echo $source['id']; ?> "> <span class="badge pull-right"><?php echo (int) $counts[$source['title']]; ?> </span> <?php echo $source['title'];
protected function preAdmin() { if (class_exists('\\Search\\Factory')) { \Search\Factory::registerSource(new \Search\Models\Source(array('id' => 'pages', 'title' => 'Pages', 'class' => '\\Pages\\Models\\Pages'))); } }