"},{"table_name":"rex_neues_entry","prio":10,"type_id":"value","type_name":"datetime_local","db_type":"datetime","list_hidden":0,"search":0,"name":"publishdate","label":"translate:neues_publishdate","not_required":"","attributes":"{\"requried\":\"required\"}","no_db":"0","notice":"","current_date":"1","max":"","min":""},{"table_name":"rex_neues_entry","prio":11,"type_id":"value","type_name":"be_manager_relation","db_type":"int(10) unsigned","list_hidden":0,"search":1,"name":"author_id","label":"translate:neues_entry_author_id","not_required":"","attributes":"","notice":"","table":"rex_neues_author","empty_option":"1","size":"","field":"name","type":"2","empty_value":"","relation_table":"","filter":""},{"table_name":"rex_neues_entry","prio":12,"type_id":"validate","type_name":"compare_value","db_type":"","list_hidden":1,"search":0,"name":"publishdate","label":"","not_required":"","message":"translate:neues_publishdate_validate_compare_value","compare_type":"==","compare_value":"0000-00-00 00:00:00"},{"table_name":"rex_neues_entry","prio":13,"type_id":"value","type_name":"html","db_type":"none","list_hidden":0,"search":0,"name":"col2","label":"","not_required":"","html":"<\/div>\r\n
"},{"table_name":"rex_neues_entry","prio":14,"type_id":"value","type_name":"text","db_type":"varchar(191)","list_hidden":1,"search":0,"name":"url","label":"translate:neues_external_url","not_required":"","attributes":"","default":"","no_db":"0","notice":"translate:neues_external_url_notice","append":"","prepend":""},{"table_name":"rex_neues_entry","prio":15,"type_id":"validate","type_name":"type","db_type":"","list_hidden":1,"search":0,"name":"url","label":"","not_required":"1","type":"url","message":"translate:neues_external_url_validate_url"},{"table_name":"rex_neues_entry","prio":16,"type_id":"value","type_name":"be_manager_relation","db_type":"text","list_hidden":0,"search":1,"name":"category_ids","label":"translate:neues_category_ids","not_required":"","attributes":"","notice":"","table":"rex_neues_category","empty_option":"1","size":"","field":"name","type":"3","empty_value":"","relation_table":"rex_neues_entry_category_rel","filter":""},{"table_name":"rex_neues_entry","prio":17,"type_id":"value","type_name":"be_media_preview","db_type":"text","list_hidden":0,"search":0,"name":"image","label":"translate:neues_image","not_required":"","multiple":"0","notice":"","types":"svg,jpg,jpeg,gif,png","preview":"1","category":""},{"table_name":"rex_neues_entry","prio":18,"type_id":"value","type_name":"be_media","db_type":"text","list_hidden":1,"search":0,"name":"images","label":"translate:neues_images","not_required":"","multiple":"1","notice":"","types":"jpg,png","preview":"1","category":""},{"table_name":"rex_neues_entry","prio":19,"type_id":"value","type_name":"html","db_type":"none","list_hidden":0,"search":0,"name":"row_end","label":"","not_required":"","html":"<\/div>\r\n<\/div>"},{"table_name":"rex_neues_entry","prio":20,"type_id":"value","type_name":"datestamp","db_type":"datetime","list_hidden":1,"search":0,"name":"createdate","label":"translate:neues_createdate","not_required":"","no_db":"0","only_empty":"1","format":"","modify_default":""},{"table_name":"rex_neues_entry","prio":21,"type_id":"value","type_name":"be_user","db_type":"varchar(191)","list_hidden":1,"search":0,"name":"createuser","label":"translate:neues_createuser","not_required":"","only_empty":"1","show_value":"0"},{"table_name":"rex_neues_entry","prio":22,"type_id":"value","type_name":"datestamp","db_type":"datetime","list_hidden":1,"search":0,"name":"updatedate","label":"translate:neues_updateuser","not_required":"","no_db":"0","only_empty":"0","format":"","modify_default":""},{"table_name":"rex_neues_entry","prio":23,"type_id":"value","type_name":"be_user","db_type":"varchar(191)","list_hidden":1,"search":0,"name":"updateuser","label":"translate:neues_updateuser","not_required":"","only_empty":"0","show_value":"0"}]},"rex_neues_entry_lang":{"table":{"status":1,"table_name":"rex_neues_entry_lang","name":"\ud83d\udcf0 Sprache","description":"","list_amount":50,"list_sortfield":"id","list_sortorder":"ASC","search":0,"hidden":1,"export":0,"import":0,"mass_deletion":0,"mass_edit":0,"schema_overwrite":1,"history":0,"createdate":"0000-00-00 00:00:00","updatedate":"0000-00-00 00:00:00","createuser":"","updateuser":""},"fields":[{"table_name":"rex_neues_entry_lang","prio":1,"type_id":"value","type_name":"be_manager_relation","db_type":"text","list_hidden":0,"search":0,"name":"entry","label":"translate:neues_language_entry","not_required":"","attributes":"","notice":"translate:neues_language_entry_notice","table":"rex_neues_entry","empty_option":"1","size":"","field":"lang_id","type":"4","empty_value":"","relation_table":"rex_neues_entry","filter":""},{"table_name":"rex_neues_entry_lang","prio":2,"type_id":"value","type_name":"text","db_type":"varchar(191)","list_hidden":0,"search":1,"name":"code","label":"translate:neues_language_code","not_required":"","attributes":"","default":"de","no_db":"0","notice":"translate:neues_language_code_notice","append":"","prepend":""},{"table_name":"rex_neues_entry_lang","prio":3,"type_id":"value","type_name":"text","db_type":"varchar(191)","list_hidden":0,"search":1,"name":"name","label":"translate:neues_language_name","not_required":"","attributes":"","default":"Deutsch","no_db":"0","notice":"translate:neues_language_name_notice","append":"","prepend":""}]},"rex_neues_author":{"table":{"status":1,"table_name":"rex_neues_author","name":"translate:neues_author_table","description":"","list_amount":50,"list_sortfield":"id","list_sortorder":"ASC","search":1,"hidden":1,"export":1,"import":1,"mass_deletion":0,"mass_edit":0,"schema_overwrite":1,"history":0,"createdate":"0000-00-00 00:00:00","updatedate":"0000-00-00 00:00:00","createuser":"","updateuser":""},"fields":[{"table_name":"rex_neues_author","prio":1,"type_id":"value","type_name":"text","db_type":"varchar(191)","list_hidden":0,"search":1,"name":"name","label":"translate:neues_author_name","not_required":"","attributes":"","default":"","no_db":"0","notice":"","append":"","prepend":""},{"table_name":"rex_neues_author","prio":2,"type_id":"value","type_name":"text","db_type":"varchar(191)","list_hidden":0,"search":1,"name":"nickname","label":"translate:neues_author_nickname","not_required":"","attributes":"","default":"","no_db":"0","notice":"","append":"","prepend":""},{"table_name":"rex_neues_author","prio":3,"type_id":"value","type_name":"textarea","db_type":"text","list_hidden":1,"search":0,"name":"text","label":"translate:neues_author_text","not_required":"","attributes":"","default":"","no_db":"0","notice":""},{"table_name":"rex_neues_author","prio":4,"type_id":"value","type_name":"choice","db_type":"text","list_hidden":0,"search":1,"name":"be_user_id","label":"translate:neues_author_be_user_id","not_required":"","multiple":"0","expanded":"0","choices":"select id as value, login as label from rex_user","choice_attributes":"","attributes":"","default":"","no_db":"0","notice":"","preferred_choices":"","group_by":"","placeholder":"Bitte w\u00e4hlen","group_attributes":"","choice_label":""}]},"rex_neues_entry_category_rel":{"table":{"status":1,"table_name":"rex_neues_entry_category_rel","name":"\ud83d\udcf0 translate:neues_entry_category_rel","description":"","list_amount":50,"list_sortfield":"id","list_sortorder":"ASC","search":0,"hidden":1,"export":0,"import":0,"mass_deletion":0,"mass_edit":0,"schema_overwrite":1,"history":0,"createdate":"0000-00-00 00:00:00","updatedate":"0000-00-00 00:00:00","createuser":"","updateuser":""},"fields":[{"table_name":"rex_neues_entry_category_rel","prio":1,"type_id":"value","type_name":"be_manager_relation","db_type":"text","list_hidden":0,"search":0,"name":"entry_id","label":"translate:neues_entry","not_required":"","attributes":"","notice":"","table":"rex_neues_entry","empty_option":"0","size":"","field":"name","type":"0","empty_value":"","relation_table":"","filter":""},{"table_name":"rex_neues_entry_category_rel","prio":2,"type_id":"value","type_name":"be_manager_relation","db_type":"text","list_hidden":1,"search":0,"name":"category_id","label":"translate:neues_category_title","not_required":"","attributes":"","notice":"","table":"rex_neues_category","empty_option":"0","size":"","field":"name","type":"0","empty_value":"","relation_table":"","filter":""}]}}
+{
+ "rex_neues_author": {
+ "table": {
+ "status": 1,
+ "table_name": "rex_neues_author",
+ "name": "translate:neues_author_table",
+ "description": "",
+ "list_amount": 50,
+ "list_sortfield": "id",
+ "list_sortorder": "ASC",
+ "search": 1,
+ "hidden": 1,
+ "export": 1,
+ "import": 1,
+ "mass_deletion": 0,
+ "mass_edit": 0,
+ "schema_overwrite": 1,
+ "history": 0,
+ "createdate": "0000-00-00 00:00:00",
+ "updatedate": "0000-00-00 00:00:00",
+ "createuser": "",
+ "updateuser": ""
+ },
+ "fields": [
+ {
+ "table_name": "rex_neues_author",
+ "prio": 1,
+ "type_id": "value",
+ "type_name": "text",
+ "db_type": "varchar(191)",
+ "list_hidden": 0,
+ "search": 1,
+ "name": "name",
+ "label": "translate:neues_author_name",
+ "not_required": "",
+ "default": "",
+ "no_db": "0",
+ "attributes": "",
+ "notice": "",
+ "append": "",
+ "prepend": ""
+ },
+ {
+ "table_name": "rex_neues_author",
+ "prio": 2,
+ "type_id": "value",
+ "type_name": "text",
+ "db_type": "varchar(191)",
+ "list_hidden": 0,
+ "search": 1,
+ "name": "nickname",
+ "label": "translate:neues_author_nickname",
+ "not_required": "",
+ "default": "",
+ "no_db": "0",
+ "attributes": "",
+ "notice": "",
+ "append": "",
+ "prepend": ""
+ },
+ {
+ "table_name": "rex_neues_author",
+ "prio": 3,
+ "type_id": "value",
+ "type_name": "textarea",
+ "db_type": "text",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "text",
+ "label": "translate:neues_author_text",
+ "not_required": "",
+ "default": "",
+ "no_db": "0",
+ "attributes": "",
+ "notice": ""
+ },
+ {
+ "table_name": "rex_neues_author",
+ "prio": 4,
+ "type_id": "value",
+ "type_name": "choice",
+ "db_type": "text",
+ "list_hidden": 0,
+ "search": 1,
+ "name": "be_user_id",
+ "label": "translate:neues_author_be_user_id",
+ "not_required": "",
+ "multiple": "0",
+ "expanded": "0",
+ "choices": "select id as value, login as label from rex_user",
+ "choice_attributes": "",
+ "default": "",
+ "no_db": "0",
+ "attributes": "",
+ "notice": "",
+ "preferred_choices": "",
+ "group_by": "",
+ "placeholder": "Bitte wählen",
+ "group_attributes": "",
+ "choice_label": ""
+ }
+ ]
+ },
+ "rex_neues_category": {
+ "table": {
+ "status": 1,
+ "table_name": "rex_neues_category",
+ "name": "📰 Tags",
+ "description": "",
+ "list_amount": 50,
+ "list_sortfield": "name",
+ "list_sortorder": "ASC",
+ "search": 0,
+ "hidden": 1,
+ "export": 0,
+ "import": 0,
+ "mass_deletion": 0,
+ "mass_edit": 0,
+ "schema_overwrite": 1,
+ "history": 0,
+ "createdate": "0000-00-00 00:00:00",
+ "updatedate": "0000-00-00 00:00:00",
+ "createuser": "",
+ "updateuser": ""
+ },
+ "fields": [
+ {
+ "table_name": "rex_neues_category",
+ "prio": 1,
+ "type_id": "value",
+ "type_name": "be_manager_relation",
+ "db_type": "text",
+ "list_hidden": 1,
+ "search": 1,
+ "name": "date_id",
+ "label": "translate:neues_date_ids",
+ "not_required": "",
+ "attributes": "",
+ "notice": "translate:neues_date_id_notice",
+ "table": "rex_neues_entry",
+ "empty_option": "1",
+ "size": "",
+ "field": "name",
+ "type": "3",
+ "empty_value": "",
+ "relation_table": "rex_neues_entry_category_rel",
+ "filter": ""
+ },
+ {
+ "table_name": "rex_neues_category",
+ "prio": 2,
+ "type_id": "value",
+ "type_name": "text",
+ "db_type": "varchar(191)",
+ "list_hidden": 0,
+ "search": 1,
+ "name": "name",
+ "label": "translate:neues_category_title",
+ "not_required": "",
+ "default": "",
+ "no_db": "0",
+ "attributes": "{\"required\":\"required\"}",
+ "notice": "translate:neues_external_url_notice",
+ "append": "",
+ "prepend": ""
+ },
+ {
+ "table_name": "rex_neues_category",
+ "prio": 3,
+ "type_id": "validate",
+ "type_name": "unique",
+ "db_type": "",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "name",
+ "label": "",
+ "not_required": "",
+ "message": "translate:neues_category_name_validate_unique",
+ "table": "",
+ "empty_option": "0"
+ },
+ {
+ "table_name": "rex_neues_category",
+ "prio": 4,
+ "type_id": "value",
+ "type_name": "be_media_preview",
+ "db_type": "text",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "image",
+ "label": "translate:neues_category_image",
+ "not_required": "",
+ "multiple": "0",
+ "notice": "",
+ "types": "jpg,jpeg,png,gif,svg",
+ "preview": "1",
+ "category": ""
+ },
+ {
+ "table_name": "rex_neues_category",
+ "prio": 5,
+ "type_id": "value",
+ "type_name": "choice",
+ "db_type": "text",
+ "list_hidden": 1,
+ "search": 1,
+ "name": "status",
+ "label": "translate:neues_status",
+ "not_required": "",
+ "multiple": "0",
+ "expanded": "0",
+ "choices": "translate:neues_status_draft=-1,translate:neues_status_online=1",
+ "choice_attributes": "",
+ "default": "0",
+ "no_db": "0",
+ "attributes": "",
+ "notice": "translate:neues_category_status_notice",
+ "preferred_choices": "",
+ "group_by": "",
+ "placeholder": "",
+ "group_attributes": "",
+ "choice_label": ""
+ },
+ {
+ "table_name": "rex_neues_category",
+ "prio": 6,
+ "type_id": "value",
+ "type_name": "be_user",
+ "db_type": "varchar(191)",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "createuser",
+ "label": "translate:neues_createuser",
+ "not_required": "",
+ "only_empty": "1",
+ "show_value": "0"
+ },
+ {
+ "table_name": "rex_neues_category",
+ "prio": 7,
+ "type_id": "value",
+ "type_name": "be_user",
+ "db_type": "varchar(191)",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "updateuser",
+ "label": "translate:neues_updateuser",
+ "not_required": "",
+ "only_empty": "0",
+ "show_value": "0"
+ },
+ {
+ "table_name": "rex_neues_category",
+ "prio": 8,
+ "type_id": "value",
+ "type_name": "datestamp",
+ "db_type": "datetime",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "updatedate",
+ "label": "translate:neues_updatedate",
+ "not_required": "",
+ "no_db": "0",
+ "only_empty": "0",
+ "format": "Y-m-d H:i:s",
+ "modify_default": ""
+ },
+ {
+ "table_name": "rex_neues_category",
+ "prio": 9,
+ "type_id": "value",
+ "type_name": "datestamp",
+ "db_type": "datetime",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "createdate",
+ "label": "translate:neues_createdate",
+ "not_required": "",
+ "no_db": "0",
+ "only_empty": "1",
+ "format": "Y-m-d H:i:s",
+ "modify_default": ""
+ },
+ {
+ "table_name": "rex_neues_category",
+ "prio": 10,
+ "type_id": "validate",
+ "type_name": "empty",
+ "db_type": "",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "name",
+ "label": "",
+ "not_required": "",
+ "message": "Bitte geben Sie einen Namen ein."
+ }
+ ]
+ },
+ "rex_neues_entry": {
+ "table": {
+ "status": 1,
+ "table_name": "rex_neues_entry",
+ "name": "📰 News",
+ "description": "",
+ "list_amount": 500,
+ "list_sortfield": "publishdate",
+ "list_sortorder": "DESC",
+ "search": 1,
+ "hidden": 1,
+ "export": 1,
+ "import": 1,
+ "mass_deletion": 0,
+ "mass_edit": 0,
+ "schema_overwrite": 1,
+ "history": 0,
+ "createdate": "0000-00-00 00:00:00",
+ "updatedate": "0000-00-00 00:00:00",
+ "createuser": "",
+ "updateuser": ""
+ },
+ "fields": [
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 1,
+ "type_id": "value",
+ "type_name": "html",
+ "db_type": "none",
+ "list_hidden": 0,
+ "search": 0,
+ "name": "row_start",
+ "label": "",
+ "not_required": "",
+ "html": "
\r\n
"
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 2,
+ "type_id": "value",
+ "type_name": "choice_status",
+ "db_type": "text",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "status",
+ "label": "translate:neues_status",
+ "not_required": "",
+ "multiple": "0",
+ "expanded": "0",
+ "choices": "translate:neues_status_deleted=2,translate:neues_status_draft=-1,translate:neues_status_planned=0,translate:neues_status_online=1",
+ "choice_attributes": "",
+ "default": "",
+ "no_db": "0",
+ "attributes": "",
+ "notice": "translate:neues_status_notice",
+ "preferred_choices": "",
+ "group_by": "",
+ "placeholder": "",
+ "group_attributes": "",
+ "choice_label": ""
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 3,
+ "type_id": "value",
+ "type_name": "text",
+ "db_type": "varchar(191)",
+ "list_hidden": 0,
+ "search": 1,
+ "name": "name",
+ "label": "translate:neues_name",
+ "not_required": "",
+ "default": "",
+ "no_db": "0",
+ "attributes": "{\"required\":\"required\"}",
+ "notice": "transalte:neues_name_notice",
+ "append": "",
+ "prepend": ""
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 4,
+ "type_id": "validate",
+ "type_name": "empty",
+ "db_type": "",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "name",
+ "label": "",
+ "not_required": "",
+ "message": "translate:neues_name_validate_empty"
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 5,
+ "type_id": "value",
+ "type_name": "textarea",
+ "db_type": "text",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "teaser",
+ "label": "translate:neues_teaser",
+ "not_required": "",
+ "default": "",
+ "no_db": "0",
+ "attributes": "{\"style\":\"max-height: 100px;\"}",
+ "notice": "translate:neues_teaser_notice"
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 6,
+ "type_id": "value",
+ "type_name": "textarea",
+ "db_type": "text",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "description",
+ "label": "translate:neues_description",
+ "not_required": "",
+ "default": "",
+ "no_db": "0",
+ "attributes": "{\"class\":\"###neues-settings-editor###\"}",
+ "notice": "translate:neues_description_notice"
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 7,
+ "type_id": "value",
+ "type_name": "domain",
+ "db_type": "text",
+ "list_hidden": 1,
+ "search": 1,
+ "name": "domain_ids",
+ "label": "translate:neues_domain_ids",
+ "not_required": "",
+ "attributes": "",
+ "notice": "translate:neues_domain_ids_notice"
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 8,
+ "type_id": "value",
+ "type_name": "be_manager_relation",
+ "db_type": "text",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "lang_id",
+ "label": "translate:neues_language",
+ "not_required": "",
+ "attributes": "",
+ "notice": "",
+ "table": "rex_neues_entry_lang",
+ "empty_option": "1",
+ "size": "",
+ "field": "name",
+ "type": "0",
+ "empty_value": "",
+ "relation_table": "",
+ "filter": ""
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 9,
+ "type_id": "value",
+ "type_name": "html",
+ "db_type": "none",
+ "list_hidden": 0,
+ "search": 0,
+ "name": "col",
+ "label": "",
+ "not_required": "",
+ "html": "
\r\n
"
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 10,
+ "type_id": "value",
+ "type_name": "datetime_local",
+ "db_type": "datetime",
+ "list_hidden": 0,
+ "search": 0,
+ "name": "publishdate",
+ "label": "translate:neues_publishdate",
+ "not_required": "",
+ "no_db": "0",
+ "attributes": "{\"requried\":\"required\"}",
+ "notice": "",
+ "current_date": "1",
+ "max": "",
+ "min": ""
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 11,
+ "type_id": "value",
+ "type_name": "be_manager_relation",
+ "db_type": "int(10) unsigned",
+ "list_hidden": 0,
+ "search": 1,
+ "name": "author_id",
+ "label": "translate:neues_entry_author_id",
+ "not_required": "",
+ "attributes": "",
+ "notice": "",
+ "table": "rex_neues_author",
+ "empty_option": "1",
+ "size": "",
+ "field": "name",
+ "type": "2",
+ "empty_value": "",
+ "relation_table": "",
+ "filter": ""
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 12,
+ "type_id": "validate",
+ "type_name": "compare_value",
+ "db_type": "",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "publishdate",
+ "label": "",
+ "not_required": "",
+ "message": "translate:neues_publishdate_validate_compare_value",
+ "compare_type": "==",
+ "compare_value": "0000-00-00 00:00:00"
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 13,
+ "type_id": "value",
+ "type_name": "html",
+ "db_type": "none",
+ "list_hidden": 0,
+ "search": 0,
+ "name": "col2",
+ "label": "",
+ "not_required": "",
+ "html": "
\r\n
"
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 14,
+ "type_id": "value",
+ "type_name": "text",
+ "db_type": "varchar(191)",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "url",
+ "label": "translate:neues_external_url",
+ "not_required": "",
+ "default": "",
+ "no_db": "0",
+ "attributes": "",
+ "notice": "translate:neues_external_url_notice",
+ "append": "",
+ "prepend": ""
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 15,
+ "type_id": "validate",
+ "type_name": "type",
+ "db_type": "",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "url",
+ "label": "",
+ "not_required": "1",
+ "message": "translate:neues_external_url_validate_url",
+ "type": "url"
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 16,
+ "type_id": "value",
+ "type_name": "be_manager_relation",
+ "db_type": "text",
+ "list_hidden": 0,
+ "search": 1,
+ "name": "category_ids",
+ "label": "translate:neues_category_ids",
+ "not_required": "",
+ "attributes": "",
+ "notice": "",
+ "table": "rex_neues_category",
+ "empty_option": "1",
+ "size": "",
+ "field": "name",
+ "type": "3",
+ "empty_value": "",
+ "relation_table": "rex_neues_entry_category_rel",
+ "filter": ""
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 17,
+ "type_id": "value",
+ "type_name": "be_media_preview",
+ "db_type": "text",
+ "list_hidden": 0,
+ "search": 0,
+ "name": "image",
+ "label": "translate:neues_image",
+ "not_required": "",
+ "multiple": "0",
+ "notice": "",
+ "types": "svg,jpg,jpeg,gif,png",
+ "preview": "1",
+ "category": ""
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 18,
+ "type_id": "value",
+ "type_name": "be_media",
+ "db_type": "text",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "images",
+ "label": "translate:neues_images",
+ "not_required": "",
+ "multiple": "1",
+ "notice": "",
+ "types": "jpg,png",
+ "preview": "1",
+ "category": ""
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 19,
+ "type_id": "value",
+ "type_name": "html",
+ "db_type": "none",
+ "list_hidden": 0,
+ "search": 0,
+ "name": "row_end",
+ "label": "",
+ "not_required": "",
+ "html": "
\r\n
"
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 20,
+ "type_id": "value",
+ "type_name": "datestamp",
+ "db_type": "datetime",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "createdate",
+ "label": "translate:neues_createdate",
+ "not_required": "",
+ "no_db": "0",
+ "only_empty": "1",
+ "format": "",
+ "modify_default": ""
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 21,
+ "type_id": "value",
+ "type_name": "be_user",
+ "db_type": "varchar(191)",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "createuser",
+ "label": "translate:neues_createuser",
+ "not_required": "",
+ "only_empty": "1",
+ "show_value": "0"
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 22,
+ "type_id": "value",
+ "type_name": "datestamp",
+ "db_type": "datetime",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "updatedate",
+ "label": "translate:neues_updateuser",
+ "not_required": "",
+ "no_db": "0",
+ "only_empty": "0",
+ "format": "",
+ "modify_default": ""
+ },
+ {
+ "table_name": "rex_neues_entry",
+ "prio": 23,
+ "type_id": "value",
+ "type_name": "be_user",
+ "db_type": "varchar(191)",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "updateuser",
+ "label": "translate:neues_updateuser",
+ "not_required": "",
+ "only_empty": "0",
+ "show_value": "0"
+ }
+ ]
+ },
+ "rex_neues_entry_lang": {
+ "table": {
+ "status": 1,
+ "table_name": "rex_neues_entry_lang",
+ "name": "📰 Sprache",
+ "description": "",
+ "list_amount": 50,
+ "list_sortfield": "id",
+ "list_sortorder": "ASC",
+ "search": 0,
+ "hidden": 1,
+ "export": 0,
+ "import": 0,
+ "mass_deletion": 0,
+ "mass_edit": 0,
+ "schema_overwrite": 1,
+ "history": 0,
+ "createdate": "0000-00-00 00:00:00",
+ "updatedate": "0000-00-00 00:00:00",
+ "createuser": "",
+ "updateuser": ""
+ },
+ "fields": [
+ {
+ "table_name": "rex_neues_entry_lang",
+ "prio": 1,
+ "type_id": "value",
+ "type_name": "be_manager_relation",
+ "db_type": "text",
+ "list_hidden": 0,
+ "search": 0,
+ "name": "entry",
+ "label": "translate:neues_language_entry",
+ "not_required": "",
+ "attributes": "",
+ "notice": "translate:neues_language_entry_notice",
+ "table": "rex_neues_entry",
+ "empty_option": "1",
+ "size": "",
+ "field": "lang_id",
+ "type": "4",
+ "empty_value": "",
+ "relation_table": "rex_neues_entry",
+ "filter": ""
+ },
+ {
+ "table_name": "rex_neues_entry_lang",
+ "prio": 2,
+ "type_id": "value",
+ "type_name": "text",
+ "db_type": "varchar(191)",
+ "list_hidden": 0,
+ "search": 1,
+ "name": "code",
+ "label": "translate:neues_language_code",
+ "not_required": "",
+ "default": "de",
+ "no_db": "0",
+ "attributes": "",
+ "notice": "translate:neues_language_code_notice",
+ "append": "",
+ "prepend": ""
+ },
+ {
+ "table_name": "rex_neues_entry_lang",
+ "prio": 3,
+ "type_id": "value",
+ "type_name": "text",
+ "db_type": "varchar(191)",
+ "list_hidden": 0,
+ "search": 1,
+ "name": "name",
+ "label": "translate:neues_language_name",
+ "not_required": "",
+ "default": "Deutsch",
+ "no_db": "0",
+ "attributes": "",
+ "notice": "translate:neues_language_name_notice",
+ "append": "",
+ "prepend": ""
+ }
+ ]
+ },
+ "rex_neues_entry_category_rel": {
+ "table": {
+ "status": 1,
+ "table_name": "rex_neues_entry_category_rel",
+ "name": "📰 translate:neues_entry_category_rel",
+ "description": "",
+ "list_amount": 50,
+ "list_sortfield": "id",
+ "list_sortorder": "ASC",
+ "search": 0,
+ "hidden": 1,
+ "export": 0,
+ "import": 0,
+ "mass_deletion": 0,
+ "mass_edit": 0,
+ "schema_overwrite": 1,
+ "history": 0,
+ "createdate": "0000-00-00 00:00:00",
+ "updatedate": "0000-00-00 00:00:00",
+ "createuser": "",
+ "updateuser": ""
+ },
+ "fields": [
+ {
+ "table_name": "rex_neues_entry_category_rel",
+ "prio": 1,
+ "type_id": "value",
+ "type_name": "be_manager_relation",
+ "db_type": "int(10) unsigned",
+ "list_hidden": 0,
+ "search": 0,
+ "name": "entry_id",
+ "label": "translate:neues_entry",
+ "not_required": "",
+ "attributes": "",
+ "notice": "",
+ "table": "rex_neues_entry",
+ "empty_option": "0",
+ "size": "",
+ "field": "name",
+ "type": "0",
+ "empty_value": "",
+ "relation_table": "",
+ "filter": ""
+ },
+ {
+ "table_name": "rex_neues_entry_category_rel",
+ "prio": 2,
+ "type_id": "value",
+ "type_name": "be_manager_relation",
+ "db_type": "int(10) unsigned",
+ "list_hidden": 1,
+ "search": 0,
+ "name": "category_id",
+ "label": "translate:neues_category_title",
+ "not_required": "",
+ "attributes": "",
+ "notice": "",
+ "table": "rex_neues_category",
+ "empty_option": "0",
+ "size": "",
+ "field": "name",
+ "type": "0",
+ "empty_value": "",
+ "relation_table": "",
+ "filter": ""
+ }
+ ]
+ }
+}
diff --git a/lang/de_de.lang b/lang/de_de.lang
index f1eb1e1..cfe075b 100644
--- a/lang/de_de.lang
+++ b/lang/de_de.lang
@@ -51,7 +51,9 @@ neues_status_notice = Gibt an, ob dieser News-Beitrag aktuell sichtbar sein soll
neues_category_status_notice = Gibt an, ob diese Kategorie aktuell sichtbar sein soll (veröffentlicht/geplant) oder sich noch im Entwurfsstadium befindet.
neues_status_online = Veröffentlicht
neues_status_offline = Offline
+neues_status_planned = Geplant
neues_status_draft = Entwurf
+neues_status_deleted = Verworfen
neues_domain_ids = Websites
neues_domain_ids_notice = Hier können Sie festlegen, ob die News nur auf einer oder auf mehreren Websites innerhalb dieser REDAXO-Installation veröffentlicht werden soll.
@@ -79,6 +81,7 @@ neues_author_be_user_id = REDAXO-Benutzer:in
neues_docs_a_intro = Einleitung
neues_docs_b_import_export = Import/Export
neues_docs_c_migration = Migration
+neues_docs_d_example = Beispiel
neues_docs_settings = Einstellungen
neues_docs_neues_entry = Einträge
neues_docs_neues_category = Kategorien
@@ -87,3 +90,9 @@ neues_docs_neues_language = Sprachen
neues_docs_url = URL-Adon
neues_docs_rss = RSS-Feed
neues_docs_restful_api = YForm RESTful API
+
+# Cronjob
+
+neues_entry_publish_success = %s Beiträge wurden erfolgreich veröffentlicht.
+neues_entry_publish_error = %s Beiträge konnten nicht veröffentlicht werden.
+neues_entry_publish_cronjob = Geplante Beiträge veröffentlichen. (Aktuelles)
diff --git a/lang/en_gb.lang b/lang/en_gb.lang
index 22197d6..f4d02ec 100644
--- a/lang/en_gb.lang
+++ b/lang/en_gb.lang
@@ -49,10 +49,9 @@ neues_status = Published?
neues_status_notice = Indicates whether this news post should currently be visible (published/scheduled) or is still in the draft stage.
neues_category_status_notice = Indicates whether this category should currently be visible (published/scheduled) or is still in the draft stage.
neues_status_online = Published
-neues_status_offline = Offline
+neues_status_planned = Planned
neues_status_draft = Draft
-neues_domain_ids = Websites
-neues_date_ids = Entries
+neues_status_deleted = Discarded
neues_language = Language
neues_language_name = Language
@@ -61,6 +60,7 @@ neues_language_code = Language code (ISO 639-1)
neues_language_code_notice = Two-letter language code according to ISO standard, e.g.
en
neues_language_entry = Manage entries
neues_language_entry_notice = Manage linked dates
+
neues_domain_ids = Websites
neues_domain_ids_notice = Here you can specify whether the news should be published on one or more websites within this REDAXO installation.
neues_date_ids = Entries
@@ -79,6 +79,7 @@ neues_author_be_user_id = REDAXO User
neues_docs_a_intro = Introduction
neues_docs_b_import_export = Import/Export
neues_docs_c_migration = Migration
+neues_docs_d_example = Example
neues_docs_settings = Settings
neues_docs_neues_entry = Entries
neues_docs_neues_category = Categories
@@ -87,3 +88,9 @@ neues_docs_neues_language = Languages
neues_docs_url = URL Addon
neues_docs_rss = RSS Feed
neues_docs_restful_api = YForm RESTful API
+
+# Cronjob
+
+neues_entry_publish_success = %s posts have been successfully published.
+neues_entry_publish_error = %s posts could not be published.
+neues_entry_publish_cronjob = Publish planned posts. (Current)
diff --git a/lang/es_es.lang b/lang/es_es.lang
index 6f3908b..b762028 100644
--- a/lang/es_es.lang
+++ b/lang/es_es.lang
@@ -49,8 +49,9 @@ neues_status = ¿Publicado?
neues_status_notice = Indica si esta entrada de noticias debe ser visible actualmente (publicada/programada) o si todavía está en la etapa de borrador.
neues_category_status_notice = Indica si esta categoría debe ser visible actualmente (publicada/programada) o si todavía está en la etapa de borrador.
neues_status_online = Publicado
-neues_status_offline = Desconectado
+neues_status_planned = Planeado
neues_status_draft = Borrador
+neues_status_deleted = Descartado
neues_domain_ids = Sitios web
neues_domain_ids_notice = Aquí puede determinar si las noticias deben publicarse solo en uno o en varios sitios web dentro de esta instalación de REDAXO.
@@ -86,3 +87,9 @@ neues_docs_neues_language = Sprachen
neues_docs_url = URL-Adon
neues_docs_rss = RSS-Feed
neues_docs_restful_api = YForm RESTful API
+
+# Cronjob
+
+neues_entry_publish_success = %s entradas se han publicado con éxito.
+neues_entry_publish_error = %s entradas no se pudieron publicar.
+neues_entry_publish_cronjob = Publicar entradas planificadas. (Actual)
diff --git a/lang/fr_fr.lang b/lang/fr_fr.lang
index fcf29b9..51f1029 100644
--- a/lang/fr_fr.lang
+++ b/lang/fr_fr.lang
@@ -50,8 +50,9 @@ neues_status = Publié ?
neues_status_notice = Indique si cet article de nouvelles doit actuellement être visible (publié/prévu) ou s'il est encore à l'état de brouillon.
neues_category_status_notice = Indique si cette catégorie doit actuellement être visible (publiée/prévue) ou si elle est encore à l'état de brouillon.
neues_status_online = Publié
-neues_status_offline = Hors ligne
+neues_status_planned = Prévu
neues_status_draft = Brouillon
+neues_status_deleted = Supprimé
neues_domain_ids = Sites web
neues_domain_ids_notice = Ici, vous pouvez déterminer si les nouvelles doivent être publiées sur un ou plusieurs sites web au sein de cette installation REDAXO.
@@ -87,3 +88,9 @@ neues_docs_neues_language = Langues
neues_docs_url = Addon URL
neues_docs_rss = Flux RSS
neues_docs_restful_api = API RESTful YForm
+
+# Cronjob
+
+neues_entry_publish_success = %s articles ont été publiés avec succès.
+neues_entry_publish_error = %s articles n'ont pas pu être publiés.
+neues_entry_publish_cronjob = Publier des articles planifiés. (Actuel)
diff --git a/lang/it_it.lang b/lang/it_it.lang
index 3cb1382..2fc7ba4 100644
--- a/lang/it_it.lang
+++ b/lang/it_it.lang
@@ -50,8 +50,9 @@ neues_status = Pubblicato?
neues_status_notice = Indica se questo articolo di notizie dovrebbe essere attualmente visibile (pubblicato/pianificato) o se è ancora in fase di bozza.
neues_category_status_notice = Indica se questa categoria dovrebbe essere attualmente visibile (pubblicata/pianificata) o se è ancora in fase di bozza.
neues_status_online = Pubblicato
-neues_status_offline = Offline
+neues_status_planned = Pianificato
neues_status_draft = Bozza
+neues_status_deleted = Scartato
neues_domain_ids = Siti web
neues_domain_ids_notice = Qui puoi decidere se le notizie devono essere pubblicate su uno o più siti web all'interno di questa installazione REDAXO.
@@ -87,3 +88,9 @@ neues_docs_neues_language = Lingue
neues_docs_url = Addon URL
neues_docs_rss = Feed RSS
neues_docs_restful_api = YForm API RESTful
+
+# Cronjob
+
+neues_entry_publish_success = %s articoli sono stati pubblicati con successo.
+neues_entry_publish_error = %s articoli non sono stati pubblicati.
+neues_entry_publish_cronjob = Pubblica articoli pianificati. (Corrente)
diff --git a/lang/sv_se.lang b/lang/sv_se.lang
index 42cb8a5..d89a151 100644
--- a/lang/sv_se.lang
+++ b/lang/sv_se.lang
@@ -49,8 +49,9 @@ neues_status = Publicerad?
neues_status_notice = Anger om detta nyhetsinlägg ska vara synligt just nu (publicerat/schemalagt) eller om det fortfarande är i utkaststadiet.
neues_category_status_notice = Anger om denna kategori ska vara synlig just nu (publicerat/schemalagt) eller om det fortfarande är i utkaststadiet.
neues_status_online = Publicerad
-neues_status_offline = Offline
+neues_status_planned = Planerad
neues_status_draft = Utkast
+neues_status_deleted = Kasserad
neues_domain_ids = Webbplatser
neues_domain_ids_notice = Här kan du bestämma om nyheterna ska publiceras på bara en eller flera webbplatser inom denna REDAXO-installation.
@@ -75,14 +76,20 @@ neues_author_be_user_id = REDAXO-användare
# Doku
-neues_docs_a_intro = Einleitung
+neues_docs_a_intro = Introduktion
neues_docs_b_import_export = Import/Export
neues_docs_c_migration = Migration
-neues_docs_settings = Einstellungen
-neues_docs_neues_entry = Einträge
-neues_docs_neues_category = Kategorien
-neues_docs_neues_author = Autor:innen
-neues_docs_neues_language = Sprachen
-neues_docs_url = URL-Adon
-neues_docs_rss = RSS-Feed
+neues_docs_settings = Inställningar
+neues_docs_neues_entry = Inlägg
+neues_docs_neues_category = Kategorier
+neues_docs_neues_author = Författare
+neues_docs_neues_language = Språk
+neues_docs_url = URL-Addon
+neues_docs_rss = RSS-flöde
neues_docs_restful_api = YForm RESTful API
+
+# Cronjob
+
+neues_entry_publish_success = %s inlägg har publicerats framgångsrikt.
+neues_entry_publish_error = %s inlägg kunde inte publiceras.
+neues_entry_publish_cronjob = Publicera planerade inlägg.
diff --git a/lib/compatibility_classes.php b/lib/compatibility_classes.php
new file mode 100644
index 0000000..7cdd2d1
--- /dev/null
+++ b/lib/compatibility_classes.php
@@ -0,0 +1,41 @@
+where('status', 1, '>=')
+ ->where('publishdate', rex_sql::datetime(), '<=')
+ ->orderBy('publishdate', 'desc');
+ $pager = new rex_pager($rowsPerPage, $pageCursor);
+ $posts = $query->paginate($pager);
+
+ $fragment = new rex_fragment();
+ $fragment->setVar('posts', $posts);
+ $fragment->setVar('pager', $pager);
+ return $fragment->parse('neues/list.php');
+ }
+
+ /**
+ * Gibt einen einzelnen Eintrag zurück.
+ * Der Output wird über ein Fragment erzeugt, diese können nach Belieben angepasst werden.
+ * Die Beispiel-Fragmente bauen auf Bootstrap 5 auf.
+ *
+ * @param int $postId ID des Eintrags
+ * @return string HTML des Eintrags
+ *
+ * Beispiel / Example:
+ * echo neues::getEntry(2);
+ */
+ public static function getEntry(int $postId): string
+ {
+ $post = Entry::get($postId);
+ $fragment = new rex_fragment();
+ $fragment->setVar('post', $post);
+ return $fragment->parse('neues/entry.php');
+ }
+}
diff --git a/lib/neues_author.php b/lib/neues_author.php
index a9fe12b..0f741fc 100644
--- a/lib/neues_author.php
+++ b/lib/neues_author.php
@@ -1,4 +1,10 @@
save();
*/
-class neues_author extends \rex_yform_manager_dataset
+class Author extends rex_yform_manager_dataset
{
/* translate:neues_author_name */
/**
@@ -40,10 +46,6 @@ public function getName(): ?string
* Sets the name of the author.
*
* @param string $value Der neue Name des Autors. / The new name of the author.
- * @return self
- *
- * Beispiel / Example:
- * $author = $author->setName('Neuer Name');
*
* @api
*/
@@ -75,10 +77,6 @@ public function getNickname(): ?string
* Sets the nickname of the author.
*
* @param string $value Der neue Spitzname des Autors. / The new nickname of the author.
- * @return self
- *
- * Beispiel / Example:
- * $author = $author->setNickname('Neuer Spitzname');
*
* @api
*/
@@ -114,10 +112,6 @@ public function getText(bool $asPlaintext = false): ?string
* Sets the text of the author.
*
* @param string $value Der neue Text des Autors. / The new text of the author.
- * @return self
- *
- * Beispiel / Example:
- * $author = $author->setText('Neuer Text');
*
* @api
*/
@@ -141,7 +135,7 @@ public function setText(string $value): self
*/
public function getBeUserId(): ?int
{
- return $this->getValue('be_user_id');
+ return (int) $this->getValue('be_user_id');
}
/**
@@ -149,10 +143,6 @@ public function getBeUserId(): ?int
* Sets the user ID of the author.
*
* @param int $value Die neue Benutzer-ID des Autors. / The new user ID of the author.
- * @return self
- *
- * Beispiel / Example:
- * $author = $author->setBeUserId('Neue Benutzer-ID');
*
* @api
*/
@@ -170,6 +160,8 @@ public function setBeUserId(int $value): self
*
* Beispiel / Example:
* $beUser = $author->getBeUser();
+ *
+ * @api
*/
public function getBeUser(): ?rex_user
{
diff --git a/lib/neues_category.php b/lib/neues_category.php
index 18ab805..b4b1316 100644
--- a/lib/neues_category.php
+++ b/lib/neues_category.php
@@ -1,4 +1,10 @@
setValue('name', 'Neue Kategorie');
* $category->save();
*/
-class neues_category extends \rex_yform_manager_dataset
+class Category extends rex_yform_manager_dataset
{
/**
* Gibt den Namen der Kategorie zurück.
@@ -40,6 +46,8 @@ public function getName(): string
*
* Beispiel / Example:
* $category->setName('Neuer Name');
+ *
+ * @api
*/
public function setName(string $name): self
{
@@ -60,7 +68,7 @@ public function setName(string $name): self
*/
public function getEntries(): ?rex_yform_manager_collection
{
- return $this->getRelatedDataset('entry_ids');
+ return $this->getRelatedCollection('entry_ids');
}
/**
diff --git a/lib/neues_entry.php b/lib/neues_entry.php
index 9080b5a..a4626ae 100644
--- a/lib/neues_entry.php
+++ b/lib/neues_entry.php
@@ -1,4 +1,16 @@
getName();
*/
public function getName(): string
{
return $this->getValue('name');
}
+
/**
* Setzt den Namen des Eintrags.
* Sets the name of the entry.
*
* @param string $name Der neue Name des Eintrags. / The new name of the entry.
- * @return self
- *
- * Beispiel / Example:
- * $entry = $entry->setName('Neuer Name');
*
* @api
*/
@@ -43,6 +45,7 @@ public function setName(string $name): self
$this->setValue('name', $name);
return $this;
}
+
/**
* Gibt den Autor des Eintrags zurück.
* Returns the author of the entry.
@@ -54,20 +57,16 @@ public function setName(string $name): self
*
* @api
*/
- public function getAuthor(): ?neues_author
+ public function getAuthor(): ?Author
{
- return $this->getRelatedDataset('author');
+ if ($this->getRelatedDataset('author_id')) {
+ return Author::get($this->getRelatedDataset('author_id')->getId());
+ }
+ return null;
}
/**
* @api
- * @return string
- *
- * Gibt die Domain des Eintrags zurück.
- * Returns the domain of the entry.
- *
- * Beispiel / Example:
- * $domain = $entry->getDomain();
*/
public function getDomain(): string
{
@@ -79,10 +78,6 @@ public function getDomain(): string
* Sets the domain of the entry.
*
* @param mixed $domain Die neue Domain des Eintrags. / The new domain of the entry.
- * @return self
- *
- * Beispiel / Example:
- * $entry = $entry->setDomain('neue-domain.com');
*
* @api
*/
@@ -122,7 +117,9 @@ public function getTeaser(): string
public function getCategories(): ?rex_yform_manager_collection
{
return $this->getRelatedCollection('category_ids');
- } /**
+ }
+
+ /**
* Gibt das Bild des Eintrags zurück.
* Returns the image of the entry.
*
@@ -148,10 +145,6 @@ public function getImage(): string
* Sets the image of the entry.
*
* @param string $image Das neue Bild des Eintrags. / The new image of the entry.
- * @return self
- *
- * Beispiel / Example:
- * $entry = $entry->setImage('neues_bild.jpg');
*
* @api
*/
@@ -182,10 +175,6 @@ public function getImages(): ?array
* Sets the images of the entry.
*
* @param array|null $images Die neuen Bilder des Eintrags. / The new images of the entry.
- * @return self
- *
- * Beispiel / Example:
- * $entry = $entry->setImages(['bild1.jpg', 'bild2.jpg']);
*
* @api
*/
@@ -194,6 +183,7 @@ public function setImages(?array $images): self
$this->setValue('images', implode(',', $images));
return $this;
}
+
/**
* Gibt das Medium des Eintrags zurück.
* Returns the media of the entry.
@@ -207,7 +197,7 @@ public function setImages(?array $images): self
*/
public function getMedia(): ?rex_media
{
- if (rex_addon::get('media_manager_resposnive')->isAvailable()) {
+ if (rex_addon::get('media_manager_responsive')->isAvailable()) {
return rex_media_plus::get($this->getImage());
}
return rex_media::get($this->getImage());
@@ -218,10 +208,6 @@ public function getMedia(): ?rex_media
* Sets the media of the entry.
*
* @param rex_media|null $media Das neue Medium des Eintrags. / The new media of the entry.
- * @return self
- *
- * Beispiel / Example:
- * $entry = $entry->setMedia($newMedia);
*
* @api
*/
@@ -266,15 +252,12 @@ public function getDescription(): string
{
return $this->getValue('description');
}
+
/**
* Setzt die Beschreibung des Eintrags.
* Sets the description of the entry.
*
* @param string $description Die neue Beschreibung des Eintrags. / The new description of the entry.
- * @return self
- *
- * Beispiel / Example:
- * $entry = $entry->setDescription('Neue Beschreibung');
*
* @api
*/
@@ -305,10 +288,6 @@ public function getExternalUrl(): ?string
* Sets the external URL of the entry.
*
* @param string $url Die neue externe URL des Eintrags. / The new external URL of the entry.
- * @return self
- *
- * Beispiel / Example:
- * $entry = $entry->setExternalUrl('http://neue-url.com');
*
* @api
*/
@@ -317,6 +296,7 @@ public function setExternalUrl(string $url): self
$this->setValue('url', $url);
return $this;
}
+
/**
* Gibt das Veröffentlichungsdatum des Eintrags zurück.
* Returns the publish date of the entry.
@@ -338,10 +318,6 @@ public function getPublishDate(): string
* Sets the publish date of the entry.
*
* @param string $publishdate Das neue Veröffentlichungsdatum des Eintrags. / The new publish date of the entry.
- * @return self
- *
- * Beispiel / Example:
- * $entry = $entry->setPublishDate('2022-01-01');
*
* @api
*/
@@ -384,6 +360,7 @@ public function getFormattedPublishDateTime($format = [IntlDateFormatter::FULL,
{
return rex_formatter::intlDateTime($this->getPublishDate(), $format);
}
+
/**
* Gibt den Status des Eintrags zurück.
* Returns the status of the entry.
@@ -405,10 +382,6 @@ public function getStatus(): string
* Sets the status of the entry.
*
* @param int $status Der neue Status des Eintrags. / The new status of the entry.
- * @return self
- *
- * Beispiel / Example:
- * $entry = $entry->setStatus(1);
*
* @api
*/
@@ -417,6 +390,7 @@ public function setStatus(int $status): self
$this->setValue('status', $status);
return $this;
}
+
/**
* Findet Online-Einträge. Wenn eine Kategorie-ID angegeben ist, werden nur Einträge aus dieser Kategorie zurückgegeben.
* Finds online entries. If a category ID is provided, only entries from this category are returned.
diff --git a/lib/neues_entry_lang.php b/lib/neues_entry_lang.php
index 2009350..f2ce926 100644
--- a/lib/neues_entry_lang.php
+++ b/lib/neues_entry_lang.php
@@ -1,4 +1,10 @@
getRelatedCollection("entry");
+ return $this->getRelatedCollection('entry');
}
/**
@@ -39,9 +45,9 @@ public function getEntries() : ?rex_yform_manager_collection
*
* @api
*/
- public function getCode() : ?string
+ public function getCode(): ?string
{
- return $this->getValue("code");
+ return $this->getValue('code');
}
/**
@@ -49,16 +55,12 @@ public function getCode() : ?string
* Sets the code of the language.
*
* @param string $value Der neue Code der Sprache. / The new code of the language.
- * @return self
- *
- * Beispiel / Example:
- * $language = $language->setCode('Neuer Code');
*
* @api
*/
- public function setCode(string $value) : self
+ public function setCode(string $value): self
{
- $this->setValue("code", $value);
+ $this->setValue('code', $value);
return $this;
}
@@ -73,9 +75,9 @@ public function setCode(string $value) : self
*
* @api
*/
- public function getName() : string
+ public function getName(): string
{
- return $this->getValue("name");
+ return $this->getValue('name');
}
/**
@@ -83,16 +85,12 @@ public function getName() : string
* Sets the name of the language.
*
* @param string $value Der neue Name der Sprache. / The new name of the language.
- * @return self
- *
- * Beispiel / Example:
- * $language = $language->setName('Neuer Name');
*
* @api
*/
- public function setName(string $value) : self
+ public function setName(string $value): self
{
- $this->setValue("name", $value);
+ $this->setValue('name', $value);
return $this;
}
}
diff --git a/lib/rex_api_neues_rss.php b/lib/rex_api_neues_rss.php
index 427e956..d486a12 100644
--- a/lib/rex_api_neues_rss.php
+++ b/lib/rex_api_neues_rss.php
@@ -1,8 +1,21 @@
getName()) . '.xml';
+ $description = 'RSS-FEED: ' . rex::getServerName() . ' | ' . rex_escape($category->getName());
+ } else {
+ $collection = Entry::findOnline();
+ $description = 'RSS-FEED: ' . rex::getServerName();
+ $filename = 'rss.neues.xml';
+ }
+
+ rex_response::cleanOutputBuffers();
+ rex_response::sendContentType('application/xml; charset=utf-8');
+
+ // RSS-Feed generieren und ausgeben
+ echo self::getRssFeed($collection, $domain_id, $lang_id, $description, $filename);
+ exit;
}
- public static function getRssFeed(rex_yform_manager_collection $collection, $domain, $lang, $filename)
+ public static function getRssFeed($collection, $domain, $lang, $description, $filename)
{
- return self::createRssFeed($collection, $domain, $lang, $filename);
+ return self::createRssFeed($collection, $domain, $lang, $description, $filename);
}
- public static function createRssFeed(?rex_yform_manager_collection $collection = null, $domain = null, $lang = null, $filename = 'rss.neues.xml')
+ public static function joinUrls($url1, $url2)
{
- if (!$collection) {
- $collection = neues_entry::findOnline();
- }
-
- $xml = new DOMDocument('1.0', 'utf-8');
- $xml->formatOutput = true;
-
- $rss = $xml->createElement('rss');
- $rss->setAttribute('version', '2.0');
- $xml->appendChild($rss);
-
- $channel = $xml->createElement('channel');
- $rss->appendChild($channel);
+ return rtrim($url1, '/') . '/' . ltrim($url2, '/');
+ }
- $head_title = $xml->createElement('title', rex::getServerName());
- $channel->appendChild($head_title);
+ public static function createRssFeed(rex_yform_manager_collection $collection, $domain, $lang, $description, $filename = 'rss.neues.xml')
+ {
+ $xml = new SimpleXMLElement('
');
- $head_description = $xml->createElement('description', '');
- $channel->appendChild($head_description);
+ $channel = $xml->addChild('channel');
+ $channel->addChild('title', rex::getServerName());
+ $channel->addChild('description', $description);
+ $channel->addChild('link', rex::getServer());
- if ($lang) {
- $head_language = $xml->createElement('language', $lang->getCode());
- $channel->appendChild($head_language);
+ if ($lang && $lang > 0) {
+ $channel->addChild('language', rex_clang::get($lang)->getCode());
}
- $head_link = $xml->createElement('link', rex::getServer());
- $channel->appendChild($head_link);
-
foreach ($collection as $entry) {
- $item = $xml->createElement('item');
- $channel->appendChild($item);
-
- $item_title = $xml->createElement('title', htmlspecialchars($entry->getName()));
- $item->appendChild($item_title);
-
- $entry->setTeasertext($entry->getTeaser());
-
- $entry->setDescription($entry->getDescription());
-
- $item_link = $xml->createElement('link', $entry->getUrl());
- $item->appendChild($item_link);
-
- $item_pubDate = $xml->createElement('pubDate', date('r', strtotime($entry->getPublishDate())));
- $item->appendChild($item_pubDate);
-
- $item_guid = $xml->createElement('guid', $entry->getUuid());
- $item->appendChild($item_guid);
+ /** @var neues_entry $entry */
+ $item = $channel->addChild('item');
+ $item->addChild('title', htmlspecialchars($entry->getName()));
+ $item->addChild('description', htmlspecialchars(strip_tags($entry->getDescription())));
+ $item->addChild('link', self::joinUrls(rex::getServer(), $entry->getUrl()));
+ $item->addChild('pubDate', date('r', strtotime($entry->getPublishDate())));
+ $item->addChild('guid', self::joinUrls(rex::getServer(), $entry->getUrl()))->addAttribute('isPermaLink', 'true');
}
- return $xml->save(rex_path::base($filename));
+ // Speichern und ausgeben des XML
+ $xml->asXML(rex_path::base($filename));
+ return $xml->asXML();
}
}
diff --git a/lib/rex_cronjob_neues_publish.php b/lib/rex_cronjob_neues_publish.php
new file mode 100644
index 0000000..6eb9967
--- /dev/null
+++ b/lib/rex_cronjob_neues_publish.php
@@ -0,0 +1,33 @@
+where('status', 0)->where('publishdate', date('Y-m-d'), '<')->find();
+ $neues_entry_to_publish->setValue('status', 1);
+ if (!$neues_entry_to_publish->save()) {
+ $this->setMessage(sprintf(rex_i18n::msg('neues_entry_publish_error'), count($neues_entry_to_publish)));
+ return false;
+ }
+
+ $this->setMessage(sprintf(rex_i18n::msg('neues_entry_publish_success'), count($neues_entry_to_publish)));
+ return true;
+ }
+
+ public function getTypeName()
+ {
+ return rex_i18n::msg('neues_entry_publish_cronjob');
+ }
+
+ public function getParamFields()
+ {
+ return [];
+ }
+}
diff --git a/package.yml b/package.yml
index 45f22d3..b2ae852 100644
--- a/package.yml
+++ b/package.yml
@@ -1,6 +1,6 @@
package: neues
-version: '3.3.0-dev'
-author: 'Alexander Walther'
+version: '4.1.0-dev'
+author: 'FriendsOfREDAXO, Alexander Walther, Paul Götz, Thorben'
supportpage: https://alexplusde.github.io/neues/
load: late
@@ -9,10 +9,9 @@ requires:
version: '>7.3,<9'
redaxo: ^5.12
packages:
- yform: '^4,<5'
+ yform: '^4'
yform_field: '^2.3.0'
-
page:
title: translate:neues
prio: 100
@@ -56,6 +55,7 @@ pages:
default_config:
default_author: "Redaktion"
- default_thumbnail: ""
+ default_thumbnail: "neues_entry_fallback_iamge.png"
external_url_label: "Zur Website"
editor: 'class="form-control redactor-editor--default"'
+ url_profile: false
diff --git a/pages/neues.author.php b/pages/neues.author.php
index 57bcc27..1640c1d 100644
--- a/pages/neues.author.php
+++ b/pages/neues.author.php
@@ -4,23 +4,25 @@
$currentPage = rex_be_controller::getCurrentPageObject();
$wrapper = '';
-if ($table_name = 'rex_neues_author') {
- if (!rex_request('table_name', 'string', '')) {
- $_REQUEST['table_name'] = $table_name;
- }
-
- if (true !== $currentPage->getItemAttr('show_title', false)) {
- rex_extension::register('YFORM_MANAGER_DATA_PAGE_HEADER', static function ($ep) {
- if ($ep->getParam('yform')->table->getTableName() !== $ep->getParam('table_name')) {
- return;
- }
- return '';
- }, rex_extension::EARLY, ['table_name' => $table_name]);
- }
-
- if ($wrapper = $currentPage->getItemAttr('wrapper_class', '')) {
- echo "
";
- }
+
+$table_name = 'rex_neues_author';
+
+if (!rex_request('table_name', 'string', '')) {
+ /* @phpstan-ignore-next-line */
+ $_REQUEST['table_name'] = $table_name;
+}
+
+if (true !== $currentPage->getItemAttr('show_title', '')) {
+ rex_extension::register('YFORM_MANAGER_DATA_PAGE_HEADER', static function ($ep) {
+ if ($ep->getParam('yform')->table->getTableName() !== $ep->getParam('table_name')) {
+ return;
+ }
+ return '';
+ }, rex_extension::EARLY, ['table_name' => $table_name]);
+}
+
+if ($wrapper = $currentPage->getItemAttr('wrapper_class', '')) {
+ echo "
";
}
include rex_path::plugin('yform', 'manager', 'pages/data_edit.php');
diff --git a/pages/neues.category.php b/pages/neues.category.php
index 10e13e9..0db1623 100644
--- a/pages/neues.category.php
+++ b/pages/neues.category.php
@@ -4,23 +4,24 @@
$currentPage = rex_be_controller::getCurrentPageObject();
$wrapper = '';
-if ($table_name = 'rex_neues_category') {
- if (!rex_request('table_name', 'string', '')) {
- $_REQUEST['table_name'] = $table_name;
- }
- if (true !== $currentPage->getItemAttr('show_title', false)) {
- rex_extension::register('YFORM_MANAGER_DATA_PAGE_HEADER', static function ($ep) {
- if ($ep->getParam('yform')->table->getTableName() !== $ep->getParam('table_name')) {
- return;
- }
- return '';
- }, rex_extension::EARLY, ['table_name' => $table_name]);
- }
+$table_name = 'rex_neues_category';
+if (!rex_request('table_name', 'string', '')) {
+ /* @phpstan-ignore-next-line */
+ $_REQUEST['table_name'] = $table_name;
+}
+
+if (true !== $currentPage->getItemAttr('show_title', '')) {
+ rex_extension::register('YFORM_MANAGER_DATA_PAGE_HEADER', static function ($ep) {
+ if ($ep->getParam('yform')->table->getTableName() !== $ep->getParam('table_name')) {
+ return;
+ }
+ return '';
+ }, rex_extension::EARLY, ['table_name' => $table_name]);
+}
- if ($wrapper = $currentPage->getItemAttr('wrapper_class', '')) {
- echo "
";
- }
+if ($wrapper = $currentPage->getItemAttr('wrapper_class', '')) {
+ echo "
";
}
include rex_path::plugin('yform', 'manager', 'pages/data_edit.php');
diff --git a/pages/neues.entry.php b/pages/neues.entry.php
index af44b82..2582afb 100644
--- a/pages/neues.entry.php
+++ b/pages/neues.entry.php
@@ -4,23 +4,24 @@
$currentPage = rex_be_controller::getCurrentPageObject();
$wrapper = '';
-if ($table_name = 'rex_neues_entry') {
- if (!rex_request('table_name', 'string', '')) {
- $_REQUEST['table_name'] = $table_name;
- }
- if (true !== $currentPage->getItemAttr('show_title', false)) {
- rex_extension::register('YFORM_MANAGER_DATA_PAGE_HEADER', static function ($ep) {
- if ($ep->getParam('yform')->table->getTableName() !== $ep->getParam('table_name')) {
- return;
- }
- return '';
- }, rex_extension::EARLY, ['table_name' => $table_name]);
- }
+$table_name = 'rex_neues_entry';
+if (!rex_request('table_name', 'string', '')) {
+ /* @phpstan-ignore-next-line */
+ $_REQUEST['table_name'] = $table_name;
+}
+
+if (true !== $currentPage->getItemAttr('show_title', '')) {
+ rex_extension::register('YFORM_MANAGER_DATA_PAGE_HEADER', static function ($ep) {
+ if ($ep->getParam('yform')->table->getTableName() !== $ep->getParam('table_name')) {
+ return;
+ }
+ return '';
+ }, rex_extension::EARLY, ['table_name' => $table_name]);
+}
- if ($wrapper = $currentPage->getItemAttr('wrapper_class', '')) {
- echo "
";
- }
+if ($wrapper = $currentPage->getItemAttr('wrapper_class', '')) {
+ echo "
";
}
include rex_path::plugin('yform', 'manager', 'pages/data_edit.php');
diff --git a/pages/neues.lang.php b/pages/neues.lang.php
index dbb56c5..1e33b47 100644
--- a/pages/neues.lang.php
+++ b/pages/neues.lang.php
@@ -4,23 +4,24 @@
$currentPage = rex_be_controller::getCurrentPageObject();
$wrapper = '';
-if ($table_name = 'rex_neues_entry_Lang') {
- if (!rex_request('table_name', 'string', '')) {
- $_REQUEST['table_name'] = $table_name;
- }
- if (true !== $currentPage->getItemAttr('show_title', false)) {
- rex_extension::register('YFORM_MANAGER_DATA_PAGE_HEADER', static function ($ep) {
- if ($ep->getParam('yform')->table->getTableName() !== $ep->getParam('table_name')) {
- return;
- }
- return '';
- }, rex_extension::EARLY, ['table_name' => $table_name]);
- }
+$table_name = 'rex_neues_entry_lang';
+if (!rex_request('table_name', 'string', '')) {
+ /* @phpstan-ignore-next-line */
+ $_REQUEST['table_name'] = $table_name;
+}
+
+if (true !== $currentPage->getItemAttr('show_title', '')) {
+ rex_extension::register('YFORM_MANAGER_DATA_PAGE_HEADER', static function ($ep) {
+ if ($ep->getParam('yform')->table->getTableName() !== $ep->getParam('table_name')) {
+ return;
+ }
+ return '';
+ }, rex_extension::EARLY, ['table_name' => $table_name]);
+}
- if ($wrapper = $currentPage->getItemAttr('wrapper_class', '')) {
- echo "
";
- }
+if ($wrapper = $currentPage->getItemAttr('wrapper_class', '')) {
+ echo "
";
}
include rex_path::plugin('yform', 'manager', 'pages/data_edit.php');
diff --git a/pages/neues.settings.php b/pages/neues.settings.php
index db610ee..b657693 100644
--- a/pages/neues.settings.php
+++ b/pages/neues.settings.php
@@ -7,7 +7,7 @@
$form = rex_config_form::factory($addon->getName());
$field = $form->addMediaField('default_thumbnail');
-$field->setPreview(1);
+$field->setPreview(true);
$field->setTypes('jpg,gif,png');
$field->setLabel(rex_i18n::msg('neues_default_thumbnail'));
diff --git a/uninstall.php b/uninstall.php
index ef6ce04..3d3bebc 100644
--- a/uninstall.php
+++ b/uninstall.php
@@ -4,6 +4,7 @@
if (rex_addon::get('yform')->isAvailable() && !rex::isSafeMode()) {
rex_yform_manager_table_api::removeTable('rex_neues_category');
rex_yform_manager_table_api::removeTable('rex_neues_entry');
- rex_yform_manager_table_api::removeTable('rex_neues_entry_lang');
rex_yform_manager_table_api::removeTable('rex_neues_entry_category_rel');
+ rex_yform_manager_table_api::removeTable('rex_neues_author');
+ rex_yform_manager_table_api::removeTable('rex_neues_entry_lang');
}