コード例 #1
0
 public function configure()
 {
     global $_FAPP;
     if (!$_FAPP['templating']) {
         global $configs;
     }
     $configs = new ModuleConfigs();
     $configs->getForModule('users');
     if ($_FAPP['templating']) {
         FabriqTemplates::set_var('module_configs', $configs);
     }
     if (isset($_POST['submit'])) {
         $configs[$configs->configs['anyoneCanRegister']]->val = $_POST['anyoneCanRegister'];
         $configs->update($configs->configs['anyoneCanRegister']);
         Fabriq::render('none');
         echo json_encode(array('success' => true));
     }
 }
コード例 #2
0
 /**
  * Returns whether or the module is enabled
  * @param string $module
  * @return bool
  */
 public static function enabled($module)
 {
     // make sure that fabriq is installed
     if (!Fabriq::installed()) {
         return false;
     }
     global $db;
     $sql = "SELECT enabled FROM fabmods_modules WHERE module = ?";
     $data = $db->prepare_select($sql, array('enabled'), array($module));
     if (count($data) == 0) {
         return FALSE;
     }
     return $data[0]['enabled'] == 1 ? TRUE : FALSE;
 }
コード例 #3
0
 public function show($entry)
 {
     if (FabriqModules::module('roles')->requiresPermission('view blog posts', 'blog')) {
         $blog = FabriqModules::new_model('blog', 'Blogs');
         if (!$entry || !is_numeric($entry)) {
             $blog->find(PathMap::arg(2));
         } else {
             $blog->find($entry);
         }
         if ($blog->title != '' && ($blog->locked == 0 || FabriqModules::module('roles')->requiresPermission('update blog posts', 'blog'))) {
             Fabriq::title('Blog - ' . $blog->title);
             $user = FabriqModules::new_model('users', 'Users');
             $user->find($blog->user);
             $blog->user = $user;
             $taxonomyEnabled = FabriqModules::enabled('taxonomy');
             FabriqModules::set_var('blog', 'taxonomyEnabled', $taxonomyEnabled);
             FabriqModules::set_var('blog', 'blog', $blog);
             $isAdmin = FabriqModules::module('roles')->userHasPermission('update blog posts', 'blog');
             FabriqModules::set_var('blog', 'isAdmin', $isAdmin);
         } else {
             FabriqModules::set_var('blog', 'notFound', true);
             Fabriq::title('Blog entry not found');
         }
     }
 }
コード例 #4
0
 public function itemsDestroy()
 {
     if (FabriqModules::module('roles')->requiresPermission('update menus', 'sitemenus')) {
         $menu = FabriqModules::new_model('sitemenus', 'Menus');
         $menu->find(PathMap::arg(3));
         if ($menu->menuName != '') {
             $menuItem = FabriqModules::new_model('sitemenus', 'MenuItems');
             $menuItem->find(PathMap::arg(4));
             if ($menuItem->itemName != '') {
                 Fabriq::title("Add item to menu \"{$menu->menuName}\"");
                 $menu->buildMenu();
                 FabriqModules::set_var('sitemenus', 'menu', $menu);
                 FabriqModules::set_var('sitemenus', 'found', true);
                 FabriqModules::set_var('sitemenus', 'moduleName', $this->name);
                 if (isset($_POST['submitted'])) {
                     $menuItem->destroy();
                     FabriqModules::set_var('sitemenus', 'submitted', true);
                 }
                 FabriqModules::set_var('sitemenus', 'menuItem', $menuItem);
             } else {
                 Fabriq::title("Menu item not found");
                 FabriqModules::set_var('sitemenus', 'found', false);
             }
         } else {
             Fabriq::title("Menu not found");
             FabriqModules::set_var('sitemenus', 'found', false);
         }
     }
 }
