Browse Source

Umzug zu gitlab

master
Carsten Goetzinger 5 years ago
commit
f530776a20
  1. 4
      README.md
  2. 139
      SimpleAjax.php
  3. 152
      SimpleAjaxFrontend.php
  4. 38
      composer.json

4
README.md

@ -0,0 +1,4 @@
# simple_ajax #
Fork der Contao-Erweiterung aus dem Contao Extension Repository (https://contao.org/de/extension-list/view/simple_ajax.de.html).
Fork wurde erzeugt, um die Erweiterung im Composer veröffentlichen zu können.

139
SimpleAjax.php

@ -0,0 +1,139 @@
<?php
/**
* Contao Open Source CMS
* Copyright (C) 2005-2011 Leo Feyer
*
* Formerly known as TYPOlight Open Source CMS.
*
* This program is free software: you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program. If not, please visit the Free
* Software Foundation website at <http://www.gnu.org/licenses/>.
*
* PHP version 5
* @copyright Leo Unglaub 2012
* @author Leo Unglaub <leo@leo-unglaub.net>
* @package simple_ajax
* @license LGPL
*/
// simple trick for Contao < 2.10
$arrPost = $_POST;
unset($_POST);
// inizialize the contao framework
define('TL_MODE', 'FE');
require('system/initialize.php');
// write the post data back into the array
$_POST = $arrPost;
/**
* Class SimpleAjax
* Contain methods to catch ajax requests and send responses back to the client.
*
* Description
* ```````````
*
* The usage of the SimpleAjax extensions is very easy. The extension provides
* the hook $GLOBALS['TL_HOOKS']['simpleAjax'] for extension developers. You
* simply have to register your class/method and the extension will call
* your class if there is an incomming ajax request.
*
* You simply have to deside if it's an ajax request for your module and return
* the data you want.
*
* There are a few thinks you should know about the extension:
* * YOU have the full controll over the response. That also means
* that you have to set the correct header.
* * YOU have to terminate the request after you have send the response.
* * If the ajax request is not for your method you simply have nothing to
* * return.
*
*
* Usage
* `````
* // config.php
* $GLOBALS['TL_HOOKS']['simpleAjax'][] = array('MyClass', 'myMethod');
*
* // MyClass.php
* class MyClass extends System
* {
* public function myMethod()
* {
* if ($this->Input->get('acid') == 'myrequest')
* {
* $arrReturn = array('foo', 'bar', 'foobar');
*
* header('Content-Type: application/json');
* echo json_encode($arrReturn);
* exit;
* }
* }
* }
*/
class SimpleAjax extends Controller
{
/**
* Call the parent constructor.
*
* !!! DON'T REMOVE THIS !!!
*
* If you remove this you get the following error message:
* Fatal error: Call to protected System::__construct() from invalid
* context
*
* @param void
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Get the ajax request and call all hooks
*
* @param void
* @return void
*/
public function run()
{
// check if a hook is registered
if (is_array($GLOBALS['TL_HOOKS']['simpleAjax']) && count($GLOBALS['TL_HOOKS']['simpleAjax']) > 0)
{
// execute every registered callback
foreach ($GLOBALS['TL_HOOKS']['simpleAjax'] as $callback)
{
$this->import($callback[0]);
$this->$callback[0]->$callback[1]();
}
}
// if there is no other output, we generate a 412 error response
header('HTTP/1.1 412 Precondition Failed');
die('Simple Ajax: Invalid AJAX call.');
}
}
// create a SimpleAjax instance and run it
$objSimpleAjax = new SimpleAjax();
$objSimpleAjax->run();
?>

152
SimpleAjaxFrontend.php

@ -0,0 +1,152 @@
<?php
/**
* Contao Open Source CMS
* Copyright (C) 2005-2011 Leo Feyer
*
* This program is free software: you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program. If not, please visit the Free
* Software Foundation website at <http://www.gnu.org/licenses/>.
*
* PHP version 5
* @copyright Leo Unglaub 2012
* @author Leo Unglaub <leo@leo-unglaub.net>
* @package simple_ajax
* @license LGPL
*/
// simple trick for Contao < 2.10
$arrPost = $_POST;
unset($_POST);
// inizialize the contao framework
define('TL_MODE', 'FE');
require('system/initialize.php');
// write the post data back into the array
$_POST = $arrPost;
/**
* Class SimpleAjaxFrontend
* Contain methods to catch ajax requests and send responses back to the client.
*
* Description
* ```````````
*
* The usage of the SimpleAjax extensions is very easy. The extension provides
* the hook $GLOBALS['TL_HOOKS']['simpleAjax'] for extension developers. You
* simply have to register your class/method and the extension will call
* your class if there is an incomming ajax request.
*
* You simply have to deside if it's an ajax request for your module and return
* the data you want.
*
* There are a few thinks you should know about the extension:
* * YOU have the full controll over the response. That also means
* that you have to set the correct header.
* * YOU have to terminate the request after you have send the response.
* * If the ajax request is not for your method you simply have nothing to
* * return.
*
*
* Usage
* `````
* // config.php
* $GLOBALS['TL_HOOKS']['simpleAjaxFrontend'][] = array('MyClassFrontend', 'myMethod');
*
* // MyClassFrontend.php
* class MyClassFrontend extends System
* {
* public function myMethod()
* {
* if ($this->Input->get('acid') == 'myrequest')
* {
* $arrReturn = array('foo', 'bar', 'foobar');
*
* header('Content-Type: application/json');
* echo json_encode($arrReturn);
* exit;
* }
* }
* }
*/
class SimpleAjaxFrontend extends Frontend
{
/**
* Set some important constants
*
* @param void
* @return void
*/
public function __construct()
{
// call the constructor from Frontend
parent::__construct();
// check if a user is logged in
define('BE_USER_LOGGED_IN', $this->getLoginStatus('BE_USER_AUTH'));
define('FE_USER_LOGGED_IN', $this->getLoginStatus('FE_USER_AUTH'));
// set static url's in case the user generated HTML code
$this->setStaticUrl('TL_FILES_URL', $GLOBALS['TL_CONFIG']['staticFiles']);
$this->setStaticUrl('TL_SCRIPT_URL', $GLOBALS['TL_CONFIG']['staticSystem']);
$this->setStaticUrl('TL_PLUGINS_URL', $GLOBALS['TL_CONFIG']['staticPlugins']);
}
/**
* Get the ajax request and call all hooks
*
* @param void
* @return void
*/
public function run()
{
// run the global hook
if (is_array($GLOBALS['TL_HOOKS']['simpleAjax']) && count($GLOBALS['TL_HOOKS']['simpleAjax']) > 0)
{
// execute every registered callback
foreach ($GLOBALS['TL_HOOKS']['simpleAjax'] as $callback)
{
$this->import($callback[0]);
$this->$callback[0]->$callback[1]();
}
}
// run the frontend exclusive hook
if (is_array($GLOBALS['TL_HOOKS']['simpleAjaxFrontend']) && count($GLOBALS['TL_HOOKS']['simpleAjaxFrontend']) > 0)
{
// execute every registered callback
foreach ($GLOBALS['TL_HOOKS']['simpleAjaxFrontend'] as $callback)
{
$this->import($callback[0]);
$this->$callback[0]->$callback[1]();
}
}
// if there is no other output, we generate a 412 error response
header('HTTP/1.1 412 Precondition Failed');
die('Simple Ajax: Invalid AJAX call.');
}
}
// create a SimpleAjax instance and run it
$objSimpleAjaxFrontend = new SimpleAjaxFrontend();
$objSimpleAjaxFrontend->run();
?>

38
composer.json

@ -0,0 +1,38 @@
{
"name":"cgo-it/simple_ajax",
"description":"simple_ajax extension for the Contao Open Source CMS",
"keywords":["contao", "ajax"],
"type":"contao-module",
"license":"LGPL-3.0+",
"authors":[
{
"name":"cgo IT",
"email":"info@cgo-it.de",
"homepage":"https://cgo-it.de",
"role":"Developer"
}
],
"support": {
"email": "info@cgo-it.de",
"issues": "https://bitbucket.org/cgo-it/contao-simple_ajax/issues?status=new&status=open",
"source": "https://bitbucket.org/cgo-it/contao-simple_ajax/src"
},
"require":{
"php":">=5.3",
"contao/core":">=3.0",
"contao-community-alliance/composer-plugin": "~2.0"
},
"replace": {
"cgo-it/simple_ajax": "self.version"
},
"conflict": {
"contao/core": "2.11.*"
},
"extra":{
"contao": {
"sources":{
"":""
}
}
}
}
Loading…
Cancel
Save