Server IP : 85.214.239.14 / Your IP : 3.15.142.42 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/2/task/2/cwd/var/www/wordpress/phpMyAdmin/templates/table/structure/ |
Upload File : |
{% extends 'table/page_with_secondary_tabs.twig' %} {% block content %} <form method="post" action="tbl_structure.php" name="fieldsForm" id="fieldsForm" class="ajax{{ hide_structure_actions ? ' HideStructureActions' }}"> {{ get_hidden_inputs(db, table) }} <input type="hidden" name="table_type" value= {%- if db_is_system_schema -%} "information_schema" {%- elseif tbl_is_view -%} "view" {%- else -%} "table" {%- endif %}> <div class="responsivetable"> <table id="tablestructure" class="data topmargin"> {# Table header #} <thead> <tr> <th class="print_ignore"></th> <th>#</th> <th>{% trans 'Name' %}</th> <th>{% trans 'Type' %}</th> <th>{% trans 'Collation' %}</th> <th>{% trans 'Attributes' %}</th> <th>{% trans 'Null' %}</th> <th>{% trans 'Default' %}</th> {% if show_column_comments -%} <th>{% trans 'Comments' %}</th> {%- endif %} <th>{% trans 'Extra' %}</th> {# @see table/structure.js, function moreOptsMenuResize() #} {% if not db_is_system_schema and not tbl_is_view %} <th colspan="{{ show_icons('ActionLinksMode') ? '8' : '9' -}} " class="action print_ignore">{% trans 'Action' %}</th> {% endif %} </tr> </thead> <tbody> {# Table body #} {% set rownum = 0 %} {% for row in fields %} {% set rownum = rownum + 1 %} {% set extracted_columnspec = extracted_columnspecs[rownum] %} {% set field_name = row['Field']|e %} {# For column comments #} {% set comments = row_comments[rownum] %} {# Underline commented fields and display a hover-title (CSS only) #} <tr> <td class="center print_ignore"> <input type="checkbox" class="checkall" name="selected_fld[]" value="{{ row['Field'] }}" id="checkbox_row_{{ rownum }}"> </td> <td class="right">{{ rownum }}</td> <th class="nowrap"> <label for="checkbox_row_{{ rownum }}"> {% if displayed_fields[rownum].comment is defined %} <span class="commented_column" title="{{ displayed_fields[rownum].comment }}">{{ displayed_fields[rownum].text }}</span> {% else %} {{ displayed_fields[rownum].text }} {% endif %} {{ displayed_fields[rownum].icon|raw }} </label> </th> <td{{ 'set' != extracted_columnspec['type'] and 'enum' != extracted_columnspec['type'] ? ' class="nowrap"' }}> <bdo dir="ltr" lang="en"> {{ extracted_columnspec['displayed_type']|raw }} {% if relation_commwork and relation_mimework and browse_mime and mime_map[row['Field']]['mimetype'] is defined %} <br>{% trans 'Media (MIME) type:' %} {{ mime_map[row['Field']]['mimetype']|replace({'_': '/'})|lower }} {% endif %} </bdo> </td> <td> {% if row['Collation'] is not empty %} <dfn title="{{ collations[row['Collation']].description }}">{{ collations[row['Collation']].name }}</dfn> {% endif %} </td> <td class="column_attribute nowrap">{{ attributes[rownum] }}</td> <td>{{ row['Null'] == 'YES' ? 'Yes'|trans : 'No'|trans }}</td> <td class="nowrap"> {% if row['Default'] is not null %} {% if extracted_columnspec['type'] == 'bit' %} {{ row['Default']|convert_bit_default_value }} {% else %} {{ row['Default'] }} {% endif %} {% elseif row['Null'] == 'YES' %} <em>NULL</em> {% else %} <em>{% trans %}None{% context %}None for default{% endtrans %}</em> {% endif %} </td> {% if show_column_comments %} <td> {{ comments }} </td> {% endif %} <td class="nowrap">{{ row['Extra']|upper }}</td> {% if not tbl_is_view and not db_is_system_schema %} <td class="edit center print_ignore"> <a class="change_column_anchor ajax" href="tbl_structure.php {{- url_query }}&field={{ row['Field']|url_encode }}&change_column=1"> {{ titles['Change']|raw }} </a> </td> <td class="drop center print_ignore"> <a class="drop_column_anchor ajax" href="sql.php" data-post="{{ url_query }}&sql_query= {{- ('ALTER TABLE ' ~ backquote(table) ~ ' DROP ' ~ backquote(row['Field']) ~ ';')|url_encode -}} &dropped_column={{ row['Field']|url_encode }}&purge=1&message_to_show= {{- ('Column %s has been dropped.'|trans|format(row['Field']|e))|url_encode }}"> {{ titles['Drop']|raw }} </a> </td> {% endif %} {% if not tbl_is_view and not db_is_system_schema %} {% set type = extracted_columnspec['print_type'] is not empty ? extracted_columnspec['print_type'] %} <td class="print_ignore"> <ul class="table-structure-actions resizable-menu"> {% if hide_structure_actions %} <li class="submenu shown"> <a href="#" class="tab nowrap">{{ get_icon('b_more', 'More'|trans) }}</a> <ul> {% endif %} {# Add primary #} {% include 'table/structure/action_row_in_structure_table.twig' with { 'type': type, 'tbl_storage_engine': tbl_storage_engine, 'class': 'primary nowrap', 'has_field': primary and primary.hasColumn(field_name), 'has_link_class': true, 'url_query': url_query, 'primary': primary, 'syntax': 'ADD PRIMARY KEY', 'message': 'A primary key has been added on %s.'|trans, 'action': 'Primary', 'titles': titles, 'row': row, 'is_primary': true, 'table': table } only %} {# Add unique #} {% include 'table/structure/action_row_in_structure_table.twig' with { 'type': type, 'tbl_storage_engine': tbl_storage_engine, 'class': 'add_unique unique nowrap', 'has_field': field_name in columns_with_unique_index, 'has_link_class': false, 'url_query': url_query, 'primary': primary, 'syntax': 'ADD UNIQUE', 'message': 'An index has been added on %s.'|trans, 'action': 'Unique', 'titles': titles, 'row': row, 'is_primary': false, 'table': table } only %} {# Add index #} {% include 'table/structure/action_row_in_structure_table.twig' with { 'type': type, 'tbl_storage_engine': tbl_storage_engine, 'class': 'add_index nowrap', 'has_field': false, 'has_link_class': false, 'url_query': url_query, 'primary': primary, 'syntax': 'ADD INDEX', 'message': 'An index has been added on %s.'|trans, 'action': 'Index', 'titles': titles, 'row': row, 'is_primary': false, 'table': table } only %} {# Add spatial #} {% set spatial_types = [ 'geometry', 'point', 'linestring', 'polygon', 'multipoint', 'multilinestring', 'multipolygon', 'geomtrycollection' ] %} {% include 'table/structure/action_row_in_structure_table.twig' with { 'type': type, 'tbl_storage_engine': tbl_storage_engine, 'class': 'spatial nowrap', 'has_field': type not in spatial_types and (tbl_storage_engine == 'MYISAM' or mysql_int_version >= 50705), 'has_link_class': false, 'url_query': url_query, 'primary': primary, 'syntax': 'ADD SPATIAL', 'message': 'An index has been added on %s.'|trans, 'action': 'Spatial', 'titles': titles, 'row': row, 'is_primary': false, 'table': table } only %} {# FULLTEXT is possible on TEXT, CHAR and VARCHAR #} <li class="fulltext nowrap"> {% if tbl_storage_engine is not empty and ( tbl_storage_engine == 'MYISAM' or tbl_storage_engine == 'ARIA' or tbl_storage_engine == 'MARIA' or (tbl_storage_engine == 'INNODB' and mysql_int_version >= 50604) ) and ('text' in type or 'char' in type) %} <a rel="samepage" class="ajax add_key add_fulltext_anchor" href="tbl_structure.php" data-post="{{- url_query|raw }}&add_key=1&sql_query= {{- ('ALTER TABLE ' ~ backquote(table) ~ ' ADD FULLTEXT(' ~ backquote(row['Field']) ~ ');')|url_encode }}&message_to_show= {{- ('An index has been added on %s.'|trans|format(row['Field']|e))|url_encode }}"> {{ titles['IdxFulltext']|raw }} </a> {% else %} {{ titles['NoIdxFulltext']|raw }} {% endif %} </li> {# Distinct value action #} <li class="browse nowrap"> <a href="sql.php" data-post="{{ url_query|raw }}&sql_query= {{- ('SELECT COUNT(*) AS ' ~ backquote('Rows'|trans) ~ ', ' ~ backquote(row['Field']) ~ ' FROM ' ~ backquote(table) ~ ' GROUP BY ' ~ backquote(row['Field']) ~ ' ORDER BY ' ~ backquote(row['Field']))|url_encode -}} &is_browse_distinct=1"> {{ titles['DistinctValues']|raw }} </a> </li> {% if central_columns_work %} <li class="browse nowrap"> {% if row['Field'] in central_list %} <a href="#" class="central_columns remove_button"> {{ get_icon('centralColumns_delete', 'Remove from central columns'|trans) }} </a> {% else %} <a href="#" class="central_columns add_button"> {{ get_icon('centralColumns_add', 'Add to central columns'|trans) }} </a> {% endif %} </li> {% endif %} {% if hide_structure_actions %} </ul> </li> {% endif %} </ul> </td> {% endif %} </tr> {% endfor %} </tbody> </table> </div> <div class="print_ignore"> {% include 'select_all.twig' with { 'pma_theme_image': pma_theme_image, 'text_dir': text_dir, 'form_name': 'fieldsForm' } only %} {{ get_button_or_image( 'submit_mult', 'mult_submit', 'Browse'|trans, 'b_browse', 'browse' ) }} {% if not tbl_is_view and not db_is_system_schema %} {{ get_button_or_image( 'submit_mult', 'mult_submit change_columns_anchor ajax', 'Change'|trans, 'b_edit', 'change' ) }} {{ get_button_or_image( 'submit_mult', 'mult_submit', 'Drop'|trans, 'b_drop', 'drop' ) }} {% if tbl_storage_engine != 'ARCHIVE' %} {{ get_button_or_image( 'submit_mult', 'mult_submit', 'Primary'|trans, 'b_primary', 'primary' ) }} {{ get_button_or_image( 'submit_mult', 'mult_submit', 'Unique'|trans, 'b_unique', 'unique' ) }} {{ get_button_or_image( 'submit_mult', 'mult_submit', 'Index'|trans, 'b_index', 'index' ) }} {{ get_button_or_image( 'submit_mult', 'mult_submit', 'Fulltext'|trans, 'b_ftext', 'ftext' ) }} {% if tbl_storage_engine is not empty and ( tbl_storage_engine == 'MYISAM' or tbl_storage_engine == 'ARIA' or tbl_storage_engine == 'MARIA') %} {{ get_button_or_image( 'submit_mult', 'mult_submit', 'Fulltext'|trans, 'b_ftext', 'ftext' ) }} {% endif %} {% if central_columns_work %} {{ get_button_or_image( 'submit_mult', 'mult_submit', 'Add to central columns'|trans, 'centralColumns_add', 'add_to_central_columns' ) }} {{ get_button_or_image( 'submit_mult', 'mult_submit', 'Remove from central columns'|trans, 'centralColumns_delete', 'remove_from_central_columns' ) }} {% endif %} {% endif %} {% endif %} </div> </form> <hr class="print_ignore"> <div id="move_columns_dialog" class="hide" title="{% trans 'Move columns' %}"> <p>{% trans 'Move the columns by dragging them up and down.' %}</p> <form action="tbl_structure.php" name="move_column_form" id="move_column_form"> <div> {{ get_hidden_inputs(db, table) }} <ul></ul> </div> </form> </div> {# Work on the table #} <div id="structure-action-links"> {% if tbl_is_view and not db_is_system_schema %} {% set edit_view_url = 'view_create.php' ~ edit_view_url %} {{ link_or_button( edit_view_url, get_icon('b_edit', 'Edit view'|trans, true) ) }} {% endif %} <a href="#" id="printView">{{ get_icon('b_print', 'Print'|trans, true) }}</a> {% if not tbl_is_view and not db_is_system_schema %} {# Only display propose table structure for MySQL < 8.0 #} {% if mysql_int_version < 80000 or is_mariadb %} <a href="sql.php" data-post="{{ url_query|raw }}&session_max_rows=all&sql_query= {{- ('SELECT * FROM ' ~ backquote(table) ~ ' PROCEDURE ANALYSE()')|url_encode -}} " style="margin-right: 0;"> {{ get_icon( 'b_tblanalyse', 'Propose table structure'|trans, true ) }} </a> {{ show_mysql_docu('procedure_analyse') }} {% endif %} {% if is_active %} <a href="tbl_tracking.php{{ url_query|raw }}"> {{ get_icon('eye', 'Track table'|trans, true) }} </a> {% endif %} <a href="#" id="move_columns_anchor"> {{ get_icon('b_move', 'Move columns'|trans, true) }} </a> <a href="normalization.php{{ url_query|raw }}"> {{ get_icon('normalize', 'Normalize'|trans, true) }} </a> {% endif %} {% if tbl_is_view and not db_is_system_schema %} {% if is_active %} <a href="tbl_tracking.php{{ url_query|raw }}"> {{ get_icon('eye', 'Track view'|trans, true) }} </a> {% endif %} {% endif %} </div> {% if not tbl_is_view and not db_is_system_schema %} <form method="post" action="tbl_addfield.php" id="addColumns" name="addColumns"> {{ get_hidden_inputs(db, table) }} {% if show_icons('ActionLinksMode') %} {{ get_image('b_insrow', 'Add column'|trans) }} {% endif %} {% set num_fields -%} <input type="number" name="num_fields" value="1" onfocus="this.select()" min="1" required> {%- endset %} {{ 'Add %s column(s)'|trans|format(num_fields)|raw }} <input type="hidden" name="field_where" value="after"> {# I tried displaying the drop-down inside the label but with Firefox the drop-down was blinking #} <select name="after_field"> <option value="first" data-pos="first"> {% trans 'at beginning of table' %} </option> {% for one_column_name in columns_list %} <option value="{{ one_column_name }}" {{- loop.revindex0 == 0 ? ' selected="selected"' }}> {{ 'after %s'|trans|format(one_column_name) }} </option> {% endfor %} </select> <input class="btn btn-primary" type="submit" value="{% trans 'Go' %}"> </form> {% endif %} {# Displays indexes #} {% if not tbl_is_view and not db_is_system_schema and 'ARCHIVE' != tbl_storage_engine %} {{ displayIndexesHtml|raw }} {% endif %} {# Display partition details #} {% if have_partitioning %} {# Detect partitioning #} {% if partition_names is not empty and partition_names[0] is not null %} {% set first_partition = partitions[0] %} {% set range_or_list = first_partition.getMethod() == 'RANGE' or first_partition.getMethod() == 'RANGE COLUMNS' or first_partition.getMethod() == 'LIST' or first_partition.getMethod() == 'LIST COLUMNS' %} {% set sub_partitions = first_partition.getSubPartitions() %} {% set has_sub_partitions = first_partition.hasSubPartitions() %} {% if has_sub_partitions %} {% set first_sub_partition = sub_partitions[0] %} {% endif %} {% set action_icons = { 'ANALYZE': get_icon('b_search', 'Analyze'|trans), 'CHECK': get_icon('eye', 'Check'|trans), 'OPTIMIZE': get_icon('normalize', 'Optimize'|trans), 'REBUILD': get_icon('s_tbl', 'Rebuild'|trans), 'REPAIR': get_icon('b_tblops', 'Repair'|trans), 'TRUNCATE': get_icon('b_empty', 'Truncate'|trans), } %} {% if range_or_list %} {% set action_icons = action_icons|merge({'DROP': get_icon('b_drop', 'Drop'|trans)}) %} {% endif %} {# open Slider Effect div #} {% include 'div_for_slider_effect.twig' with { 'id': 'partitions-2', 'message': 'Partitions'|trans, 'initial_sliders_state': default_sliders_state } only %} {% set remove_sql = 'ALTER TABLE ' ~ backquote(table) ~ ' REMOVE PARTITIONING' %} {% set remove_url = 'sql.php' ~ url_query ~ '&sql_query=' ~ remove_sql|url_encode %} {% include 'table/structure/display_partitions.twig' with { 'db': db, 'table': table, 'url_query': url_query, 'partitions': partitions, 'partition_method': first_partition.getMethod(), 'partition_expression': first_partition.getExpression(), 'has_description': first_partition.getDescription() is not empty, 'has_sub_partitions': has_sub_partitions, 'sub_partition_method': has_sub_partitions ? first_sub_partition.getMethod(), 'sub_partition_expression': has_sub_partitions ? first_sub_partition.getExpression(), 'action_icons': action_icons, 'range_or_list': range_or_list, 'remove_url': remove_url } only %} {% else %} {% include 'table/structure/display_partitions.twig' with { 'db': db, 'table': table } only %} {% endif %} {# For closing Slider effect div #} </div> {% endif %} {# Displays Space usage and row statistics #} {% if show_stats %} {{ table_stats|raw }} {% endif %} <div class="clearfloat"></div> {% endblock %}