Doing a jobbaord with Joomla! and Flexicontent part 1
This article is a basic translation of french to english (it's an old article, sorry for that), all screens are little old but all is writting here is ok for Flexicontent 3 series
I'll try to tell you a story, not with princesses or princes (whatever ...), but with a lot of traps and witches.
One fine morning (with hindsight not sure if it is so beautiful), I am asked to make a proposal for a classic Joomla showcase site! (until then, I must be able to do it) but with a recruitment part. Interesting, but usually the specification is as meager as the grasshopper in the middle of winter. “We want a CV database, a form and we will post offers” *
Despite my insistence on having more information, I go in search of the component or the solution that can make my Joomla! perfect for this project. As I researched, I came to a fork, three paths open to me ...
A wise man with a white beard is waiting for me and asks me a question, “What is your favorite color?” ** I will probably have to find the answer to find the right path. But the question puzzles me:
Should I :
Use a ready-made and dedicated component
OR
Use a CCK that I know
OR
Develop a component myself?
Doubt assails me, questions collide, colleagues refuse to help me decide (nice).
I start the classic For or Against
However
It's tailor-made so perfect I'm a beginner
It's rewarding to make Marc tell me I'm crazy
I don't have 6 months to do it ...
Use a dedicated component
However
It's made for, I shouldn't have any worries I don't know the beast, I'm not safe from a worry
It does everything, even more Even it does too many things or the client will ask me for an additional function
I just have to tweak it slightly so it should pay off Hopefully support will follow
Using a CCK
However
I can control everything I surely could not do all the functions of the dedicated component
It's easier than developing it "from scratch" It takes more time to do it than the dedicated component
I can offer a unified experience between content and CV library I would not have specific support for this project
After some hesitation, I give my answer to the old bearded man: “blue” (especially no hesitation eh ?!).
And I go to discover this component of CVthèque ***.
So I am embarking on the purchase, XXX € (it's still not bad), of a component that has 97% satisfaction on the JED (Joomla! Extensions Directory).
I'm doing the installation, oops first concern, something with external files, not a Joomla installation! classic… and it crashes, first ticket! And yes, when I buy a component with premium support, I use it, I'm not going to fight on my own.
And there, I discovered the interface of the component, nice, the first impression is good. Then I install the translation (component theoretically translated into French) and there it is ... Even Google Translate does better, completely aberrant stuff like that
"You click this button to have the email send" ...
Even I lost an eye on it. Well, they have a Transifex translation project, we're going to participate in it, just 2,000 strings all in one file, no front and back separation. Ouch !!!
Then I discover Joomla language files! with spaces, which makes it incompatible with RHHHOOOOO language substitution. I'll skip the details because I had some setbacks with just this language file (I discovered that using the strings YES, NO, ALL caused the entire translation to crash…). Here I am on my second ticket, in all humility, I am not a developer but I try to explain it all to them.
Now yep, let's tackle the configuration, beyond having trouble understanding the jargon used, I somehow manage to make a global concept of my CVthèque application but I fall back on a bone, 2 modules out of 3 are not not responsive, a module is missing in the package etc. With a lot of patience and diplomacy, I explain to the support (which is reactive) that everything is not there, that it is not an incompatibility of the template (that they like because it is not their fault) . We start to arrive at the 10th ticket.
With all my feedback, they are announcing a new version that is much better, all responsive etc. Great it's Christmas!
But the grinch wasn't far away (the bastard), on paper, great jQuery and Ajax stuff everywhere, great user experience. Except that by wanting to put jQuery too much, we have conflicts with you. In addition, these nice devs, who ignore French (I'm no better than them lol), quickly forget that we love APOSTROPHES, we ... A disaster to debug when it happens in JavaScript, redo overloads etc.
Well, we come to a functional system that covers 80% of the demand (customers finally understood what a CV database is) but some requests had to be rejected because the component was not suitable.
3 weeks of work, 28 tickets, direct access for the devs were necessary for them to debug live.
You can imagine, I felt like I got smoked out by the old man with the white beard. And I asked myself the question again, wouldn't I have been better off using a CCK or doing a dev?
For the dev, I still don't have the skills or the time ...
It is from this observation that this column was born: how to maximize one's skills and knowledge within a CCK tool to meet 70-80% of customer requests (CVs, directories, intranets, document management, diary, etc. ). I often plague when I miss a little something in a component. We would like it to be more suited to MY request.
I will therefore describe to you, in a white paper format (it seems that this is what we should say ...), the design of a Cvthèque component via a CCK (in my case FLEXIcontent). I'm not going to do an exhaustive tutorial but a proof of concept that could be applied to another good level CCK.
In the next articles, I will discuss (attention teaser… TADA):
- the chosen CV database concept,
- the implementation of the type of content Offer,
- the implementation of the Candidate content type,
- setting up templates,
- the design of a candidate / recruiter search engine,
- the establishment of a candidate space.
There you go, hoping that you will have fun discovering my story.
* Any resemblance to any web project is completely coincidental.
** Any resemblance to a Monty Python movie is completely premeditated.
*** For rights concerns, the name of the component will be hidden, even if the story ends well ... maybe.