コード例 #5
0
 /**
  * Process everything the queue
  */
 public static function processQueue()
 {
     if (!count(self::$queue)) {
         return false;
     }
     $next = FabriqStack::dequeue();
     while ($next->controller == '') {
         if (!count(self::$queue)) {
             return false;
         }
         FabriqStack::processQueue();
     }
     self::$processing = $next;
     switch ($next->type) {
         case 'module':
             $module =& FabriqModules::module($next->controller);
             call_user_func_array(array($module, $next->action), $next->extra);
             if (Fabriq::render() != 'none' && FabriqModules::has_permission() && !FabriqModules::stopMappedRender()) {
                 FabriqTemplates::renderToBody($next);
             }
             break;
         case 'controller':
         default:
             PathMap::controller($next->controller);
             PathMap::action($next->action);
             $file = "app/controllers/{$next->controller}.controller.php";
             if (file_exists('sites/' . FabriqStack::site() . "/{$file}")) {
                 require_once 'sites/' . FabriqStack::site() . "/{$file}";
             } else {
                 require_once $file;
             }
             $c = "{$next->controller}_controller";
             $controller = new $c();
             $a = str_replace('.', '_', $next->action);
             if (!$controller->hasMethod($a)) {
                 FabriqStack::error(404);
             }
             call_user_func(array($controller, $a));
             FabriqTemplates::renderToBody($next);
             break;
     }
     if (count(self::$queue)) {
         FabriqStack::processQueue();
     }
 }
コード例 #6
0
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Fabriq Framework | <?php 
echo Fabriq::title();
?>
</title>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700' rel='stylesheet' type='text/css'>
<?php 
// process css queue
foreach (Fabriq::cssqueue() as $css) {
    echo "<link href=\"{$css['path']}{$css['css']}{$css['ext']}\" media=\"{$css['media']}\" rel=\"stylesheet\" type=\"text/css\" />\n";
}
// process javascript queue
foreach (Fabriq::jsqueue() as $js) {
    echo "<script language=\"JavaScript\" type=\"text/javascript\" src=\"{$js['path']}{$js['js']}{$js['ext']}\"></script>\n";
}
?>
<script type="text/javascript">
//<![CDATA[
jQuery.extend(Fabriq.settings, {"basePath": "<?php 
echo PathMap::base_path();
?>
", "cleanURLs": <?php 
echo PathMap::clean_urls_str();
?>
});
//]]>
</script>
<!--[if lt IE 9]>
コード例 #7
0
 public function getUserRoles()
 {
     Fabriq::render('none');
     $roles = array();
     if (isset($_SESSION[Fabriq::siteTitle()]['FABMOD_USERS_roles'])) {
         $roles = unserialize($_SESSION[Fabriq::siteTitle()]['FABMOD_USERS_roles']);
     }
     return $roles;
 }
コード例 #8
0
<h1>My Account</h1>
<h3>Welcome, <?php 
echo $_SESSION[Fabriq::siteTitle()]['FABMOD_USERS_displayname'];
?>
</h3>
<ul>
	<li><a href="<?php 
echo PathMap::build_path('users', 'changePassword');
?>
">Change password</a></li>
	<li><a href="<?php 
echo PathMap::build_path('users', 'updateAccount');
?>
">Update account</a></li>
	<li><a href="<?php 
echo PathMap::build_path('users', 'logout');
?>
">Log out</a></li>
</ul>
コード例 #9
0
 public function noPermission()
 {
     global $_FAPP;
     Fabriq::title('Access denied');
     FabriqModules::set_var('roles', 'controller', $_FAPP['cdefault']);
     FabriqModules::set_var('roles', 'action', $_FAPP['adefault']);
 }
コード例 #10
0
<?php

