Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: javigomez/fof
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: dbhurley/fof
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Able to merge. These branches can be automatically merged.

Commits on Apr 12, 2013

  1. Add debug path support

    One of my favorite features from JHtml is the ability to load a different file if the site is in debug mode, which is useful if you default to loading compressed CSS/JS files and need to debug those.  Borrowing a little logic from JHtml::includeRelativeFiles(), I've added the code to do this in FOF.
    mbabker committed Apr 12, 2013
    Copy the full SHA
    f8c8f26 View commit details
  2. Use API to load parent form classes

    Saves a couple of lines ;-)
    mbabker committed Apr 12, 2013
    Copy the full SHA
    a8bcb54 View commit details
  3. Merge pull request #2 from mbabker/patch-1

    Add debug path support. Thank you, Michael!
    Nicholas K. Dionysopoulos committed Apr 12, 2013
    Copy the full SHA
    5279472 View commit details
  4. Merge pull request #3 from mbabker/patch-2

    Use API to load parent form classes. Thank you, Michael!
    Nicholas K. Dionysopoulos committed Apr 12, 2013
    Copy the full SHA
    111f75c View commit details

Commits on Apr 13, 2013

  1. Updated README.md to reflect the current state of FOF

    Nicholas K. Dionysopoulos committed Apr 13, 2013
    Copy the full SHA
    8a622c0 View commit details
  2. Fixing a couple of typos in Michael's code

    Nicholas K. Dionysopoulos committed Apr 13, 2013
    Copy the full SHA
    8ac45cc View commit details
  3. More fixes on Michael's code

    Nicholas K. Dionysopoulos committed Apr 13, 2013
    Copy the full SHA
    09f55fc View commit details

Commits on Apr 14, 2013

  1. Copy the full SHA
    48131bb View commit details

Commits on Apr 15, 2013

  1. Copy the full SHA
    83a4e34 View commit details
  2. Copy the full SHA
    de9ba04 View commit details

Commits on Apr 17, 2013

  1. Do not return JSON-encoded true/false on action tasks (e.g. save, app…

    …ly...) when using the JSON format. Use HTTP status codes instead.
    Nicholas K. Dionysopoulos committed Apr 17, 2013
    Copy the full SHA
    9c612bd View commit details
  2. Assume that an empty format URL parameter means "html", as per Joomla…

    …!'s convention
    Nicholas K. Dionysopoulos committed Apr 17, 2013
    Copy the full SHA
    12bbe6c View commit details
  3. CSV format handles arrays and objects without throwing notices

    Nicholas K. Dionysopoulos committed Apr 17, 2013
    Copy the full SHA
    fe3e4f5 View commit details

Commits on Apr 18, 2013

  1. The very first start of unit tests, currently testing only FOFInflector

    Nicholas K. Dionysopoulos committed Apr 18, 2013
    Copy the full SHA
    ed32fba View commit details

Commits on Apr 19, 2013

  1. Fixed PHP notices when $config is not an array

    Nicholas K. Dionysopoulos committed Apr 19, 2013
    Copy the full SHA
    36195e5 View commit details
  2. Controller autoloading with smart class aliasing

    Nicholas K. Dionysopoulos committed Apr 19, 2013
    Copy the full SHA
    f71c63a View commit details
  3. Model autoloading

    Nicholas K. Dionysopoulos committed Apr 19, 2013
    Copy the full SHA
    5ef0a43 View commit details
  4. Autoload Views

    Nicholas K. Dionysopoulos committed Apr 19, 2013
    Copy the full SHA
    f94a256 View commit details
  5. Autoload Tables

    Nicholas K. Dionysopoulos committed Apr 19, 2013
    Copy the full SHA
    52cced2 View commit details
  6. Autoload Toolbar

    Nicholas K. Dionysopoulos committed Apr 19, 2013
    Copy the full SHA
    afa7d77 View commit details
  7. Only apply the component autoloader to components which have an fof.x…

    …ml file in their back-end root directory (prevents conflict with non-FOF components)
    Nicholas K. Dionysopoulos committed Apr 19, 2013
    Copy the full SHA
    d1c2062 View commit details
  8. Merge branch 'refs/heads/autoloader-refactor'

    Nicholas K. Dionysopoulos committed Apr 19, 2013
    Copy the full SHA
    0a5a9aa View commit details
  9. Typo

    Nicholas K. Dionysopoulos committed Apr 19, 2013
    Copy the full SHA
    b770fa3 View commit details
  10. If a save / delete / copy / etc operation failed, a 403 error would b…

    …e returned instead of reloading the page and showing the error message
    Nicholas K. Dionysopoulos committed Apr 19, 2013
    Copy the full SHA
    c7e711f View commit details
  11. Infinite loop in Joomla! 3 when a save / apply operation failed, resu…

    …lting in memory exhaustion
    Nicholas K. Dionysopoulos committed Apr 19, 2013
    Copy the full SHA
    b8d5a09 View commit details

