Example #1
0
 /**
  * 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;
 }