Пример #1
0
 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();
 }
Пример #2
0
 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')));
     }
 }
Пример #3
0
 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();
 }
Пример #4
0
 /**
  * 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;
 }
Пример #5
0
 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));
             }
         }
     }
 }
Пример #6
0
 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');
 }
Пример #7
0
 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();
 }
Пример #8
0
 /**
  * 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');
 }
Пример #9
0
<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>
Пример #10
0
    <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'];
Пример #11
0
 protected function preAdmin()
 {
     if (class_exists('\\Search\\Factory')) {
         \Search\Factory::registerSource(new \Search\Models\Source(array('id' => 'pages', 'title' => 'Pages', 'class' => '\\Pages\\Models\\Pages')));
     }
 }