Commits on Apr 20, 2013

  1. Disable the component autoloader until I can get it properly tested

    Nicholas K. Dionysopoulos committed Apr 20, 2013
    Copy the full SHA
    6883029 View commit details

Commits on Apr 22, 2013

  1. Updated XML file

    Nicholas K. Dionysopoulos committed Apr 22, 2013
    Copy the full SHA
    c0587e9 View commit details
  2. Transparent authentication broken in 2.0.5

    Nicholas K. Dionysopoulos committed Apr 22, 2013
    Copy the full SHA
    40a6b41 View commit details

Commits on Apr 26, 2013

  1. Copy the full SHA
    d14ac5c View commit details
  2. Fix git ignore and add ignores

    I'm adding .idea for PHPStorm projects and .DS_STORE for MAC computers
    javigomez committed Apr 26, 2013
    Copy the full SHA
    dd56da6 View commit details
  3. Fix code style in inflector

    javigomez committed Apr 26, 2013
    Copy the full SHA
    e1503a4 View commit details
  4. Merge pull request #4 from javigomez/fix_gitignore

    Fix git ignore and add ignores
    Nicholas K. Dionysopoulos committed Apr 26, 2013
    Copy the full SHA
    19fc96b View commit details
  5. Merge pull request #6 from javigomez/fix_inflector_code_style

    Fix code style in inflector
    Nicholas K. Dionysopoulos committed Apr 26, 2013
    Copy the full SHA
    d46ab27 View commit details
  6. Making Akeeba Strapper compatible with Joomla! 3.1.0

    Nicholas K. Dionysopoulos committed Apr 26, 2013
    Copy the full SHA
    f44561a View commit details
  7. Fixes #5

    Nicholas K. Dionysopoulos committed Apr 26, 2013
    Copy the full SHA
    ecc6929 View commit details

Commits on Apr 27, 2013

  1. Compatibility with Joomla! 3.1

    Nicholas K. Dionysopoulos committed Apr 27, 2013
    Copy the full SHA
    4197234 View commit details
  2. Fix array_unshift in prefixLink() of the toolbar

    Jurian Even committed Apr 27, 2013
    Copy the full SHA
    703b612 View commit details
  3. Merge pull request #7 from Twentronix/prefixLinkFix

    Fix array_unshift in prefixLink() of the toolbar. Thank you, Jurian!
    Nicholas K. Dionysopoulos committed Apr 27, 2013
    Copy the full SHA
    66ddc5f View commit details
  4. Renaming .j30. files to .j3. to reflect compatibility with Joomla! 3.1

    Nicholas K. Dionysopoulos committed Apr 27, 2013
    Copy the full SHA
    41868d9 View commit details

Commits on Apr 28, 2013

  1. Have FOFFormHeaderFieldsearchable recognize more buttons deactivation…

    … attributes: no, false, 0
    Nicholas K. Dionysopoulos committed Apr 28, 2013
    Copy the full SHA
    3bb09d6 View commit details

