I have assertion on my entity to validate dates. It's work well, but the outuput is formated whith time. I need only the date. (The text is in french)
My entity :
/**
* #var \DateTime
* #Assert\DateTime(format="d/m/Y")
* #Assert\LessThanOrEqual(
* value="-2 days",
* message="rapports.max_date"
* )
*/
protected $dateDebut;
My translation file :
max_date: 'La date saisie doit être inférieur ou égale au {{ compared_value }}.'
That output is "La date saisie doit être supérieur ou égale au 1 janv. 2015 à 01:00.". I want "La date saisie doit être supérieur ou égale au 01/001/2015."
I want to format the 'compared_value'. WHo can I do that ?
Maybe use the date_format filter:
max_date: 'La date saisie doit être inférieur ou égale au {{ compared_value | date_format('Y-m-d') }}.'
You can do the following:
Write a service and make it globally available to the twig engine.
This service has to define a public function that takes the compared_value, parses the wrongly formatted date, and outputs the correctly formatted one.
So:
class MyService
{
public function parse($compared_value) {
return date_format('Y-m-d', strtotime($compared_value));
}
}
in config.yml
twig:
globals:
my_service: '#my_service'
services:
my_service:
class: AppBundle\Service\MyService
and finally
max_date: 'La date saisie doit être inférieur ou égale au {{ my_service.parse(compared_value) }}.'
I am trying to use filter to query the delivery endpoint API as mentioned in the below doc
https://documentation.magnolia-cms.com/display/DOCS56/Delivery+endpoint+API#DeliveryendpointAPI-queryNodes-filterFilters
The filter is not working and I am getting the complete content of the page in the JSON response. I am getting all the nodes instead of the specified node
I even tried to use the #name property filter, still I get the entire content instead of that particular node
curl -X GET "http://localhost:8080/magnoliaAuthor/.rest/delivery/website/v1/travel/hello?#name=03
my rest endpoint yaml configuration is as follows
class: info.magnolia.rest.delivery.jcr.v1.JcrDeliveryEndpointDefinition
params:
website:
depth: 2
nodeTypes:
- mgnl:page
- mgnl:area
- mgnl:component
childNodeTypes:
- mgnl:area
- mgnl:component
rootPath: /
workspace: website
includeSystemProperties: false
I did the test in the demo (https://demoauthor.magnolia-cms.com) and it works.
I created this file:
class: info.magnolia.rest.delivery.jcr.v1.JcrDeliveryEndpointDefinition
params:
website:
depth: 2
nodeTypes:
- mgnl:page
- mgnl:area
- mgnl:component
childNodeTypes:
- mgnl:area
- mgnl:component
rootPath: /
workspace: website
includeSystemProperties: false
Into this path: /travel-demo/restEndpoints/restTest.yaml (in the Resources App)
Then I queried the first component from the main area of the About page at:
https://demoauthor.magnolia-cms.com/.rest/delivery/website/v1/travel/about/main/00
With this result:
{"#name":"00","#path":"/travel/about/main/00","#id":"01db6fc1-78af-4284-adf0-8c997309df6a","#nodeType":"mgnl:component","text":"<p>We are a full service, independent travel agency.</p>\n<p>We offer unique tours from every continent on the planet. Get inspired and book your tour with us for an experience you’ll always remember.</p> ","text_de":"<p>Wir sind eine unabhängige Reiseagentur mit Rundumservice.</p>\n<p>Wir bieten einzigartige Reisen für jeden Kontinent der Erde an. Lassen Sie sich inspirieren und buchen Sie Ihre Reise bei uns, um Erfahrungen zu machen, die Ihnen für immer in Erinnerung bleiben werden.</p> ","jcr:createdBy":"admin","headline_de":"Über Magnolia Travels","mgnl:lastActivatedBy":"superuser","mgnl:template":"travel-demo:components/jumbotron","mgnl:lastActivated":"2015-10-27T13:50:52.396+0100","jcr:created":"2018-01-23T22:33:44.55+0100","mgnl:created":"2015-02-02T20:23:37.199+0100","imagePosition":"below","headlineLevel":"small","mgnl:createdBy":"superuser","headline":"About Magnolia Travels","mgnl:lastModified":"2015-06-18T11:08:06.983+0200","mgnl:activationStatus":"true","mgnl:lastModifiedBy":"superuser","#nodes":[]}
And then I queried the entire page at:
https://demoauthor.magnolia-cms.com/.rest/delivery/website/v1/travel/about/
With this result:
{"#name":"about","#path":"/travel/about","#id":"808ebe4c-72b2-49f1-b9f7-e7db22bce02f","#nodeType":"mgnl:page","jcr:createdBy":"admin","hideInNav":"false","mgnl:template":"travel-demo:pages/standard","mgnl:lastActivatedBy":"superuser","mgnl:lastActivated":"2018-01-23T22:33:55.104+0100","jcr:created":"2018-01-23T22:33:44.53+0100","mgnl:created":"2015-02-02T17:34:28.816+0100","mgnl:createdBy":"superuser","title":"About","title_de":"Über uns","mgnl:lastModified":"2015-10-27T13:50:28.322+0100","mgnl:activationStatus":"true","mgnl:lastModifiedBy":"superuser","main":{"#name":"main","#path":"/travel/about/main","#id":"f3b2681f-e747-4ff6-bcbb-2a9a9f01553e","#nodeType":"mgnl:area","mgnl:createdBy":"superuser","jcr:createdBy":"admin","mgnl:lastModified":"2015-10-27T13:50:28.322+0100","mgnl:activationStatus":"true","mgnl:lastActivatedBy":"superuser","jcr:created":"2018-01-23T22:33:44.54+0100","mgnl:lastActivated":"2015-10-27T13:50:52.396+0100","mgnl:lastModifiedBy":"superuser","mgnl:created":"2015-02-02T17:34:34.651+0100","00":{"#name":"00","#path":"/travel/about/main/00","#id":"01db6fc1-78af-4284-adf0-8c997309df6a","#nodeType":"mgnl:component","text":"<p>We are a full service, independent travel agency.</p>\n<p>We offer unique tours from every continent on the planet. Get inspired and book your tour with us for an experience you’ll always remember.</p> ","text_de":"<p>Wir sind eine unabhängige Reiseagentur mit Rundumservice.</p>\n<p>Wir bieten einzigartige Reisen für jeden Kontinent der Erde an. Lassen Sie sich inspirieren und buchen Sie Ihre Reise bei uns, um Erfahrungen zu machen, die Ihnen für immer in Erinnerung bleiben werden.</p> ","jcr:createdBy":"admin","headline_de":"Über Magnolia Travels","mgnl:lastActivatedBy":"superuser","mgnl:template":"travel-demo:components/jumbotron","mgnl:lastActivated":"2015-10-27T13:50:52.396+0100","jcr:created":"2018-01-23T22:33:44.55+0100","mgnl:created":"2015-02-02T20:23:37.199+0100","imagePosition":"below","headlineLevel":"small","mgnl:createdBy":"superuser","headline":"About Magnolia Travels","mgnl:lastModified":"2015-06-18T11:08:06.983+0200","mgnl:activationStatus":"true","mgnl:lastModifiedBy":"superuser","#nodes":[]},"04":{"#name":"04","#path":"/travel/about/main/04","#id":"834ef0b0-1519-4834-b1f5-4166ae004ac0","#nodeType":"mgnl:component","jcr:createdBy":"admin","layout":"8x4","mgnl:lastActivatedBy":"superuser","mgnl:template":"travel-demo:components/columnLayout","mgnl:lastActivated":"2015-10-27T13:50:52.397+0100","jcr:created":"2018-01-23T22:33:44.56+0100","mgnl:created":"2015-10-27T12:03:30.193+0100","mgnl:createdBy":"superuser","mgnl:lastModified":"2015-10-27T13:50:28.322+0100","mgnl:activationStatus":"true","mgnl:lastModifiedBy":"superuser","#nodes":[]},"#nodes":["00","04"]},"footer":{"#name":"footer","#path":"/travel/about/footer","#id":"21da1190-52e6-45d5-8e68-5a2878733d6c","#nodeType":"mgnl:area","mgnl:createdBy":"superuser","jcr:createdBy":"admin","mgnl:lastModified":"2015-06-18T17:43:12.575+0200","mgnl:activationStatus":"true","mgnl:lastActivatedBy":"superuser","mgnl:lastActivated":"2015-10-27T13:50:52.400+0100","jcr:created":"2018-01-23T22:33:44.63+0100","mgnl:created":"2015-02-02T17:34:34.666+0100","mgnl:lastModifiedBy":"superuser","footer1":{"#name":"footer1","#path":"/travel/about/footer/footer1","#id":"7b1bb2e5-4a96-46ba-9e37-213d49bd874f","#nodeType":"mgnl:area","mgnl:createdBy":"superuser","jcr:createdBy":"admin","mgnl:lastModified":"2015-02-26T16:27:05.82+0100","mgnl:activationStatus":"true","mgnl:lastActivatedBy":"superuser","jcr:created":"2018-01-23T22:33:44.64+0100","mgnl:lastActivated":"2015-10-27T13:50:52.400+0100","mgnl:lastModifiedBy":"superuser","mgnl:created":"2015-02-26T16:27:05.82+0100","#nodes":[]},"footer2":{"#name":"footer2","#path":"/travel/about/footer/footer2","#id":"847f6b8c-a997-4c1a-ad7f-00c777351f32","#nodeType":"mgnl:area","mgnl:createdBy":"superuser","jcr:createdBy":"admin","mgnl:lastModified":"2015-02-26T16:27:05.109+0100","mgnl:activationStatus":"true","mgnl:lastActivatedBy":"superuser","mgnl:lastActivated":"2015-10-27T13:50:52.400+0100","jcr:created":"2018-01-23T22:33:44.65+0100","mgnl:created":"2015-02-26T16:27:05.109+0100","mgnl:lastModifiedBy":"superuser","#nodes":[]},"footer3":{"#name":"footer3","#path":"/travel/about/footer/footer3","#id":"8d80386e-d6b7-489b-881a-b50a391fc08e","#nodeType":"mgnl:area","mgnl:createdBy":"superuser","jcr:createdBy":"admin","mgnl:lastModified":"2015-02-26T16:27:05.138+0100","mgnl:activationStatus":"true","mgnl:lastActivatedBy":"superuser","jcr:created":"2018-01-23T22:33:44.66+0100","mgnl:lastActivated":"2015-10-27T13:50:52.400+0100","mgnl:created":"2015-02-26T16:27:05.138+0100","mgnl:lastModifiedBy":"superuser","#nodes":[]},"footer4":{"#name":"footer4","#path":"/travel/about/footer/footer4","#id":"83939ec7-c633-4bc0-a2f0-e874ac64b327","#nodeType":"mgnl:area","mgnl:createdBy":"superuser","jcr:createdBy":"admin","mgnl:lastModified":"2015-02-26T16:27:05.155+0100","mgnl:activationStatus":"true","mgnl:lastActivatedBy":"superuser","mgnl:lastActivated":"2015-10-27T13:50:52.401+0100","jcr:created":"2018-01-23T22:33:44.66+0100","mgnl:created":"2015-02-26T16:27:05.155+0100","mgnl:lastModifiedBy":"superuser","#nodes":[]},"lastLinks":{"#name":"lastLinks","#path":"/travel/about/footer/lastLinks","#id":"5a9f3338-a98d-4797-b35e-0d9f10550a1e","#nodeType":"mgnl:area","mgnl:createdBy":"superuser","jcr:createdBy":"admin","mgnl:lastModified":"2015-06-18T17:43:12.583+0200","mgnl:activationStatus":"true","mgnl:lastActivatedBy":"superuser","mgnl:lastActivated":"2015-10-27T13:50:52.401+0100","jcr:created":"2018-01-23T22:33:44.67+0100","mgnl:created":"2015-06-18T17:43:12.583+0200","mgnl:lastModifiedBy":"superuser","#nodes":[]},"#nodes":["footer1","footer2","footer3","footer4","lastLinks"]},"#nodes":["main","footer"]}
So in my opinion everything is OK.
I would check the path you are requesting. It's probably wrong.
Using the JCR browser helps on this.
Greetings
I am trying to modify the reset-password notification e-mail, but the issue is that the e-mail body is auto-wrapped every ~26 characters.
Is there a way to overcome that issue ?
My message variable is this :
$message = sprintf(__('Το Όνομα χρήστη (User Name) του λογαριασμού σας MySiteTitle είναι : %s', 'z'), $user_login) . "\r\n\r\n";
$message .= __("Σε περίπτωση που θέλετε να δημιουργήσετε νέο κωδικό πρόσβασης πατήστε τον ακόλουθο σύνδεσμο.", 'z') . "\r\n\r\n";
$message .= $link . "\r\n\r\n";
$message .= __('Εάν δεν αιτηθήκατε της συγκεκριμένης υπενθύμισης αγνοείστε το παρόν μήνυμα.', 'z');
and the send message I get both in my regular e-mail and the Gmail email account is the following:
Το Όνομα χρήστη (User Name) του
λογαριασμού σας MySiteTitle είναι
: admin
Σε περίπτωση που θέλετε να
δημιουργήσετε νέο κωδικό
πρόσβασης πατήστε τον
ακόλουθο σύνδεσμο.
http://www.mysite.dch/wp-login.php?action=rp&key=dWBF1extfudBP6Yrrq1P&login=admin
Εάν δεν αιτηθήκατε της
συγκεκριμένης υπενθύμισης
αγνοείστε το παρόν μήνυμα.
You can add a div to solve this issue :
<div style="width:600px;"></div>
Problem solved after a lot of hours of research.
Following the solution I have applied for other users may have the same issue in the future:
The wp_mail function, initiating a new PHPMAiler object. This object among the other properties has own called WordWrap. This property controlling the length of the text lines.
In order to change this property, or any of the properties of the WPMailer object execute the following code in your funcions.php.
function mailWordWrap($ar)
{
$ar->WordWrap = 150;
return $ar;
}
add_action('phpmailer_init', 'mailWordWrap', 10, 1);