Skip to content

Commit

Permalink
feat(form): limit picto size and add columns + code format
Browse files Browse the repository at this point in the history
  • Loading branch information
mrflos committed Aug 9, 2024
1 parent 5ca45a9 commit 044d217
Show file tree
Hide file tree
Showing 4 changed files with 107 additions and 14 deletions.
92 changes: 92 additions & 0 deletions .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
<?php

$finder = PhpCsFixer\Finder::create()
->in(__DIR__)
->name('*.php')
->exclude('vendor')
->exclude('cache')
->exclude('node_modules');

$rules = [
'@PSR12' => true, // Start with PSR-12 rules
'@Symfony' => true, // Add Symfony rules for more comprehensive formatting
// Additional custom rules
// https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/master/doc/rules/index.rst
'array_indentation' => true,
'array_syntax' => ['syntax' => 'short'],
'binary_operator_spaces' => [
'default' => 'single_space',
],
'yoda_style' => false,
'blank_line_after_namespace' => true,
'blank_line_after_opening_tag' => true,
'increment_style' => ['style' => 'post'],
'blank_line_before_statement' => [
'statements' => ['return'],
],
'cast_spaces' => ['space' => 'none'],
'class_attributes_separation' => [
'elements' => ['method' => 'one'],
],
'concat_space' => ['spacing' => 'one'],
'declare_equal_normalize' => ['space' => 'none'],
'function_declaration' => ['closure_function_spacing' => 'one'],
'include' => true,
'indentation_type' => true,
'lowercase_cast' => true,
'method_argument_space' => ['on_multiline' => 'ensure_fully_multiline'],
'new_with_braces' => true,
'no_blank_lines_after_class_opening' => true,
'no_blank_lines_after_phpdoc' => true,
'no_empty_statement' => true,
'no_extra_blank_lines' => [
'tokens' => [
'extra',
'throw',
'use',
'use_trait',
'curly_brace_block',
'parenthesis_brace_block',
'square_brace_block',
'switch',
'case',
'default',
],
],
'no_leading_import_slash' => true,
'no_leading_namespace_whitespace' => true,
'no_mixed_echo_print' => ['use' => 'echo'],
'no_multiline_whitespace_around_double_arrow' => true,
'no_short_bool_cast' => true,
'no_singleline_whitespace_before_semicolons' => true,
'no_spaces_around_offset' => ['positions' => ['inside', 'outside']],
'no_trailing_comma_in_singleline_array' => true,
'no_trailing_whitespace' => true,
'no_trailing_whitespace_in_comment' => true,
'no_unused_imports' => true,
'no_whitespace_before_comma_in_array' => true,
'no_whitespace_in_blank_line' => true,
'normalize_index_brace' => true,
'object_operator_without_whitespace' => true,
'ordered_imports' => ['sort_algorithm' => 'alpha'],
'semicolon_after_instruction' => true,
'short_scalar_cast' => true,
'single_blank_line_at_eof' => true,
'single_class_element_per_statement' => ['elements' => ['property']],
'single_import_per_statement' => true,
'single_line_after_imports' => true,
'single_quote' => true,
'space_after_semicolon' => ['remove_in_empty_for_expressions' => true],
'standardize_not_equals' => true,
'switch_case_semicolon_to_colon' => true,
'switch_case_space' => true,
'trailing_comma_in_multiline' => ['elements' => ['arrays']],
'trim_array_spaces' => true,
'unary_operator_spaces' => true,
'whitespace_after_comma_in_array' => true,
];

return (new PhpCsFixer\Config())
->setRules($rules)
->setFinder($finder)
->setUsingCache(false); // Adjust cache settings as needed
19 changes: 10 additions & 9 deletions migrations/20240527103813_QrcardsInitialDatabaseAndPagesSetup.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?php

use YesWiki\Core\YesWikiMigration;
use YesWiki\Bazar\Service\EntryManager;
use YesWiki\Bazar\Service\FormManager;
use YesWiki\Core\Service\TripleStore;
use YesWiki\Core\Service\AclService;
use YesWiki\Core\Service\DbService;
use YesWiki\Core\Service\PageManager;
use YesWiki\Core\Service\TripleStore;
use YesWiki\Core\YesWikiMigration;