Commits on Apr 30, 2013

  1. Notice thrown in FOFTable. Thank you, Jurian!

    Nicholas K. Dionysopoulos committed Apr 30, 2013
    Copy the full SHA
    e695c5b View commit details
  2. Copy the full SHA
    2e91209 View commit details
  3. Copy the full SHA
    7d08626 View commit details
  4. Copy the full SHA
    480d951 View commit details
  5. Null should be lowercase

    According to Joomla Code style sniffer
    javigomez committed Apr 30, 2013
    Copy the full SHA
    625357d View commit details
  6. add space after if

    javigomez committed Apr 30, 2013
    Copy the full SHA
    afedfef View commit details
  7. some general automatic code style fixes

    - aling variable assignations
    - add empty line before return statement
    - add space right after foreach,else if...
    javigomez committed Apr 30, 2013
    Copy the full SHA
    4c495a3 View commit details
  8. Copy the full SHA
    8038718 View commit details
  9. More code style fies

    javigomez committed Apr 30, 2013
    Copy the full SHA
    80d2e33 View commit details
  10. Merge pull request #8 from javigomez/fix_code_style_in_fof_table

    Fix code style in FOFtable
    Nicholas K. Dionysopoulos committed Apr 30, 2013
    Copy the full SHA
    18fe7ae View commit details
Showing with 5,662 additions and 521 deletions.
  1. +7 −5 .gitignore
  2. +8 −1 README.md
  3. 0 {tests → _old_tests}/unit/JoomlaDatabaseTestCase.php
  4. 0 {tests → _old_tests}/unit/JoomlaTestCase.php
  5. 0 {tests → _old_tests}/unit/bootstrap.php
  6. 0 {tests → _old_tests}/unit/config.php-dist
  7. 0 {tests → _old_tests}/unit/index.html
  8. 0 {tests → _old_tests}/unit/phpunit.php
  9. 0 {tests → _old_tests}/unit/phpunit.xml
  10. 0 {tests → _old_tests}/unit/stubs/index.html
  11. 0 {tests → _old_tests}/unit/stubs/libraries/index.html
  12. 0 {tests → _old_tests}/unit/stubs/libraries/joomla/error/error.php
  13. 0 {tests → _old_tests}/unit/stubs/libraries/joomla/error/index.html
  14. 0 {tests → _old_tests}/unit/stubs/libraries/joomla/index.html
  15. 0 {tests → _old_tests}/unit/stubs/libraries/test.xml
  16. 0 {tests → _old_tests}/unit/stubs/test.xml
  17. 0 {tests → _old_tests}/unit/suite/fof/controllerTest.php
  18. 0 {tests → _old_tests}/unit/suite/fof/inflectorTest.php
  19. 0 {tests → _old_tests}/unit/suite/fof/tableTest.php
  20. 0 {tests → _old_tests}/unit/suite/index.html
  21. BIN assets/logo.png
  22. +6 −3 build/phingext/ZipmeTask.php
  23. +16 −94 build/templates/include.php
  24. +2 −0 build/templates/lib_fof.xml
  25. +2,377 −0 documentation/fof-developers-guide.xml
  26. BIN documentation/images/component-structure.png
  27. +737 −0 fof/autoloader/component.php
  28. +109 −0 fof/autoloader/fof.php
  29. +66 −0 fof/config/domain/dispatcher.php
  30. +38 −0 fof/config/domain/interface.php
  31. +211 −0 fof/config/domain/views.php
  32. +1 −0 fof/config/index.html
  33. +238 −0 fof/config/provider.php
  34. +338 −99 fof/controller/controller.php
  35. +33 −26 fof/dispatcher/dispatcher.php
  36. +97 −0 fof/form/field/button.php
  37. +88 −0 fof/form/field/captcha.php
  38. +171 −0 fof/form/field/model.php
  39. +1 −4 fof/form/field/text.php
  40. +2 −1 fof/form/header/fieldsearchable.php
  41. +144 −118 fof/inflector/inflector.php
  42. +1 −1 fof/input/input.php
  43. +134 −4 fof/model/model.php
  44. +36 −4 fof/render/joomla.php
  45. +58 −17 fof/render/strapper.php
  46. +269 −124 fof/table/table.php
  47. +42 −5 fof/template/utils.php
  48. +19 −1 fof/toolbar/toolbar.php
  49. +30 −2 fof/view/csv.php
  50. +9 −0 fof/view/html.php
  51. +4 −0 fof/view/json.php
  52. +10 −1 fof/view/view.php
  53. +6 −0 strapper/akeeba_strapper/js/namespace.js
  54. +1 −1 strapper/akeeba_strapper/less/{bootstrap.j30.less → bootstrap.j3.less}
  55. 0 strapper/akeeba_strapper/less/{strapper.j30.less → strapper.j3.less}
  56. +2 −10 strapper/akeeba_strapper/strapper.php
  57. +69 −0 tests/bootstrap.php
  58. +14 −0 tests/config.dist.php
  59. +268 −0 tests/unit/suites/fof/inflector/inflectorTest.php
