Back to WorkflowStage class

Method existing

public static array
existing
(mixed $options)
Get a list of the available workflow stages.
Parameters
  • array $options An array of options for the control
Returns
  • array
Since
  • 4.0.0
Class: WorkflowStage
Project: Joomla

Method existing - Source code

/**
 * Get a list of the available workflow stages.
 *
 * @param   array  $options  An array of options for the control
 *
 * @return  array
 *
 * @since   4.0.0
 */
public static function existing($options)
{
    // Get the database object and a new query object.
    $db = Factory::getDbo();
    $query = $db->getQuery(true);
    // Build the query.
    $query->select([$db->quoteName('ws.id', 'workflow_stage_id'), $db->quoteName('ws.title', 'workflow_stage_title'), $db->quoteName('w.id', 'workflow_id'), $db->quoteName('w.title', 'workflow_title')])->from($db->quoteName('#__workflow_stages', 'ws'))->join('LEFT', $db->quoteName('#__workflows', 'w'), $db->quoteName('w.id') . ' = ' . $db->quoteName('ws.workflow_id'))->where($db->quoteName('w.published') . ' = 1')->order($db->quoteName('ws.ordering'));
    // Set the query and load the options.
    $stages = $db->setQuery($query)->loadObjectList();
    $workflowStages = array();
    // Grouping the stages by workflow
    foreach ($stages as $stage) {
        // Using workflow ID to differentiate workflows having same title
        $workflowStageKey = Text::_($stage->workflow_title) . ' (' . $stage->workflow_id . ')';
        if (!array_key_exists($workflowStageKey, $workflowStages)) {
            $workflowStages[$workflowStageKey] = array();
        }
        $workflowStages[$workflowStageKey][] = HTMLHelper::_('select.option', $stage->workflow_stage_id, Text::_($stage->workflow_stage_title));
    }
    $prefix[] = array(HTMLHelper::_('select.option', '', $options['title']));
    return array_merge($prefix, $workflowStages);
}