class QrcardsInitialDatabaseAndPagesSetup extends YesWikiMigration
{
Expand All @@ -20,7 +20,7 @@ public function run()

$glob = glob('tools/qrcards/setup/lists/*.json');
foreach ($glob as $filename) {
$listname = str_replace(array('tools/qrcards/setup/lists/', '.json'), '', $filename);
$listname = str_replace(['tools/qrcards/setup/lists/', '.json'], '', $filename);
if (file_exists($filename) && !$pageManager->getOne($listname)) {
// save the page with the list value
$pageManager->save($listname, file_get_contents($filename));
Expand All @@ -33,7 +33,7 @@ public function run()

$glob = glob('tools/qrcards/setup/forms/*.json');
foreach ($glob as $filename) {
$formId = str_replace(array('tools/qrcards/setup/forms/', '.json'), '', $filename);
$formId = str_replace(['tools/qrcards/setup/forms/', '.json'], '', $filename);

// test if the form exists, if not, install it
$form = $formManager->getOne($formId);
Expand All @@ -45,7 +45,7 @@ public function run()

$glob = glob('tools/qrcards/setup/entries/*.json');
foreach ($glob as $filename) {
$entryName = str_replace(array('tools/qrcards/setup/entries/', '.json'), '', $filename);
$entryName = str_replace(['tools/qrcards/setup/entries/', '.json'], '', $filename);
if (file_exists($filename) && !$pageManager->getOne($entryName)) {
// save the page with the list value
$entry = json_decode(file_get_contents($filename), true);
Expand All @@ -56,13 +56,13 @@ public function run()

$glob = glob('tools/qrcards/setup/pages/*.txt');
foreach ($glob as $filename) {
$pageName = str_replace(array('tools/qrcards/setup/pages/', '.txt'), '', $filename);
$pageName = str_replace(['tools/qrcards/setup/pages/', '.txt'], '', $filename);
$this->updatePage($pageName, file_get_contents($filename), ['{QrcardFormId}' => 1400]);
}

$glob = glob('tools/qrcards/setup/appendtopages/*.json');
foreach ($glob as $filename) {
$pageName = str_replace(array('tools/qrcards/setup/appendtopages/', '.json'), '', $filename);
$pageName = str_replace(['tools/qrcards/setup/appendtopages/', '.json'], '', $filename);
$this->updatePage($pageName, file_get_contents($filename), ['{QrcardFormId}' => 1400], true);
}
}
Expand All @@ -79,16 +79,17 @@ private function updatePage(string $pageName, string $content, array $replacemen
$aclService->delete($pageName); // to clear acl cache
$aclService->save($pageName, 'read', '@admins');
$aclService->save($pageName, 'write', '@admins');
$pageManager->save($pageName, $content, "", true);
$pageManager->save($pageName, $content, '', true);
} else {
if ($append) {
$content = json_decode($content, true);
if (strpos($page['body'], $content['content']) === false) {
$newContent = str_replace($content['replace'], $content['content'], $page['body']);
$pageManager->save($pageName, $newContent, "", true);
$pageManager->save($pageName, $newContent, '', true);
}
}
}

return '';
}
}
4 changes: 2 additions & 2 deletions setup/forms/1400.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
"bn_sem_context": "",
"bn_sem_type": "",
"bn_sem_use_template": "1",
"bn_template": "texte***bf_titre***Titre de la carte***255***255*** *** ***text***1*** *** *** * *** * *** *** *** ***\r\nlabelhtml***<div class=\"row\"><div class=\"col-md-5\">*** *** ***\r\nliste***ListeComplexite***Complexité*** *** *** *** *** ***0*** ***Affiche un nombre de points en haut à gauche du recto de la carte.*** * *** * *** *** *** ***\r\nlabelhtml***</div><div class=\"col-md-2\">*** *** ***\r\ntexte***bf_card_color***Couleur de fond*** *** ***#d8604c*** ***color***1*** ***Couleur de fond de la carte*** * *** * *** *** *** ***\r\nlabelhtml***</div><div class=\"col-md-5\">*** *** ***\r\nliste***ListeTypeCarte***Type de carte*** *** *** *** *** ***0*** ***influe sur la couleurs de la carte affichée en ligne (jaune pour recette violet pour ingrédients)*** * *** * *** *** *** ***\r\nlabelhtml***</div></div>*** *** ***\r\nlabelhtml***<div class=\"row\"><div class=\"col-md-6\"><h3>Recto de la carte</h3>*** *** ***\r\nimage***bf_image***Visuel mémorable***140***140***600***600***right***0*** ***Affiché au recto dans la partie centrale comme une image illustrative*** * *** * *** *** *** ***\r\ntexte***bf_accroche***Accroche (description courte en une phrase )***255***255*** *** ***text***0*** ***Affiché au recto dans la partie centrale comme un titre*** * *** * *** *** *** ***\r\nlabelhtml***<div class=\"row\"><div class=\"col-md-4\"><h4>Icône 1</h4>*** *** ***\r\nimage***bf_picto_boite1***Format carré*** *** *** *** ***left***0*** *** *** * *** * *** *** *** ***\r\ntexte***bf_texte_boite1***Texte***15***15*** *** ***text***0*** ***Affiché en bas du recto a droite du mini logo metacartes*** * *** * *** *** *** ***\r\nlabelhtml***</div><div class=\"col-md-4\"><h4>Icône 2</h4>*** *** ***\r\nimage***bf_picto_boite2***Format carré*** *** *** *** ***left***0*** *** *** * *** * *** *** *** ***\r\ntexte***bf_texte_boite2***Texte***15***15*** *** ***text***0*** ***Affiché en bas du recto a droite du mini logo metacartes*** * *** * *** *** *** ***\r\nlabelhtml***</div><div class=\"col-md-4\"><h4>Icône 3</h4>*** *** ***\r\nimage***bf_picto_boite3***Format carré*** *** *** *** ***left***0*** *** *** * *** * *** *** *** ***\r\ntexte***bf_texte_boite3***Texte***15***15*** *** ***text***0*** ***Affiché en bas du recto a droite du mini logo metacartes*** * *** * *** *** *** ***\r\nlabelhtml***</div></div>*** *** ***\r\nlabelhtml***</div><div class=\"col-md-6\"><h3>Verso de la carte</h3>*** *** ***\r\ntextelong***bf_chapeau***L'essentiel (description en 500 caractères max)***80***8*** *** ***wiki***0*** ***Affiché au verso*** * *** * *** *** *** ***\r\nlien_internet***bf_url***Url pour le QR code (laisser vide pour renvoyer vers la page wiki)*** *** *** *** *** ***0*** *** *** * *** * *** *** *** ***\r\nlabelhtml***</div></div>*** *** ***\r\nlabelhtml***<hr /><h3>Contenus de la page associés à la carte</h3>*** *** ***\r\ntextelong***bf_description***Contenu textuel***80***12*** *** ***wiki***0*** ***Liens info tutoriels etc...*** * *** * *** *** *** ***\r\nfichier***fichier***Contenu multimédia*** *** *** *** *** ***0*** *** *** * *** * *** *** *** ***\r\ntextelong***bf_ressources***Ressources complémentaires*** *** *** *** ***wiki***0*** ***Autres ressources pour aller encore plus loin.*** * *** * *** *** *** ***\r\nlabelhtml***<hr /><h3>Informations contributions</h3>*** *** ***\r\ntextelong***contributeurices***Contributeurices*** *** *** *** ***wiki***0*** ***Le contenu de cette fiche a été rédigée à partir des contributions de personnes suivantes*** * *** * *** *** *** ***\r\ntexte***bf_licence***Licence*** *** ***CC-BY-SA*** ***text***1*** *** *** * *** * *** *** *** ***\r\ntextelong***bf_notes_edition***Notes sur l'édition*** *** *** *** ***wiki***0*** ***Commentaires et notes d'édition*** * *** * *** *** *** ***\r\nliste***ListeDegreDeMaturite***Degré de maturité*** *** *** ***bf_maturite*** ***0*** ***La carte est elle aboutie ou simplement au stade d'idée ?*** * *** * *** *** *** ***",
"bn_template": "texte***bf_titre***Titre de la carte***255***255*** *** ***text***1*** *** *** * *** * *** *** *** ***\r\nlabelhtml***<div class=\"row\"><div class=\"col-md-5\">*** *** ***\r\nliste***ListeComplexite***Complexité*** *** *** *** *** ***0*** ***Affiche un nombre de points en haut à gauche du recto de la carte.*** * *** * *** *** *** ***\r\nlabelhtml***</div><div class=\"col-md-2\">*** *** ***\r\ntexte***bf_card_color***Couleur de fond*** *** ***#d8604c*** ***color***1*** ***Couleur de fond de la carte*** * *** * *** *** *** ***\r\nlabelhtml***</div><div class=\"col-md-5\">*** *** ***\r\nliste***ListeTypeCarte***Type de carte*** *** *** *** *** ***0*** ***influe sur la couleurs de la carte affichée en ligne (jaune pour recette violet pour ingrédients)*** * *** * *** *** *** ***\r\nlabelhtml***</div></div>*** *** ***\r\nlabelhtml***<div class=\"row\"><div class=\"col-md-6\"><h3>Recto de la carte</h3>*** *** ***\r\nimage***bf_image***Visuel mémorable***400***400***800***800***left***0*** ***Affiché au recto dans la partie centrale comme une image illustrative*** * *** * *** *** *** ***\r\ntexte***bf_accroche***Accroche (description courte en une phrase )***255***255*** *** ***text***0*** ***Affiché au recto dans la partie centrale comme un titre*** * *** * *** *** *** ***\r\nlabelhtml***<div class=\"row\"><div class=\"col-md-4\"><h4>Icône 1</h4>***<div class=\"row\"><div class=\"col-md-4\">*** ***\r\nimage***bf_picto_boite1***Format carré***100***100***400***400***left***0*** *** *** * *** * *** *** *** ***\r\ntexte***bf_texte_boite1***Texte***15***15*** *** ***text***0*** ***Affiché en bas du recto a droite du mini logo metacartes*** * *** * *** *** *** ***\r\nlabelhtml***</div><div class=\"col-md-4\"><h4>Icône 2</h4>***</div><div class=\"col-md-4\">*** ***\r\nimage***bf_picto_boite2***Format carré***100***100***400***400***left***0*** *** *** * *** * *** *** *** ***\r\ntexte***bf_texte_boite2***Texte***15***15*** *** ***text***0*** ***Affiché en bas du recto a droite du mini logo metacartes*** * *** * *** *** *** ***\r\nlabelhtml***</div><div class=\"col-md-4\"><h4>Icône 3</h4>***</div><div class=\"col-md-4\">*** ***\r\nimage***bf_picto_boite3***Format carré***100***100***400***400***left***0*** *** *** * *** * *** *** *** ***\r\ntexte***bf_texte_boite3***Texte***15***15*** *** ***text***0*** ***Affiché en bas du recto a droite du mini logo metacartes*** * *** * *** *** *** ***\r\nlabelhtml***</div></div>***</div></div>*** ***\r\nlabelhtml***</div><div class=\"col-md-6\"><h3>Verso de la carte</h3>*** *** ***\r\ntextelong***bf_chapeau***L'essentiel (description en 500 caractères max)***80***8*** *** ***wiki***0*** ***Affiché au verso*** * *** * *** *** *** ***\r\nlien_internet***bf_url***Url pour le QR code (laisser vide pour renvoyer vers la page wiki)*** *** *** *** *** ***0*** *** *** * *** * *** *** *** ***\r\nlabelhtml***</div></div>*** *** ***\r\nlabelhtml***<hr /><h3>Contenus de la page associés à la carte</h3>*** *** ***\r\ntextelong***bf_description***Contenu textuel***80***12*** *** ***wiki***0*** ***Liens info tutoriels etc...*** * *** * *** *** *** ***\r\nfichier***fichier***Contenu multimédia*** *** *** *** *** ***0*** *** *** * *** * *** *** *** ***\r\ntextelong***bf_ressources***Ressources complémentaires*** *** *** *** ***wiki***0*** ***Autres ressources pour aller encore plus loin.*** * *** * *** *** *** ***\r\nlabelhtml***<hr /><h3>Informations contributions</h3>*** *** ***\r\ntextelong***contributeurices***Contributeurices*** *** *** *** ***wiki***0*** ***Le contenu de cette fiche a été rédigée à partir des contributions de personnes suivantes*** * *** * *** *** *** ***\r\ntexte***bf_licence***Licence*** *** ***CC-BY-SA*** ***text***1*** *** *** * *** * *** *** *** ***\r\ntextelong***bf_notes_edition***Notes sur l'édition*** *** *** *** ***wiki***0*** ***Commentaires et notes d'édition*** * *** * *** *** *** ***\r\nliste***ListeDegreDeMaturite***Degré de maturité*** *** *** ***bf_maturite*** ***0*** ***La carte est elle aboutie ou simplement au stade d'idée ?*** * *** * *** *** *** ***",
"bn_ce_i18n": "fr-FR",
"bn_only_one_entry": "N",
"bn_only_one_entry_message": null
}
}
6 changes: 3 additions & 3 deletions styles/qrcards.css
Original file line number Diff line number Diff line change
Expand Up @@ -311,9 +311,9 @@
font-size: var(--longtext-font-size);
color: var(--longtext-color);
text-align: left;
-webkit-line-clamp: 14;
-webkit-box-orient: vertical;
line-height: 1.152em;
-webkit-line-clamp: 19 !important;
line-height: 1.14em !important;
font-size: 12px !important;
}
.page-qrcard img {
border-radius: 0;
Expand Down

0 comments on commit 044d217

Please sign in to comment.