Beispiel #1
0
 /**
  * Helper function for generating the CSS rules.
  *
  * @return string
  *   String with the CSS rules.
  */
 public static function generateLanguagesCssRules()
 {
     $output = '';
     $geshi_library = libraries_load('geshi');
     if ($geshi_library['loaded']) {
         $languages = GeshiFilter::getAvailableLanguages();
         foreach ($languages as $langcode => $language_full_name) {
             // Create GeSHi object.
             $geshi = GeshiFilterProcess::geshiFactory('', $langcode);
             GeshiFilterProcess::overrideGeshiDefaults($geshi, $langcode);
             // Add CSS rules for current language.
             $output .= $geshi->get_stylesheet(FALSE) . "\n";
             // Release GeSHi object.
             unset($geshi);
         }
     } else {
         drupal_set_message(t('Error while generating CSS rules: could not load GeSHi library.'), 'error');
     }
     return $output;
 }
 /**
  * Helper function for generating a GeSHi object.
  *
  * @param string $source_code
  *   The source code to process.
  * @param string $language
  *   The language to generate a GeSHi object for.
  *
  * @return \GeSHi
  *   Return a Geshi class object.
  */
 public static function geshiFactory($source_code, $language)
 {
     $available_languages = GeshiFilter::getAvailableLanguages();
     $geshi = new \GeSHi($source_code, $language);
     $geshi->set_language_path($available_languages[$language]['language_path']);
     return $geshi;
 }
 /**
  * Function for generating a form table for per language settings.
  *
  * @param string $view
  *   - enabled Only show the enabled languages.
  *   - disabled Only show the disabled languages.
  *   - all Show all languages.
  * @param bool $add_checkbox
  *   When add(TRUE) or not(FALSE) a checkbox to enable languages.
  * @param bool $add_tag_option
  *   When add(TRUE) or not(FALSE) a textbox to set tags.
  *
  * @return array
  *   Return elements to a table with languages.
  */
 protected function perLanguageSettings($view, $add_checkbox, $add_tag_option)
 {
     $config = $this->config('geshifilter.settings');
     $form = array();
     $header = array(t('Language'), t('GeSHi language code'));
     if ($add_tag_option) {
         $header[] = t('Tag/language attribute value');
     }
     $form['language'] = array('#type' => 'table', '#header' => $header, '#empty' => t('Nome language is available.'));
     // Table body.
     $languages = GeshiFilter::getAvailableLanguages();
     foreach ($languages as $language => $language_data) {
         $enabled = $config->get("language.{$language}.enabled", FALSE);
         // Skip items to hide.
         if ($view == 'enabled' && !$enabled || $view == 'disabled' && $enabled) {
             continue;
         }
         // Build language row.
         $form['language'][$language] = array();
         // Add enable/disable checkbox.
         if ($add_checkbox) {
             $form['language'][$language]['enabled'] = array('#type' => 'checkbox', '#default_value' => $enabled, '#title' => $language_data['fullname']);
         } else {
             $form['language'][$language]['fullname'] = array('#type' => 'markup', '#markup' => $language_data['fullname']);
         }
         // Language code.
         $form['language'][$language]['name'] = array('#type' => 'markup', '#markup' => $language);
         // Add a textfield for tags.
         if ($add_tag_option) {
             $form['language'][$language]['tags'] = array('#type' => 'textfield', '#default_value' => $config->get("language.{$language}.tags", ''), '#size' => 20);
         }
     }
     return $form;
 }