{"id":14955147,"url":"https://github.com/digiom/wotices","last_synced_at":"2025-10-24T07:30:54.086Z","repository":{"id":62551687,"uuid":"429144246","full_name":"digiom/wotices","owner":"digiom","description":"Notices for WordPress","archived":false,"fork":false,"pushed_at":"2023-06-23T12:24:25.000Z","size":24,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-01-29T08:34:34.542Z","etag":null,"topics":["notices","wordpress","wordpress-development","wordpress-php-library","wotices"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/digiom.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-17T17:44:30.000Z","updated_at":"2023-02-01T23:59:28.000Z","dependencies_parsed_at":"2024-09-29T06:17:39.991Z","dependency_job_id":null,"html_url":"https://github.com/digiom/wotices","commit_stats":{"total_commits":10,"total_committers":3,"mean_commits":"3.3333333333333335","dds":"0.19999999999999996","last_synced_commit":"8b859084fa24ba7ff0ada87bc65e5bc11d57f4d8"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digiom%2Fwotices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digiom%2Fwotices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digiom%2Fwotices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digiom%2Fwotices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digiom","download_url":"https://codeload.github.com/digiom/wotices/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237932068,"owners_count":19389560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["notices","wordpress","wordpress-development","wordpress-php-library","wotices"],"created_at":"2024-09-24T13:10:35.055Z","updated_at":"2025-10-24T07:30:48.771Z","avatar_url":"https://github.com/digiom.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Notices for WordPress\n\nБиблиотека для работы с уведомлениями в WordPress.\n\n## Использование\n\nДля использования нужно инициализировать объект класса Manager с параметрами.\nДанный менеджер управляет всеми уведомлениями и его можно наследовать.\n\n### Инициализация\n\n```PHP\n// уникальное имя, используется для уникальности данных\n$name = 'my_plugin_name_notices';\n\n// аргументы менеджера\n$args = \n[\n    'auto_save' =\u003e true, // автоматическое сохранение уведомлений, которые должны быть сохранены в деструкторе\n    'all_admin_notices' =\u003e false, // работает точно так же, как admin_notices, но имеет другое название. Наверное, для наглядности цели использования в коде плагина, также возможно в будущем будут работать в разных условиях.\n    'network_admin_notices' =\u003e false, //используется для работы с мультисайтовой сборкой, сообщение будет выводиться для администратора сети.\n    'user_admin_notices' =\u003e false, //используется для работы с мультисайтовой сборкой, сообщение будет выводиться для администратора сайта сети.\n];\n\n// инициализируем\n$wotices = new Manager($name, $args);\n```\n\n### Добавление уведомлений\n\nДва способа добавления:\n- Через создание отдельного объекта уведомления с дальнейшим добавлением в менеджер.\n- Через менеджер с помощью метода create().\n\nНеобходимо использовать тот способ, который удобнее.\n  \n#### Через создание объекта уведомления\n\n```PHP\n// уникальный идентификатор уведомления\n$notice_id = 'test-info';\n\n// создаем уведомление\n$notice = new InfoNotice($notice_id);\n\n// Требуемые параметры\n$notice-\u003esetId('идентификатор уведомления, строка или число');\n$notice-\u003esetData('Наименование уведомления, строка до 255 символов');\n\n// добавляем уведомление\n$wotices-\u003eadd($notice, $args);\n```\n\n#### Через менеджер\n\n```PHP\n$args = \n[\n    'id' =\u003e 'unique_id' // Уникальный идентификатор уведомления.\n    'type' =\u003e 'info' // Тип уведомления.\n    'data' =\u003e 'Наименование уведомления, можно с html тегами' // Наименование уведомления.\n    'extra_data' =\u003e 'расширенный контент, можно с html тегами' // Расширенный контент, выводимый после наименования.\n    'prefix' =\u003e '' // Набор символов, добавляемых перед идентификатором уведомления.\n    'dismissible' =\u003e false // Разрешить ли пользователю удалять уведомление.\n];\n\n$wotices-\u003ecreate($args);\n```\n\n### Сохранение уведомлений\nПо умолчанию все добавляемые уведомления размещаются во временной памяти. Но показ некоторых уведомлений требует сохранения. \n\nНапример, может потребоваться сохранить уведомление для пользователя совершившего действие\nкоторое привело к его переносу на другую страницу с показом уведомления именно там.\nИли же нам нужно создать уведомление для всех пользователей, которые должны отклонить уведомление.\n\n\n### Удаление уведомлений\n\nНекоторые уведомления имеют свойство хранения. Такие уведомления, в зависимости от контекста можно удалять.\n\n\n## Регистрация своего типа для уведомлений\n\nКогда не хватает стандартных возможностей для вывода уведомлений, можно зарегистрировать свой уникальный тип и использовать его.\n\nСделать это возможно с помощью метода registerType():\n\n```PHP\n$wotices-\u003eregisterType('unique_name', 'Namespace\\ClassName');\n```\n\nВсе, теперь уведомления типа unique_name можно использовать в коде.\n\n## Хуки (фильтры и действия)\n\nДля еще большей гибкости библиотеки, были добавлены хуки и действия. Префикс у каждого хука назначается на основании уникального значения при создании экземпляра менеджера.\n\n### Фильтр: (prefix)_manager_args\n\nПредназначен для фильтрации аргументов при создании экземпляра менеджера уведомлений.\n\n### Фильтр: (prefix)_manager_create_notices_args\n\nПеред созданием уведомления с помощью метода в менеджере уведомлений происходит применение данного фильтра.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigiom%2Fwotices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigiom%2Fwotices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigiom%2Fwotices/lists"}