{"id":375748,"date":"2026-10-05T17:26:48","date_gmt":"2026-10-05T17:26:48","guid":{"rendered":"https:\/\/br.wordpress.org\/plugins\/diario-oficial-virtua-brasil\/"},"modified":"2026-10-05T17:26:13","modified_gmt":"2026-10-05T17:26:13","slug":"virtua-brasil-diario-oficial","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/virtua-brasil-diario-oficial\/","author":23573868,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.2.5","stable_tag":"2.2.5","tested":"7.1.2","requires":"6.2","requires_php":"8.1","requires_plugins":null,"header_name":"Virtua Brasil - Di\u00e1rio Oficial","header_author":"Virtua Brasil","header_description":"Manage, publish, search, and preserve municipal Official Gazette editions.","assets_banners_color":"","last_updated":"2026-10-05 17:26:13","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wp.virtuabrasil.com.br\/plugin\/diario-oficial","header_author_uri":"https:\/\/www.virtuabrasil.com.br\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":206,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.2.5":{"tag":"2.2.5","author":"virtuabrasil","date":"2026-10-05 17:26:13","revision":3729367}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.2.5"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[247733,284535,284536,12345,25098],"plugin_category":[],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-375748","plugin","type-plugin","status-publish","hentry","plugin_tags-municipality","plugin_tags-official-gazette","plugin_tags-public-administration","plugin_tags-publications","plugin_tags-transparency","plugin_committers-virtuabrasil"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/virtua-brasil-diario-oficial.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Virtua Brasil - Di\u00e1rio Oficial is a WordPress plugin for managing and publishing municipal Official Gazette editions.<\/p>\n\n<p>Main features:<\/p>\n\n<ul>\n<li>Create and publish PDF editions.<\/li>\n<li>Public calendar highlighting dates with publications.<\/li>\n<li>Search by title, edition number, date range, category, and department\/agency.<\/li>\n<li>Public and administrative pagination.<\/li>\n<li>Friendly URLs organized by year and edition number.<\/li>\n<li>Manageable categories and departments\/agencies.<\/li>\n<li>File versioning for replacements and corrections.<\/li>\n<li>Remove items from public display while preserving administrative history.<\/li>\n<li>Audit trail with user, action, date, and time.<\/li>\n<li>Migration from the legacy plugin structure without deleting existing PDF files.<\/li>\n<li>Compatibility with shortcodes used by the previous version.<\/li>\n<li>Configurable colors to match the website's visual identity.<\/li>\n<li>Environment diagnostics and optional server capability information.<\/li>\n<li>WP-CLI commands for administration and migration.<\/li>\n<\/ul>\n\n<p>The plugin does not send data to external services and does not load code from CDNs.<\/p>\n\n<p>PDF processing does not execute external binaries or operating-system commands. Uploaded files are preserved, and publication does not depend on external server tools.<\/p>\n\n<p>This plugin helps organize and publish an Official Gazette, but it does not provide or guarantee legal compliance. The public body is responsible for determining the official publication channel, which acts must be published, applicable deadlines, document retention requirements, and the legal basis that applies under its own legislation.<\/p>\n\n<h3>Shortcodes<\/h3>\n\n<pre><code>[virtua_diario_oficial] - Displays the header, calendar, filters, publication list, and pagination.\n\n[virtua_diario_verificar] - Displays the document-code verification interface when this feature is used.\n\n[diario_oficial] - Displays the calendar and is kept for compatibility with the previous version.\n\n[diario_oficial_search] - Displays filters and search results and is kept for compatibility with the previous version.\n\n[diario_oficial_list] - Displays the paginated list and is kept for compatibility with the previous version.\n<\/code><\/pre>\n\n<p>Aliases with the <code>_v2<\/code> suffix from the previous version are also recognized.<\/p>\n\n<h3>Documentation and Support<\/h3>\n\n<ul>\n<li>Product page: https:\/\/wp.virtuabrasil.com.br\/plugin\/diario-oficial<\/li>\n<li>Full manual: https:\/\/wp.virtuabrasil.com.br\/plugin\/diario-oficial\/manual<\/li>\n<li>Support: https:\/\/wp.virtuabrasil.com.br\/atendimento<\/li>\n<li>Virtua Brasil: https:\/\/www.virtuabrasil.com.br\/<\/li>\n<\/ul>\n\n<p>These addresses are documentation and support links only. The plugin does not make automatic requests to these websites and does not send telemetry.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>The plugin stores information required to administer the Official Gazette in the WordPress database, including identifiers of WordPress users responsible for administrative actions and the corresponding date\/time records in the audit trail.<\/p>\n\n<p>PDF files are stored in the WordPress uploads directory. The plugin does not send personal data, documents, metrics, or telemetry to external services.<\/p>\n\n<p>Administrators should define access, retention, and publication policies that comply with the rules applicable to their organization.<\/p>\n\n<h3>PDF Page Counting<\/h3>\n\n<p>Page counts are read locally using the bundled Smalot\/PdfParser library (LGPL-3.0) and Symfony mbstring polyfill (MIT). Licenses and modification details are in includes\/vendor. No external service or executable is used. PHP zlib and iconv are required for inspection. Encrypted, unsupported files, files over 32 MiB, or inspections exceeding available memory may have an unknown page count; the PDF remains unchanged and publishable.<\/p>\n\n<p>For an existing edition, open its edit screen and choose Recalcular p\u00e1ginas (Recalculate pages) in the file history. This updates only the stored page count and adds an audit entry when it changes; it does not replace the PDF or create a new edition.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In the WordPress dashboard, go to Plugins &gt; Add New Plugin &gt; Upload Plugin.<\/li>\n<li>Upload the ZIP file and activate the plugin.<\/li>\n<li>Go to Official Gazette &gt; Settings and review the public page, colors, and other options.<\/li>\n<li>Create or edit the Official Gazette page and use the <code>[virtua_diario_oficial]<\/code> shortcode for the complete interface.<\/li>\n<li>On websites already using the previous version, go to Official Gazette &gt; Migration and complete the import before removing the old plugin.<\/li>\n<\/ol>\n\n<p>Before migrating an existing archive, back up the database and <code>wp-content\/uploads\/diario-oficial<\/code>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20require%20external%20tools%20to%20process%20pdfs%3F\"><h3>Does the plugin require external tools to process PDFs?<\/h3><\/dt>\n<dd><p>No. The plugin does not execute external binaries or operating-system commands. PDF files are stored in WordPress and preserved as uploaded.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20delete%20the%20previous%20pdf%20when%20a%20file%20is%20replaced%3F\"><h3>Does the plugin delete the previous PDF when a file is replaced?<\/h3><\/dt>\n<dd><p>No. Replacements and corrections keep previous versions recorded for administrative and auditing purposes.<\/p><\/dd>\n<dt id=\"can%20a%20publication%20be%20removed%20from%20the%20public%20website%20without%20deleting%20its%20history%3F\"><h3>Can a publication be removed from the public website without deleting its history?<\/h3><\/dt>\n<dd><p>Yes. A publication can be removed from public display while remaining available in the administrative area, together with its removal reason and audit trail.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20guarantee%20that%20a%20municipality%20complies%20with%20every%20law%20applicable%20to%20its%20official%20gazette%3F\"><h3>Does the plugin guarantee that a municipality complies with every law applicable to its Official Gazette?<\/h3><\/dt>\n<dd><p>No. The plugin provides technical features for publication, organization, versioning, and transparency. Legal compliance depends on applicable federal, state, and municipal rules and must be validated by the public body and its legal advisors.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20documents%20or%20data%20to%20virtua%20brasil%3F\"><h3>Does the plugin send documents or data to Virtua Brasil?<\/h3><\/dt>\n<dd><p>No. Core functionality runs on the WordPress website and its hosting server. The plugin has no telemetry and does not send PDF files to external services.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.4<\/h4>\n\n<ul>\n<li>Security and WordPress.org compatibility pass: output escaping, filesystem API usage, upload cleanup and query-review adjustments.<\/li>\n<\/ul>\n\n<h4>2.2.3<\/h4>\n\n<ul>\n<li>Centralizes runtime plugin metadata (name, version, author, and text domain) from the main plugin header.<\/li>\n<li>Adds legal-basis source selection with either an external URL or a PDF from the WordPress Media Library.<\/li>\n<li>Changes the public plugin name to <code>Virtua Brasil - Di\u00e1rio Oficial<\/code> and prepares the requested slug <code>virtua-brasil-diario-oficial<\/code>.<\/li>\n<li>Changes the base plugin description and WordPress.org readme documentation to English for directory review and translation compatibility.<\/li>\n<li>Stops writing executable PHP code to the uploads archive protection file and creates an empty <code>index.php<\/code> instead.<\/li>\n<li>Makes the direct-access guard in the WP-CLI integration explicit.<\/li>\n<\/ul>\n\n<h4>2.2.2<\/h4>\n\n<ul>\n<li>Adjusts PDF processing for WordPress.org directory checks without executing external server binaries.<\/li>\n<li>Aligns plugin metadata with the submitted directory slug.<\/li>\n<li>Treats edition numbering per year, allowing the sequence to restart at 1 each new year.<\/li>\n<li>Uses the date range as the portal time filter, avoiding conflicts between a date and a separately selected year.<\/li>\n<li>Automatically fills the current-year range when opening search and updates the counter according to the searched period.<\/li>\n<li>Adjusts the \u201cGo to page\u201d selector for large pagination sets.<\/li>\n<li>Removes the visual indicator after the edition number on public cards.<\/li>\n<li>Prepares metadata and documentation for public distribution.<\/li>\n<li>Adds an About screen with institutional information, manual, product page, and support links.<\/li>\n<\/ul>\n\n<h4>2.2.1<\/h4>\n\n<ul>\n<li>Reworks frontend styles with stronger isolation to reduce theme conflicts.<\/li>\n<li>Fixes icon, card, calendar, button, and pagination proportions in layouts with sidebars.<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Redesigns the frontend to respect the real content-column width provided by the active theme.<\/li>\n<li>Adds a quick month\/year selector and a shortcut to the current month.<\/li>\n<li>Adopts public URLs organized by year and edition number.<\/li>\n<li>Adds first-page and last-page shortcuts to AJAX pagination.<\/li>\n<\/ul>\n\n<h4>2.1.2<\/h4>\n\n<ul>\n<li>Adds a secure button to open PDF files from the administrative area.<\/li>\n<li>Automatically suggests the next edition number and corresponding title.<\/li>\n<li>Validates duplicate edition numbers.<\/li>\n<li>Improves legal-basis and migration guidance.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Complete rewrite with dedicated database tables, migration, versioning, auditing, filters, pagination, and a new frontend.<\/li>\n<\/ul>","raw_excerpt":"Manage and publish municipal Official Gazette editions with a calendar, filters, version history, migration tools, and audit logs.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/375748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=375748"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/virtuabrasil"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=375748"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=375748"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=375748"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=375748"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=375748"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=375748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}