/** * Convert all the DataTable_Config options into a javascript array string * * @return string */ protected function renderDataTableOptions() { $options = array(); $options["bPaginate"] = $this->config->isPaginationEnabled(); $options["bLengthChange"] = $this->config->isLengthChangeEnabled(); $options["bProcessing"] = $this->config->isProcessingEnabled(); $options["bFilter"] = $this->config->isFilterEnabled(); $options["bSort"] = $this->config->isSortEnabled(); $options["bInfo"] = $this->config->isInfoEnabled(); $options["bAutoWidth"] = $this->config->isAutoWidthEnabled(); $options["bScrollCollapse"] = $this->config->isScrollCollapseEnabled(); $options["bScrollInfinite"] = $this->config->isScrollInfiniteEnabled(); $options["iDisplayLength"] = $this->config->getDisplayLength(); $options["bJQueryUI"] = $this->config->isJQueryUIEnabled(); $options["sPaginationType"] = $this->config->getPaginationType(); $options["bStateSave"] = $this->config->isSaveStateEnabled(); $options["iCookieDuration"] = $this->config->getCookieDuration(); $options["asStripClasses"] = $this->config->getStripClasses(); //setStripClasses $options["aoColumns"] = $this->renderDataTableColumnOptions(); $options["aaSorting"] = $this->renderDefaultSortColumns(); $options["aLengthMenu"] = $this->renderLengthMenu(); $options["bSortClasses"] = false; if ($this->config->isServerSideEnabled()) { $options["bServerSide"] = $this->config->isServerSideEnabled(); $options["sAjaxSource"] = $this->getAjaxSource(); } if (!is_null($this->config->getScrollX())) { $options["sScrollX"] = $this->config->getScrollX(); } if (!is_null($this->config->getScrollY())) { $options["sScrollY"] = $this->config->getScrollY(); } if (!is_null($this->config->getScrollLoadGap())) { $options["iScrollLoadGap"] = $this->config->getScrollLoadGap(); } if (!is_null($this->config->getLanguageConfig())) { $options["oLanguage"] = $this->renderLanguageConfig(); } if (!is_null($this->config->getCookiePrefix())) { $options["sCookiePrefix"] = $this->config->getCookiePrefix(); } if (!is_null($this->config->getDom())) { $options["sDom"] = $this->config->getDom(); } // ===================================================================================== // add callback functions // ===================================================================================== if (!is_null($this->getRowCallbackFunction())) { $options["fnRowCallback"] = $this->getCallbackFunctionProxy('getRowCallbackFunction'); } if (!is_null($this->getServerDataFunction())) { $options["fnServerData"] = $this->getCallbackFunctionProxy('getServerDataFunction'); } if (!is_null($this->getInitCompleteFunction())) { $options["fnInitComplete"] = $this->getCallbackFunctionProxy('getInitCompleteFunction'); } if (!is_null($this->getDrawCallbackFunction())) { $options["fnDrawCallback"] = $this->getCallbackFunctionProxy('getDrawCallbackFunction'); } if (!is_null($this->getFooterCallbackFunction())) { $options["fnFooterCallback"] = $this->getCallbackFunctionProxy('getFooterCallbackFunction'); } if (!is_null($this->getFooterCallbackFunction())) { $options["fnHeaderCallback"] = $this->getCallbackFunctionProxy('getHeaderCallbackFunction'); } if (!is_null($this->getInfoCallbackFunction())) { $options["fnInfoCallback"] = $this->getCallbackFunctionProxy('getInfoCallbackFunction'); } if (!is_null($this->getCookieCallbackFunction())) { $options["fnCookieCallback"] = $this->getCallbackFunctionProxy('getCookieCallbackFunction'); } // build the initial json object $json = json_encode($options); // replace keys for functions with actual functions $json = $this->replaceJsonFunctions($json); return $json; }