To merge pdfs I use qpdf
qpdf --empty --pages {{document1}} {{document2}} ... -- target.pdf
To merge pdfs I use qpdf
qpdf --empty --pages {{document1}} {{document2}} ... -- target.pdf
To convert a pdf document to an png document one can use the terminal.
– Install imagemagick on your system
– Open the folder that holds your pdf document in the terminal
– convert -density 150 {filename.pdf} -quality 90 {filename.png}
Each page from the pdf document is now a png file.
From time to time you want to overwrite the default templates for forms in pimcore.
I had some problems to find the information I need as they are spreaded widley.
To get it to work it should look like this:
Filestructure
# src/AppBundle/Resources/config/pimcore/config.yml
form_builder:
form:
templates:
ivoclar_div_layout:
value: 'my_form_div_layout.html.twig'
label: 'Custom form layout'
default: true
{# tempaltes/bundles/FormBuilderBundle/Form/Theme/Macro/my_form_div_layout.html.twig #}
{% macro form_builder_form_head() %}
{% endmacro %}
{% macro form_builder_form_foot() %}
{% endmacro %}
{% macro form_builder_form_message(flash_messages) %}
{% if flash_messages is not empty %}
{% for label, messages in flash_messages %}
{% for message in messages %}
<div class="message message-{{ label }}">
{{ message|raw }}
</div>
{% endfor %}
{% endfor %}
{% endif %}
{% endmacro %}
{# tempaltes/bundles/FormBuilderBundle/Form/Theme/my_form_div_layout.html.twig #}
{% extends "form_div_layout.html.twig" %}
{%- block widget_attributes -%}
id="{{ id }}" name="{{ name }}"
{%- if disabled %} disabled="disabled"{% endif -%}
{%- if required %} required="required"{% endif -%}
{{ block('attributes') }}
{%- endblock widget_attributes -%}
In Pimcore I’m using https://github.com/dachcom-digital/pimcore-formbuilder to create input forms in my project.
I have the problem that the default input names are not the once I need for my task.
Default names<input .. name="formbuilder_1[task]"
<input .. name="task"
I created a form theme to overwrite it
{# /templates/bundles/FormBuilderBundle/Form/Theme/myform_div_layout.html.twig #} {% extends "form_div_layout.html.twig" %} {%- block widget_attributes -%} id="{{ id }}" name="{{ name }}" {%- if disabled %} disabled="disabled"{% endif -%} {%- if required %} required="required"{% endif -%} {{ block('attributes') }} {%- endblock widget_attributes -%}
The default name is {{full_name}}
, replaced with {{name}}
returns the fieldname I’ve set in the formbuilder form.
Hier ein Auszug aus den AGB’s der Toniebox
Ich habe hier nicht schlecht geschaut was sie dann alles wissen.
Ganz einfach: alles was ein Kind mit der Box macht, egal was, wird an den Hersteller geschickt. Was ist denn daran so schlimm? Der Hersteller kann aus den Daten alles Mögliche sehen
Das sind nur einige Punkte die mir einfallen, wass mit den Daten möglich ist. Gleicht man dann noch die Mailadresse des Cloud-Account-Erstellers mit einem Werbenetzwerk ab ergeben sich seehr viele tolle Möglichkeiten euch zum Kauf zu verleiten.
Ihr entscheidet euch für die Toniebox und den Cloudaccount, der “anonym” erstellt werden kann und es müssen ganz wenig Daten angegeben werden. Nun die Toniebox funktioniert nicht ohne Cloud.
Eine neu gekaufte Figur funktioniert nur, wenn die Toniebox Zugang zur Cloud hat um die Daten nachzuladen. Ohne diesen Zugang: keine Musik.
Wer in Gegenden mit schlechtem Internet wohnt oder nur einen LTE-Router hat wird darüber nicht begeistert sein.
Die Box lädt sich die Musik herunter und speichert diese auf der Box selbst zur Verwendung ohne Internet, im Auto oder bei Freunden.
Der interne Speicher ist begrenzt und es werden einfach ältere Lieder überspielt und müssen bei Bedarf neu geladen werden.
Soweit ich es gefunden habe sind nur 8GB interner Speicher verbaut. Wer viele Hörbücher etc hat muss diese unter Umständen nachladen.
Der Hersteller beschließt plötzlich 5 oder 10 € im Monat für die Clouddienste zu verlagen. Die Kinder sind schon so dran gewöhnt, dass man das als Eltern vmtl zahlen würde oder eine nutzlose Box zu Hause stehen hat die keine neuen Lieder mehr laden kann.
Wo Menschen arbeiten passieren Fehler, das ist normal und auch gut so, daraus kann man lernen. Was passiert wenn die Cloud nichtmehr erreichbar ist aber das Kind Geburtstag hat und viele neue Figuren geschenkt bekommt die zwar auf der Toniebox stehen können aber keine Musik spielen?
Auch schon geschehen: Firmen mit Cloud diensten wurden gekauft und die Dienste abgeschaltet. Was macht ihr dann mit der Toniebox?
Die Toniebox kann leider nicht anders bespielt werden als durch die Cloud.
Die Toniebox kommt für mein Kind nicht in Frage und schon gar nicht in mein WLAN.
There is the useful hasManyThrough in Eloquent in which you can you 3 Tables and define which keys to use to join them.
Laravels example and documentation can be found here .
There is a little detail problem with it, it is all called id and the example wasn’t helping me much.
I have the following tables to handle job applications to jobs
Jobs
– id
– title
– description
Users
– id
– firstname
– lastname
Application
– id
– user_id
– job_id
– application_date
In the jobs
model I want to get a list of all applicants.
Here is the first version of this
public function applicants(): HasManyThrough { return $this->hasManyThrough( 'App\Models\User', 'App\Models\Application', 'job_id', 'id', 'id', 'id' ); }
While testing I received some strange applicants which never applied for the job.
After debugging I found that the last 'id'
uses job.id
to load the users with user.id
. Bug found.
It should really be application.user_id
to load the correct users. So a small change to this:
public function applicants(): HasManyThrough { return $this->hasManyThrough( 'App\Models\User', 'App\Models\Application', 'job_id', // (application.job_id) 'id', // Foreign key on User table (user.id) 'id', // Local key on job table (job.id) 'user_id' // Local key on Application table (application.user_id) ); }
So changing the last id
to user_id
fixed that bug.
I receive job-offerings on a regular basis. That is really nice you’ve contacted me, but you need to stand out with your texts. And also: I’m not interested.
Most of the time it feels like spam receiving these template letters from people not knowing the industry or not knowing what a programming language is.
Even if the offer might be interesting in the end, I am not interested for some of the following reasons:
I think this is sort of annoying to get contacted with this kind of letters. I, as an employee trying to get to an interview, need to write a promotion letter, send a whole lot of information about my live, projects, reports and so on.
But you, as a recruiter contacting me, are allowed to just say “hi”? Sorry but I don’t like how this works. Either both of us are allowed to just say “hi” or we both stick to full reports, projects list etc.
Create Docker Setup
Explicitly set encoding to utf8mb4 with
command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
Create the Project with Composer
COMPOSER_MEMORY_LIMIT=-1 composer create-project pimcore/skeleton my-project
After Docker Setup I was only able to get the installer to work with a file located /app/config/installer.yml
pimcore_install:
parameters:
database_credentials:
user: "%env(DB_USER)%"
password: "%env(DB_PASSWORD)%"
dbname: "%env(DB_NAME)%"
host: "%env(DB_HOST)%"
port: "%env(DB_PORT)%"
Install Pimcore
SSH into php and execute
./vendor/bin/pimcore-install
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
[wishlist id=’82’]