'Strings translations', // do not translate (used for css class)
'ajax' => false
));
$this->groups = &$groups;
$this->group_selected = $group_selected;
}
/*
* displays the item information in a column (default case)
*
* @since 0.6
*
* @param array $item
* @param string $column_name
* @return string
*/
function column_default($item, $column_name) {
return $item[$column_name];
}
/*
* displays the checkbox in first column
*
* @since 1.1
*
* @param array $item
* @return string
*/
function column_cb($item){
return sprintf(
'',
esc_attr($item['row']),
empty($item['icl']) ? 'disabled' : '' // only strings registered with WPML API can be removed
);
}
/*
* displays the string to translate
*
* @since 1.0
*
* @param array $item
* @return string
*/
function column_string($item) {
return format_to_edit($item['string']); // don't interpret special chars for the string column
}
/*
* displays the translations to edit
*
* @since 0.6
*
* @param array $item
* @return string
*/
function column_translations($item) {
$out = '';
foreach($item['translations'] as $key => $translation) {
$input_type = $item['multiline'] ?
'' :
'';
$out .= sprintf('
'.$input_type.'
'."\n",
esc_attr($key),
esc_attr($item['row']),
esc_html($key),
format_to_edit($translation)); // don't interpret special chars
}
return $out;
}
/*
* gets the list of columns
*
* @since 0.6
*
* @return array the list of column titles
*/
function get_columns() {
return array(
'cb' => '', //checkbox
'context' => __('Group', 'polylang'),
'name' => __('Name', 'polylang'),
'string' => __('String', 'polylang'),
'translations' => __('Translations', 'polylang'),
);
}
/*
* gets the list of sortable columns
*
* @since 0.6
*
* @return array
*/
function get_sortable_columns() {
return array(
'context' => array('context', false),
'name' => array('name', false),
'string' => array('string', false),
);
}
/*
* prepares the list of items ofr displaying
*
* @since 0.6
*
* @param array $data
*/
function prepare_items($data = array()) {
$per_page = $this->get_items_per_page('pll_strings_per_page');
$this->_column_headers = array($this->get_columns(), array(), $this->get_sortable_columns());
function usort_reorder($a, $b){
$result = strcmp($a[$_REQUEST['orderby']], $b[$_REQUEST['orderby']]); // determine sort order
return (empty($_REQUEST['order']) || $_REQUEST['order'] == 'asc') ? $result : -$result; // send final sort direction to usort
};
if (!empty($_REQUEST['orderby'])) // no sort by default
usort($data, 'usort_reorder');
$total_items = count($data);
$this->items = array_slice($data, ($this->get_pagenum() - 1) * $per_page, $per_page);
$this->set_pagination_args(array(
'total_items' => $total_items,
'per_page' => $per_page,
'total_pages' => ceil($total_items/$per_page)
));
}
/*
* get the list of possible bulk actions
*
* @since 1.1
*
* @return array
*/
function get_bulk_actions() {
return array('delete' => __('Delete','polylang'));
}
/*
* displays the dropdown list to filter strings per group
*
* @since 1.1
*
* @param string $which only 'top' is supported
*/
function extra_tablenav($which) {
if ('top' != $which)
return;
echo '';
echo ''."\n";
submit_button( __( 'Filter' ), 'button', false, false, array( 'id' => 'post-query-submit' ) );
echo '
';
}
}