Top.Mail.Ru
  • CMS «GIRVAS»

    Un système de gestion de contenu flexible et gratuit, permettant de créer un site de toute orientation.

    Plus simple avec nous !

  • Absolument gratuit

    Arrêtez d'utiliser des systèmes de gestion anciens et payants ! L'ère des nouvelles solutions est arrivée - choisissez «GIRVAS» !

  • Solution carélienne

    «GIRVAS» a été développé en République de Carélie et est inscrit au Registre des logiciels russes du Ministère du développement numérique de la Fédération de Russie (numéro d'enregistrement n° 25012 du 27.11.2024).

0.2.0 Voïtsy

Version de CMS « GIRVAS » du 08.07.2025 à l"étape de développement « Voïtsy ».

Dernières modifications

  • Mise en conformité des noms de variables, méthodes et propriétés d"objets avec les règles PSR-1 ;
  • Mise en conformité du code avec les règles PSR-12 ;
  • Ajout de la condition IF EXISTS à la clause ALTER TABLE pour le constructeur de requêtes SQL ;
  • Ajout de la sensibilité à la casse pour les colonnes sélectionnées dans la clause SELECT pour le constructeur de requêtes SQL ;
  • Ajout d"une vérification de l"existence d"un groupe d"utilisateurs avec le même nom technique que celui en cours de modification ;
  • Ajout d"un argument avec le type de SGBD pour l"initialisation du constructeur de requêtes ;
  • Implémentation d"une méthode dans la classe du noyau système pour la vérification correcte des connexions HTTPS, y compris pour les environnements cloud et les proxys ;
  • Implémentation d"une méthode dans la classe du noyau système pour l"inclusion automatique de fichiers (auparavant, l"inclusion n"était pas isolée dans une méthode distincte) ;
  • Implémentation d"une interface commune pour les classes de localisation du noyau système, des modules et des thèmes ;
  • Implémentation du support du SGBD MySQL ;
  • Ajout d"un alias pour la fonction SQL d"agrégation COUNT(*) lors de la détermination du nombre d"enregistrements dans les tables de base de données pour l"adaptation à différents SGBD ;
  • Implémentation d"une méthode d"obtention de l"URL précédente (Referrer) pour la classe du parseur d"URL ;
  • Correction d"une erreur empêchant le collecteur de flux d"effectuer la collecte en raison de la présence d"entités HTML dans la description du contenu ;
  • Remplacement du logo du système dans le modèle principal du site par un nouveau ;
  • Mise à jour des localisations : ru_RU, en_US ;
  • Refactorisation du code du système, des modèles principaux du site et du panneau d"administration ;
  • Petites corrections stylistiques du modèle principal du site ;
  • Autres corrections mineures ;

Version précédente : 0.1.36 Alpha

Adaptation de l"ancienne base de données

Les requêtes SQL suivantes permettront d"adapter correctement la base de données PostgreSQL générée par le CMS « GIRVAS » avant la mise à jour 0.2.0 Voïtsy.

Renommage des colonnes

ALTER TABLE configurations RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE configurations RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE entries RENAME COLUMN author_id to "authorID";
ALTER TABLE entries RENAME COLUMN category_id to "categoryID";
ALTER TABLE entries RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE entries RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE entries_categories RENAME COLUMN parent_id to "parentID";
ALTER TABLE entries_categories RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE entries_categories RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE entries_comments RENAME COLUMN author_id to "authorID";
ALTER TABLE entries_comments RENAME COLUMN entry_id to "entryID";
ALTER TABLE entries_comments RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE entries_comments RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE entries_samples RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE entries_samples RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE metrics RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE metrics RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE pages_static RENAME COLUMN author_id to "authorID";
ALTER TABLE pages_static RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE pages_static RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE reports RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE users RENAME COLUMN password_hash to "passwordHash";
ALTER TABLE users RENAME COLUMN security_hash to "securityHash";
ALTER TABLE users RENAME COLUMN email_is_submitted to "emailIsSubmitted";
ALTER TABLE users RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE users RENAME COLUMN updated_unix_timestamp to updatedUnixTimestamp;
ALTER TABLE users_groups RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE users_groups RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE users_registration_submits RENAME COLUMN user_id to "userID";
ALTER TABLE users_registration_submits RENAME COLUMN submit_token to "submitToken";
ALTER TABLE users_registration_submits RENAME COLUMN refusal_token to "refusalToken";
ALTER TABLE users_registration_submits RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE users_sessions RENAME COLUMN user_id to "userID";
ALTER TABLE users_sessions RENAME COLUMN user_ip to "userIP";
ALTER TABLE users_sessions RENAME COLUMN type_id to "typeID";
ALTER TABLE users_sessions RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE users_sessions RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE web_channels RENAME COLUMN entries_category_id to "entriesCategoryID";
ALTER TABLE web_channels RENAME COLUMN type_id to "typeID";
ALTER TABLE web_channels RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE web_channels RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";

Renommage des propriétés des objets JSON dans les métadonnées

UPDATE users
SET metadata = jsonb_set(
    metadata,
    "{groupID}",
    metadata->"group_id"
) || 
jsonb_build_object("metadata", metadata - "group_id");

UPDATE entries
SET metadata = jsonb_set(
    metadata,
    "{isPublish}",
    metadata->"is_publish"
) || 
jsonb_build_object("metadata", metadata - "is_publish");

UPDATE entries
SET metadata = jsonb_set(
    metadata,
    "{previewURL}",
    metadata->"preview_url"
) || 
jsonb_build_object("metadata", metadata - "preview_url");

UPDATE pages_static
SET metadata = jsonb_set(
    metadata,
    "{isPublish}",
    metadata->"is_publish"
) || 
jsonb_build_object("metadata", metadata - "is_publish");

UPDATE pages_static
SET metadata = jsonb_set(
    metadata,
    "{previewURL}",
    metadata->"preview_url"
) || 
jsonb_build_object("metadata", metadata - "preview_url");

UPDATE metrics
SET "data" = jsonb_set(
    "data",
    "{metrics}",
    jsonb_set(
        "data"->"metrics",
        "{views}",
        (
            SELECT jsonb_object_agg(
                view.key,
                jsonb_set(
                    view.value,
                    "{URLTransfers}",
                    (
                        SELECT jsonb_agg(
                            jsonb_set(
                                transfer_elem,
                                array[transfer_key],
                                jsonb_set(
                                    transfer_elem->transfer_key,
                                    "{isVisitedNew}",
                                    (transfer_elem->transfer_key)->"is_visited_new"
                                ) - "is_visited_new"
                            )
                        )
                        FROM jsonb_array_elements(view.value->"url_transfers") AS transfer_elem,
                        jsonb_object_keys(transfer_elem) AS transfer_key
                    )
                ) - "url_transfers"
            )
            FROM jsonb_each("data"->"metrics"->"views") AS view
        )
    )
)
WHERE "data" @? "$.metrics.views.*.url_transfers";
Traductions

Commentaires

Cet article n'a pas de commentaires.