12 changes: 7 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -7,11 +7,13 @@ release/*.zip
.buildpath
.settings/
.project
.DS_STORE
.idea/
/fof/lib_fof.xml
tests/unit/config.php
<<<<<<< HEAD

=======
>>>>>>> refs/heads/staging
refs/heads/staging
/build/build.properties
/build/templates/release.json
/build/templates/release*.json
/tests/config.php

/documentation/*.xml~
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
# What is FOF?

FOF (Framework on Framework) is a rapid application development framework for Joomla!. Unlike other frameworks it is not standalone. It extends Joomla!'s MVC instead of replacing it. This means that you don't have to relearn writing Joomla! extensions. Instead, you can start being productive from the first day you're using it. Our goal is to always support the officially supported LTS versions of Joomla! and not break backwards compatibility without a clear deprecation and migration path.
FOF (Framework on Framework) is a rapid application development framework for Joomla!.
Unlike other frameworks it is not standalone. It extends the Joomla! Platform
instead of replacing it, featuring its own forked and extended version of the
MVC classes, keeping a strong semblance to the existing Joomla! MVC API. This means
that you don't have to relearn writing Joomla! extensions. Instead, you can start
being productive from the first day you're using it. Our goal is to always support
the officially supported LTS versions of Joomla! and not break backwards compatibility
without a clear deprecation and migration path.

# Free Software means collaboration

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file modified assets/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 6 additions & 3 deletions build/phingext/ZipmeTask.php
Original file line number Diff line number Diff line change
@@ -10,9 +10,9 @@
/**
* Creates a JPA archive
* @author Nicholas K. Dionysopoulos
* @version $Id: ZipmeTask.php 188 2010-07-18 14:15:12Z nikosdion $
* @version $Id: ZipmeTask.php 409 2011-01-24 09:30:22Z nikosdion $
* @package akeebabuilder
* @copyright Copyright (c)2009-2013 Nicholas K. Dionysopoulos
* @copyright Copyright (c)2009-2011 Nicholas K. Dionysopoulos
* @license GNU GPL version 3 or, at your option, any later version
*/
class ZipmeTask extends MatchingTask {
@@ -155,6 +155,9 @@ public function main() {
if(substr($fileDir, -4) == '.svn') continue;
if($fileBase == '.svn') continue;
if(substr( rtrim($fileAbsolutePath,'/\\'), -4 ) == '.svn' ) continue;
if($fileBase == '.gitignore') continue;
if(strtolower($fileBase) == '.ds_store') continue;
if($fileBase == 'Thumbs.db') continue;

//echo "\t\t$fileAbsolutePath\n";

@@ -169,7 +172,7 @@ public function main() {
$zip->add($filesToZip,
PCLZIP_OPT_ADD_PATH, is_null($this->prefix) ? '' : $this->prefix ,
PCLZIP_OPT_REMOVE_PATH, $fsBasedir->getPath() );

}

} catch (IOException $ioe) {
110 changes: 16 additions & 94 deletions build/templates/include.php
Original file line number Diff line number Diff line change
@@ -1,104 +1,26 @@
<?php
/**
* @package FrameworkOnFramework
* @copyright Copyright (c)2010-2012 Nicholas K. Dionysopoulos
* @license GNU General Public License version 2, or later
* @package FrameworkOnFramework
* @subpackage include
* @copyright Copyright (c)2010-2012 Nicholas K. Dionysopoulos
* @license GNU General Public License version 2, or later
*
* Initializes FOF
*/
// Protect from unauthorized access

defined('_JEXEC') or die();

/**
* Automatic registration of FrameworkOnFramework's classes with JLoader
*
* FrameworkOnFramework is a set of classes whcih extend Joomla! 1.5 and later's
* MVC framework with features making maintaining complex software much easier,
* without tedious repetitive copying of the same code over and over again.
*/
if (!defined('FOF_INCLUDED'))
{
define('FOF_INCLUDED', '##VERSION##');

function _fof_autoloader($class_name)
{
static $fofPath = null;

// Make sure the class has a FOF prefix
if (substr($class_name, 0, 3) != 'FOF')
return;

if (is_null($fofPath))
{
$fofPath = dirname(__FILE__);
}

// Remove the prefix
$class = substr($class_name, 3);

// Change from camel cased (e.g. ViewHtml) into a lowercase array (e.g. 'view','html')
$class = preg_replace('/(\s)+/', '_', $class);
$class = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $class));
$class = explode('_', $class);

// First try finding in structured directory format (preferred)
$path = $fofPath . '/' . implode('/', $class) . '.php';
if (@file_exists($path))
{
include_once $path;
}

// Then try the duplicate last name structured directory format (not recommended)
if (!class_exists($class_name, false))
{
$lastPart = array_pop($class);
array_push($class, $lastPart);
$path = $fofPath . '/' . implode('/', $class) . '/' . $lastPart . '.php';
if (@file_exists($path))
{
include_once $path;
}
}

// If it still fails, try looking in the legacy folder (will be used in FOF2 for backwards compatibility)
if (!class_exists($class_name, false))
{
$path = $fofPath . '/legacy/' . implode('/', $class) . '.php';
if (@file_exists($path))
{
include_once $path;
}
}

// If that failed, try the legacy flat directory structure (will be removed in FOF2)
if (!class_exists($class_name, false))
{
$path = $fofPath . '/' . implode('.', $class) . '.php';
if (@file_exists($path))
{
include_once $path;
}
}
}

// Register FOF's autoloader
if (function_exists('spl_autoload_register'))
{
// Joomla! is using its own autoloader function which has to be registered first...
if (function_exists('__autoload'))
spl_autoload_register('__autoload');
// ...and then register ourselves.
spl_autoload_register('_fof_autoloader');
} else
{
// Guys, 2012 is almost over at the time of this writing. If you have a
// host which doesn't support SPL yet, SWITCH HOSTS!
throw new Exception('Framework-on-Framework requires the SPL extension to be loaded and activated', 500);
}

// This is the old method (using JLoader). It is now obsolete. JLoader might be removed in future versions of Joomla!.
function fofRegisterClasses()
{
throw new Exception('fofRegisterClasses was never designed to be called directly. Moreover, it is now obsolete and will be removed in FOF2. Please remove the call to it from your code.', 500);
}
// Register a debug log
if (defined('JDEBUG') && JDEBUG)
{
JLog::addLogger(array('text_file' => 'fof.log.php'), JLog::ALL, array('fof'));
}

}
?>
// Register the FOF autoloader
require_once __DIR__ . '/autoloader/fof.php';
FOFAutloaderFof::init();
}
2 changes: 2 additions & 0 deletions build/templates/lib_fof.xml
Original file line number Diff line number Diff line change
@@ -14,6 +14,8 @@
<packagerurl>https://www.AkeebaBackup.com/download.html</packagerurl>

<files folder="fof">
<folder>autoloader</folder>
<folder>config</folder>
<folder>controller</folder>
<folder>dispatcher</folder>
<folder>encrypt</folder>
Loading