PHP code example of tollwerk / tw-componentlibrary
1. Go to this page and download the library: Download tollwerk/tw-componentlibrary library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tollwerk / tw-componentlibrary example snippets
namespace Vendor\ExtKey\Component;
use Tollwerk\TwComponentlibrary\Component\TypoScriptComponent;
/**
* Example TypoScript component
*/
class ExampleTypoScriptComponent extends TypoScriptComponent
{
/**
* Configure the component
*/
protected function configure()
{
$this->setTypoScriptKey('lib.example');
}
}
namespace Vendor\ExtKey\Component;
use Tollwerk\TwComponentlibrary\Component\FluidTemplateComponent;
/**
* Example Fluid template component
*/
class ExampleFluidTemplateComponent extends FluidTemplateComponent
{
/**
* Configure the component
*/
protected function configure()
{
$this->setTemplate('EXT:ext_kex/Resources/Private/Partials/Component.html');
$this->setParameter('param', 'value');
}
}
namespace Vendor\ExtKey\Component;
use Tollwerk\TwComponentlibrary\Component\ExtbaseComponent;
/**
* Example Extbase plugin component
*/
class ExampleExtbaseComponent extends ExtbaseComponent
{
/**
* Configure the component
*/
protected function configure()
{
$this->setExtbaseConfiguration('PluginName', MyCustomController::class, 'action');
$this->setControllerActionArgument('param', [1, 2, 3]);
$overrideExistingSettings = true;
$this->setControllerSettings(['category' => 1], $overrideExistingSettings);
}
}
namespace Vendor\ExtKey\Component;
use Tollwerk\TwComponentlibrary\Component\ContentComponent;
/**
* Example content component
*/
class ExampleContentComponent extends ContentComponent
{
/**
* Configure the component
*/
protected function configure()
{
$this->setContentRecordId(123);
}
}
namespace Vendor\ExtKey\Component;
use Tollwerk\TwComponentlibrary\Component\FormComponent;
/**
* Example form component
*/
class ExampleTextComponent extends FormComponent
{
/**
* Configure the component
*/
protected function configure()
{
$this->setTemplate('EXT:example/Resources/Private/Partials/Form/Text.html');
$element = $this->createElement('Text', 'name');
$element->setProperty(
'fluidAdditionalAttributes',
[
'placeholder' => 'John Doe',
]
);
$this->addError('Please enter a name');
}
}
namespace Vendor\ExtKey\Component;
use Tollwerk\TwComponentlibrary\Component\FluidTemplateComponent;
/**
* Example Fluid template component
*/
class ExampleFluidTemplateComponent extends FluidTemplateComponent
{
/**
* Component status
*
* @var int
*/
protected $status = self::STATUS_READY;
/**
* Label
*
* @var string
*/
protected $label = 'Button with icon';
/**
* Configure the component
*/
protected function configure()
{
$this->setTemplate('EXT:ext_kex/Resources/Private/Partials/Button/Icon.html');
}
}
namespace Tollwerk\TwComponentlibrary\Component;
use \Tollwerk\TwComponentlibrary\Component\ComponentInterface;
/**
* Abstract component
*/
abstract class AbstractComponent implements ComponentInterface
{
/**
* Add a notice
*
* Fractal displays the notice in the "Notes" tab (only available for the default component variant)
*
* @param string $notice Notice
*/
protected function addNotice($notice) {}
/**
* Set a custom preview template
*
* Overrides the default preview template facilitating the `stylesheets`, `headerScript` and `footerScript` TypoScript constants
*
* @param TemplateInterface|string|null $preview Preview template
*/
protected function setPreview($preview) {}
}
namespace Tollwerk\TwComponentlibrary\Component\Preview;
use TYPO3\CMS\Core\Utility\GeneralUtility;
/**
* Basic preview template
*
* @package Tollwerk\TwComponentlibrary
* @subpackage Tollwerk\TwComponentlibrary\Component
*/
class FluidTemplate implements TemplateInterface
{
/**
* Add a CSS stylesheet
*
* Will be added in the `<head>` section of the preview template
*
* @param string $url CSS stylesheet URL
*/
public function addStylesheet($url){}
/**
* Add a header JavaScript
*
* Will be added in the `<head>` section of the preview template
*
* @param string $url Header JavaScript URL
*/
public function addHeaderScript($url){}
/**
* Add a header inclusion resource
*
* Path to a file to be ath) {}
}
namespace Vendor\ExtKey\Component;
use Tollwerk\TwComponentlibrary\Component\FluidTemplateComponent;
/**
* Example Fluid template component
*/
class ExampleFluidTemplateComponent extends FluidTemplateComponent
{
/**
* Configure the component
*/
protected function configure()
{
$this->setTemplate('EXT:ext_kex/Resources/Private/Partials/Component.html');
// Configure the preview template
$this->preview->addHeaderInclude('fileadmin/js/icons-loader.html');
$this->preview->addStylesheet('EXT:ext_key/Resources/Public/Css/example.min.css');
}
}