Pour mettre à jour vos styles enfants hérités de prosilver.
►Modification CSS
Ouvrir ./styles/prosilver/theme/content.css
►Trouver
Code : Tout sélectionner
.group-description ul {
- Remplacer par
Code : Tout sélectionner
.group-description ol, .group-description ul {
Ouvrir ./styles/prosilver/theme/stylesheet.css
Remplacez ces lignes existantes
Code : Tout sélectionner
@import url("content.css?hash=d0e24377");
Code : Tout sélectionner
@import url("forms.css?hash=9016b55c");
Code : Tout sélectionner
@import url("responsive.css?hash=91525545");
► Modification composer.json
Pour le fichier composer.json remplacer la section comme ci
Code : Tout sélectionner
# General Information about this style
name = prosilver
copyright = © phpBB Limited, 2007
style_version = 3.3.12
phpbb_version = 3.3.12
►Modification template
Ouvrir ./styles/prosilver/template/index_body.html
►Trouver
Code : Tout sélectionner
<label for="username"><span>{L_USERNAME}{L_COLON}</span> <input type="text" tabindex="1" name="username" id="username" size="10" class="inputbox" title="{L_USERNAME}" /></label>
<label for="password"><span>{L_PASSWORD}{L_COLON}</span> <input type="password" tabindex="2" name="password" id="password" size="10" class="inputbox" title="{L_PASSWORD}" autocomplete="off" /></label>
- Remplacer par
Code : Tout sélectionner
<label for="username"><span>{L_USERNAME}{L_COLON}</span> <input type="text" tabindex="1" name="username" id="username" size="10" class="inputbox" title="{L_USERNAME}" autocomplete="username" /></label> <label for="password"><span>{L_PASSWORD}{L_COLON}</span> <input type="password" tabindex="2" name="password" id="password" size="10" class="inputbox" title="{L_PASSWORD}" autocomplete="current-password" /></label>
Ouvrir ./styles/prosilver/template/login_body.html
►Trouver
Code : Tout sélectionner
<dd><input type="text" tabindex="1" name="{USERNAME_CREDENTIAL}" id="{USERNAME_CREDENTIAL}" size="25" value="{USERNAME}" class="inputbox autowidth" /></dd>
- Remplacer par
Code : Tout sélectionner
<dd><input type="text" tabindex="1" name="{USERNAME_CREDENTIAL}" id="{USERNAME_CREDENTIAL}" size="25" value="{USERNAME}" class="inputbox autowidth" autocomplete="username" /></dd>
►Trouver
Code : Tout sélectionner
<dd><input type="password" tabindex="2" id="{PASSWORD_CREDENTIAL}" name="{PASSWORD_CREDENTIAL}" size="25" class="inputbox autowidth" autocomplete="off" /></dd>
- Remplacer par
Code : Tout sélectionner
<dd><input type="password" tabindex="2" id="{PASSWORD_CREDENTIAL}" name="{PASSWORD_CREDENTIAL}" size="25" class="inputbox autowidth" autocomplete="current-password" /></dd>
Ouvrir ./styles/prosilver/template/mcp_topic.html
►Trouver
Code : Tout sélectionner
<!-- EVENT mcp_topic_postrow_post_before -->
- Ajouter juste après, sur une nouvelle ligne
Code : Tout sélectionner
<!-- IF postrow.S_FIRST_UNREAD --> <a id="unread" class="anchor"<!-- IF S_UNREAD_VIEW --> data-url="{postrow.U_MINI_POST}"<!-- ENDIF -->></a> <!-- ENDIF -->
Ouvrir ./styles/prosilver/template/overall_footer.html
►Trouver
Code : Tout sélectionner
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.6.0.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
- Remplacer par
Code : Tout sélectionner
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.7.1.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
Ouvrir ./styles/prosilver/template/posting_editor.html
►Trouver
Code : Tout sélectionner
<fieldset class="submit-buttons">
- Remplacer par
Code : Tout sélectionner
<fieldset class="submit-buttons" data-prevent-flood>
Ouvrir ./styles/prosilver/template/simple_footer.html
►Trouver
Code : Tout sélectionner
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.6.0.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
- Remplacer par
Code : Tout sélectionner
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.7.1.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
Ouvrir ./styles/prosilver/template/ucp_footer.html
►Trouver
Code : Tout sélectionner
</div>
</div>
</div>
- Ajouter juste au-dessus
Code : Tout sélectionner
{% EVENT ucp_footer_content_after %}
Ouvrir ./styles/prosilver/template/ucp_header.html
►Trouver
Code : Tout sélectionner
</div>
<div id="cp-main" class="cp-main ucp-main panel-container">
- Remplacer par
Code : Tout sélectionner
</div> {% EVENT ucp_header_content_before %} <div id="cp-main" class="cp-main ucp-main panel-container">
Ouvrir ./styles/prosilver/template/ucp_login_link.html
►Trouver
Code : Tout sélectionner
<dd><input type="text" tabindex="2" name="{USERNAME_CREDENTIAL}" id="{USERNAME_CREDENTIAL}" size="25" value="{LOGIN_USERNAME}" class="inputbox autowidth" /></dd>
- Remplacer par
Code : Tout sélectionner
<dd><input type="text" tabindex="2" name="{USERNAME_CREDENTIAL}" id="{USERNAME_CREDENTIAL}" size="25" value="{LOGIN_USERNAME}" class="inputbox autowidth" autocomplete="username" /></dd>
►Trouver
Code : Tout sélectionner
<dd><input type="password" tabindex="3" id="{PASSWORD_CREDENTIAL}" name="{PASSWORD_CREDENTIAL}" size="25" class="inputbox autowidth" autocomplete="off" /></dd>
- Remplacer par
Code : Tout sélectionner
<dd><input type="password" tabindex="3" id="{PASSWORD_CREDENTIAL}" name="{PASSWORD_CREDENTIAL}" size="25" class="inputbox autowidth" autocomplete="current-password" /></dd>
Ouvrir ./styles/prosilver/template/ucp_notifications.html
►Trouver
Code : Tout sélectionner
<!-- INCLUDE ucp_header.html -->
<form id="ucp" method="post" action="{S_UCP_ACTION}"{S_FORM_ENCTYPE}>
<h2>{TITLE}</h2>
<div class="panel">
<div class="inner">
- Remplacer par
Code : Tout sélectionner
<!-- INCLUDE ucp_header.html --> {% EVENT ucp_notifications_form_before %} <form id="ucp" method="post" action="{S_UCP_ACTION}"{S_FORM_ENCTYPE}> <h2>{TITLE}</h2> {% EVENT ucp_notifications_content_before %} <div class="panel"> <div class="inner">
►Trouver
Code : Tout sélectionner
</div>
</div>
<!-- IF .notification_types or .notification_list -->
<fieldset class="display-actions">
<input type="hidden" name="form_time" value="{FORM_TIME}" />
- Remplacer par
Code : Tout sélectionner
</div> </div> {% EVENT ucp_notifications_content_after %} <!-- IF .notification_types or .notification_list --> <fieldset class="display-actions"> <input type="hidden" name="form_time" value="{FORM_TIME}" />
►Trouver
Code : Tout sélectionner
</form>
<!-- INCLUDE ucp_footer.html -->
- Remplacer par
Code : Tout sélectionner
</form> {% EVENT ucp_notifications_form_after %} <!-- INCLUDE ucp_footer.html -->
Ouvrir ./styles/prosilver/template/ucp_register.html
►Trouver
Code : Tout sélectionner
<dd><input type="text" tabindex="1" name="username" id="username" size="25" value="{USERNAME}" class="inputbox autowidth" title="{L_USERNAME}" /></dd>
- Remplacer par
Code : Tout sélectionner
<dd><input type="text" tabindex="1" name="username" id="username" size="25" value="{USERNAME}" class="inputbox autowidth" title="{L_USERNAME}" autocomplete="off" /></dd>
Ouvrir ./styles/prosilver/template/viewforum_body.html
►Trouver
Code : Tout sélectionner
<dd><input type="text" tabindex="1" name="username" id="username" size="25" value="{USERNAME}" class="inputbox autowidth" /></dd>
- Rempacer par
Code : Tout sélectionner
<dd><input type="text" tabindex="1" name="username" id="username" size="25" value="{USERNAME}" class="inputbox autowidth" autocomplete="username" /></dd>
►Trouver
Code : Tout sélectionner
<dd><input type="password" tabindex="2" id="password" name="password" size="25" class="inputbox autowidth" autocomplete="off" /></dd>
- Remplacer par
Code : Tout sélectionner
<dd><input type="password" tabindex="2" id="password" name="password" size="25" class="inputbox autowidth" autocomplete="current-password" /></dd>
Ouvrir ./styles/prosilver/template/viewtopic_body.html
►Trouver
Code : Tout sélectionner
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->
- Remplacer par
Code : Tout sélectionner
<!-- ENDIF --> {% EVENT viewtopic_body_online_list_after %} <!-- INCLUDE overall_footer.html -->
Ouvrir ./styles/prosilver/template/viewtopic_print.html
►Trouver
Code : Tout sélectionner
<title>{SITENAME} • {PAGE_TITLE}</title>
<link href="{T_THEME_PATH}/print.css" rel="stylesheet">
<link href="{T_THEME_PATH}/bidi.css" rel="stylesheet">
<!-- EVENT viewtopic_print_head_append -->
</head>
<body id="phpbb" class="{S_CONTENT_DIRECTION}">
- Remplacer par
Code : Tout sélectionner
<title>{SITENAME} • {PAGE_TITLE}</title> <link href="{T_THEME_PATH}/print.css" rel="stylesheet"> {% if S_CONTENT_DIRECTION eq 'rtl' %} <link href="{T_THEME_PATH}/bidi.css" rel="stylesheet"> {% endif %} <!-- EVENT viewtopic_print_head_append --> </head> <body id="phpbb" class="{S_CONTENT_DIRECTION}">
Ouvrir ./styles/prosilver/template/ajax.js
►Trouver
Code : Tout sélectionner
}
});
/**
* This simply appends #preview to the action of the
- Remplacer par
Code : Tout sélectionner
} }); +// Prevent accidental double submission of form +$('[data-prevent-flood] input[type=submit]').click(function(event) { + const $submitButton = $(this); // Store the button element + const $form = $submitButton.closest('form'); + + // Always add the disabled class for visual feedback + $submitButton.addClass('disabled'); + + // Submit form if it hasn't been submitted yet + if (!$form.prop('data-form-submitted')) { + $form.prop('data-form-submitted', true); + + return; + } + + // Prevent default submission for subsequent clicks within 5 seconds + event.preventDefault(); + + setTimeout(() => { + $form.prop('removeProp', 'data-form-submitted'); + $submitButton.removeClass('disabled'); // Re-enable after 5 seconds + }, 5000); +}); /** * This simply appends #preview to the action of the
Source : https://gist.github.com/marc1706/d54535 ... 24666e89d3