function potx_status in Translation template extractor 7
Same name and namespace in other branches
- 8 potx.inc \potx_status()
- 6.3 potx.inc \potx_status()
- 6.2 potx.inc \potx_status()
- 7.3 potx.inc \potx_status()
- 7.2 potx.inc \potx_status()
Status notification function.
Parameters
$op: Operation to perform or type of message text.
- set: sets the reporting mode to $value use one of the POTX_STATUS_* constants as $value
- get: returns the list of error messages recorded if $value is true, it also clears the internal message cache
- error: sends an error message in $value with optional $file and $line
- status: sends a status message in $value
$value: Value depending on $op.
$file: Name of file the error message is related to.
$line: Number of line the error message is related to.
$excerpt: Excerpt of the code in question, if available.
$docs_url: URL to the guidelines to follow to fix the problem.
9 calls to potx_status()
- potx-cli.php in ./potx-cli.php 
- PotxTestCase::parseFile in tests/potx.test 
- Parse the given file with the given API version.
- potx_coder_review in ./potx.module 
- Callback implementation for coder review of one file.
- potx_select_form_submit in ./potx.module 
- Generate translation template or translation file for the requested component.
- _potx_find_menu_hooks in ./potx.inc 
- List of menu item titles. Only from Drupal 6.
File
- ./potx.inc, line 636 
- Extraction API used by the web and command line interface.
Code
function potx_status($op, $value = NULL, $file = NULL, $line = NULL, $excerpt = NULL, $docs_url = NULL) {
  static $mode = POTX_STATUS_CLI;
  static $messages = array();
  switch ($op) {
    case 'set':
      // Setting the reporting mode.
      $mode = $value;
      return;
    case 'get':
      // Getting the errors. Optionally deleting the messages.
      $errors = $messages;
      if (!empty($value)) {
        $messages = array();
      }
      return $errors;
    case 'error':
    case 'status':
      // Location information is required in 3 of the four possible reporting
      // modes as part of the error message. The structured mode needs the
      // file, line and excerpt info separately, not in the text.
      $location_info = '';
      if ($mode != POTX_STATUS_STRUCTURED && isset($file)) {
        if (isset($line)) {
          if (isset($excerpt)) {
            $location_info = t('At %excerpt in %file on line %line.', array(
              '%excerpt' => $excerpt,
              '%file' => $file,
              '%line' => $line,
            ));
          }
          else {
            $location_info = t('In %file on line %line.', array(
              '%file' => $file,
              '%line' => $line,
            ));
          }
        }
        else {
          if (isset($excerpt)) {
            $location_info = t('At %excerpt in %file.', array(
              '%excerpt' => $excerpt,
              '%file' => $file,
            ));
          }
          else {
            $location_info = t('In %file.', array(
              '%file' => $file,
            ));
          }
        }
      }
      // Documentation helpers are provided as readable text in most modes.
      $read_more = '';
      if ($mode != POTX_STATUS_STRUCTURED && isset($docs_url)) {
        $read_more = $mode == POTX_STATUS_CLI ? t('Read more at @url', array(
          '@url' => $docs_url,
        )) : t('Read more at <a href="@url">@url</a>', array(
          '@url' => $docs_url,
        ));
      }
      // Error message or progress text to display.
      switch ($mode) {
        case POTX_STATUS_MESSAGE:
          drupal_set_message(join(' ', array(
            $value,
            $location_info,
            $read_more,
          )), $op);
          break;
        case POTX_STATUS_CLI:
          fwrite($op == 'error' ? STDERR : STDOUT, join("\n", array(
            $value,
            $location_info,
            $read_more,
          )) . "\n\n");
          break;
        case POTX_STATUS_SILENT:
          if ($op == 'error') {
            $messages[] = join(' ', array(
              $value,
              $location_info,
              $read_more,
            ));
          }
          break;
        case POTX_STATUS_STRUCTURED:
          if ($op == 'error') {
            $messages[] = array(
              $value,
              $file,
              $line,
              $excerpt,
              $docs_url,
            );
          }
          break;
      }
      return;
  }
}