$found = FabriqModules::get_var('sitemenus', 'found');
?>
<h1><?php 
echo Fabriq::title();
?>
</h1>
<?php 
if ($found) {
    ?>
<p>
	<a href="<?php 
    echo PathMap::build_path('sitemenus', 'index');
    ?>
">Return to menu list</a> |
	<a href="<?php 
    echo PathMap::build_path('sitemenus', 'items', 'create', $menu->id);
    ?>
">Add menu item</a>
</p>
<p><?php 
    echo $menu->description;
    ?>
</p>
<?php 
    if (count($menu->items) > 0) {
        ?>
<ul>
	<?php 
        for ($i = 0; $i < count($menu->items); $i++) {
コード例 #11
0
 /**
  * Fetch the list of updates
  */
 public function fetchUpdates()
 {
     if (FabriqModules::module('roles')->hasRole('administrator')) {
         global $db;
         Fabriq::title('Fabriq Updates');
         // get the currently installed version
         $query = "SELECT version FROM fabriq_config ORDER BY installed DESC, version DESC LIMIT 1";
         $db->query($query);
         $data = mysqli_fetch_array($db->result);
         $installedVersion = $data['version'];
         FabriqModules::set_var('fabriqinstall', 'installedVersion', $installedVersion);
         // get the list of updates from the site
         try {
             $versions = json_decode(file_get_contents('http://fabriqframework.com/changelog/json'), TRUE);
             $available = array();
             $upToDate = false;
             if (is_array($versions) && count($versions) > 0) {
                 foreach ($versions as $version => $info) {
                     if ($version > $installedVersion) {
                         $available[$version] = $info;
                     }
                 }
                 if (count($available) == 0) {
                     $upToDate = true;
                 }
                 FabriqModules::set_var('fabriqinstall', 'available', $available);
                 FabriqModules::set_var('fabriqinstall', 'connected', true);
             } else {
                 FabriqModules::set_var('fabriqinstall', 'connected', false);
             }
             FabriqModules::set_var('fabriqinstall', 'upToDate', $upToDate);
         } catch (Exception $e) {
             FabriqModules::set_var('fabriqinstall', 'connected', false);
         }
     }
 }
コード例 #12
0
ファイル: index.php プロジェクト: ralivue/fabriqframework
 * 
 * Copyright (c)2013, Ralivue.com
 * Licensed under the BSD license.
 * http://fabriqframework.com/license
 */
// set error displaying for testing purposes
ini_set('display_errors', 1);
error_reporting(E_ALL & ~E_NOTICE);
// start sessions
session_start();
// require core Fabriq base classes
require_once 'core/Fabriq.core.php';
// determine which site should be servied
FabriqStack::determineSite();
// check to make sure application has been configured
$installed = Fabriq::installed();
// register default __autoload function
spl_autoload_register('fabriq_default_autoload');
// include core files
if ($installed) {
    if (file_exists('config/config.inc.php') && FabriqStack::site() == 'default') {
        require_once 'config/config.inc.php';
    } else {
        require_once 'sites/' . FabriqStack::site() . '/config/config.inc.php';
    }
}
require_once 'core/FabriqModules.core.php';
if (file_exists('sites/' . FabriqStack::site() . '/app/PathMap.class.php')) {
    require_once 'sites/' . FabriqStack::site() . '/app/PathMap.class.php';
} else {
    require_once 'app/PathMap.class.php';
コード例 #13
0
 /**
  * 500 server error
  */
 public function _500()
 {
     header("HTTP/1.0 500 Internal Server Error");
     Fabriq::title('500 Internal Server Error');
 }
コード例 #14
0
 public function configure()
 {
     Fabriq::render('view');
     $module = new Modules(PathMap::arg(2));
     $install_file = "modules/{$module->module}/{$module->module}.install.php";
     if (file_exists('sites/' . FabriqStack::site() . "/{$install_file}")) {
         $install_file = 'sites/' . FabriqStack::site() . "/{$install_file}";
     } else {
         if (!file_exists($install_file)) {
             throw new Exception("Module {$module->module} install file could not be found");
         }
     }
     require_once $install_file;
     eval("\$installer = new {$module->module}_install();");
     $installer->configure();
     FabriqModules::set_var($this->name, 'module', $module);
 }