fileName = $fileName; } return $this; } /** * @param null|array $requestParams */ public function setRequestParams($requestParams = null) { if (is_array($requestParams) || $requestParams === null) { $this->requestParams = $requestParams; } return $this; } /** * @param callable|null $controllerCallback */ public function setControllerCallback($controllerCallback) { $this->controllerCallback = $controllerCallback; } /** * @param null|string $jqSelector */ public function setJqSelector($jqSelector) { if ((is_string($jqSelector) && $jqSelector !== '') || $jqSelector === null) { $this->jqSelector = $jqSelector; } } /** * @param string $type * @return self::class */ public function setIntegrationType($type = null) { if (in_array($type, $this->getAvailableIntegrationTypes())) { $this->integrationType = $type; } return $this; } /** * @param null|string $jsFunctionName */ public function setJsFunctionName($jsFunctionName) { if ($jsFunctionName !== '' && is_string($jsFunctionName)) { $this->jsFunctionName = $jsFunctionName; } return $this; } /** * @return null|string */ public function getJsFunctionName() { return $this->jsFunctionName; } /** * @return null|string */ public function getFileName() { return $this->fileName; } /** * @return null|array */ public function getRequestParams() { return $this->requestParams; } /** * @return callable|null */ public function getControllerCallback() { return $this->controllerCallback; } /** * @return null|string */ public function getJqSelector() { return $this->jqSelector; } /** * @return string */ public function getIntegrationType() { return $this->integrationType; } /** * @return array * returns a list of integration types possible to use */ public function getAvailableIntegrationTypes() { return [ self::TYPE_APPEND, self::TYPE_PREPEND, self::TYPE_REPLACE, self::TYPE_CUSTOM, self::TYPE_AFTER, self::TYPE_BEFORE ]; } /** * a wrapper to set up integration process quickly */ public function addIntegration($fileName = null, $requestParams = null, $controllerCallback = null, $jqSelector = null, $integrationType = null, $jsFunctionName = null) { $this->setFileName($fileName); $this->setRequestParams($requestParams); $this->setControllerCallback($controllerCallback); $this->setJqSelector($jqSelector); $this->setIntegrationType($integrationType); $this->setJsFunctionName($jsFunctionName); } }