I am trying to use Drupal to set up a job board, similar to Monster and Seek. I am aware that there is a ready Job Board Module, but for the purposes for extensibility in the future, I was advised to set up as much as possible using CCK and Views. This is what I've done so far:

First, I created the following custom content types using CCK: Job, Job Application

Problem 1: In Job Board module, users can click on apply and directly fill out a Job application. So, I need a way whereby a person a click on the apply button and a new 'Job Application' node creation form appears. The easy way to do this is to link to node/create for Job Application. But, how do I associate all those Job application nodes with that Job?

Attempt 1: I added a node referrer field in the Job application content type. But then, I didn't know how to automatically fill it up with the URL of the referring node (i.e. the Job node where the applicant clicked the apply button). Also, I need a way such that only the person who created that Job node (i.e. recruiter) can view the Job applications that have that Job node in their node referrer field.

Then, I gave up and went about the whole thing another way. The easiest way to associate a node with another is to use the comments system, which is there in core. Comments are automatically associated with a particular node. But comments don't allow file attachments, plus they can't be extended by CCK. So, I used the node comments module to turn all my comments for the Job content type into full nodes.

Problem 2: Now, I am able to set it up so that Job application nodes are comments to Job nodes. But, I need a way so for Job Nodes only, only the node author can see the comments for that node.

No idea how to solve problem 2. Any ideas or help appreciated. Maybe even if there was a better way of going about the whole thing.

Comments

matt_harrold’s picture

Solution 1: have a look at Prepopulate ... users will be able to create Job Applications that have the Job node reference already filled in.

I'm drawing a blank on your second problem.

icekin’s picture

Thanks, didn't know about pre-populate module. That solves half the problem. It still leaves another problem though, how do I ensure that only the node author can view job applications that have that node URL in the referrer? In functionality terms, only the person advertising the job should be able to see the applications he/she received.

icekin’s picture

I am currently trying the Job Search module. The 6x version is only in development, but it seems to work alright so far, so I am most likely going with that as a solution. If that fails, I will resort to using Job Posting module as a fallback. Job Posting allows the addition of CCK type fields, as does Job Search. However, there is no way to remove the fields that already come with the Job posting content type when the module is enabled.

magiainformatica’s picture

following instruction from chapter 3 of USING DRUPAL book of oreilly
J create two contents type :
Job - with fields
• Job title
• Department
• Description
• Salary

Job application with fields
• Title
• Job
• Introductory message
• Résumé

I created two views:
jobs - a list of available positions
applications - a list of applications

But how, as proposed in taking it further at the end of chapter in the book,
add a link for users to apply for a job directly from the job post itself, so users did not need
to select it from a drop-down box from the application form

or better
add a link for users to apply for a job directly from the avaialable position list , so users did not need to select it from a drop-down box from the application form

I used prepopulated module but to have the correct url so job application title and job (a select list)
come prepopulated was not easy.
We need add a link in every row of view list of jobs (available positions) with a url similar to this one:
node/add/application?edit[title]=My application for the available job&edit[field_job][nid][nid]=6
the 6 is nid (node identification) of listed row from where we linked (note also the special field_name that comes from CCK Select list widget for job).

Problem arise from [ ] (open close bracket) used in link creation for field_name and for replacement.
i solved in this way - for field name I used %5B %5D and for replacement I used [ ]:

added a field (invisible) in jobs view

Defaults: Configure field Node: Nid
Label:
The label for this field that will be displayed to end users if the style requires it.
Exclude from display
Check this box to not display this field, but still load it in the view. Use this option to not show a grouping field in each record, or when doing advanced theming.
Rewrite the output of this field
If checked, you can alter the output of this field by specifying a string of text with replacement tokens that can use any existing field output.
Text:
The text to display for this field. You may include HTML. You may enter data from this view as per the "Replacement patterns" below.
Output this field as a link
If checked, this field will be made into a link. The destination must be given below.
Link path:
The Drupal path or absolute URL for this link. You may enter data from this view as per the "Replacement patterns" below.
Link class:
The CSS class to apply to the link.
Alt text:
Text to place as "alt" text which most browsers display as a tooltip when hovering over the link.
Prefix text:
Any text to display before this link. You may include HTML.
Suffix text:
Any text to display after this link. You may include HTML.
Target:
Target of the link, such as _blank, _parent or an iframe's name. This field is rarely used.
Replacement patterns

The following substitution patterns are available for this display. Use the pattern shown on the left to display the value indicated on the right. Note that due to rendering order, you cannot use fields that come after this field; if you need a field not listed here, rearrange your fields.
Fields

* [nid] == Node: Nid

Arguments

* %1 == Content: Department (field_department) title
* !1 == Content: Department (field_department) input

Trim this field to a maximum length
If checked, this field be trimmed to a maximum length in characters.
Maximum length:
The maximum number of characters this field can be.
Trim only on a word boundary
If checked, this field be trimmed only on a word boundary. This is guaranteed to be the maximum characters stated or less. If there are no word boundaries this could trim a field to nothing.
Add an ellipsis
If checked, a "..." will be added if a field was trimmed.
Field can contain HTML
If checked, HTML corrector will be run to ensure tags are properly closed after trimming.
Strip HTML tags
If checked, all HTML tags will be stripped.
Empty text:
If the field is empty, display this text instead.
Count the number 0 as empty
If the field contains the number zero, display the empty text instead
Hide if empty
Do not display anything for this field if it is empty. Note that the field label may still be displayed. Check style or row style settings to hide labels for empty fields.
Link this field to its node
This will override any other link you have set.

add as last a field (our link) who create the url

Defaults: Configure field Global: Custom text
Label:
The label for this field that will be displayed to end users if the style requires it.
Exclude from display
Check this box to not display this field, but still load it in the view. Use this option to not show a grouping field in each record, or when doing advanced theming.
Text:
apply
The text to display for this field. You may include HTML. You may enter data from this view as per the "Replacement patterns" below.
Output this field as a link
If checked, this field will be made into a link. The destination must be given below.
Link path:

node/add/application?edit%5Btitle%5D=domanda di assunzione&edit%5Bfield_job%5D%5Bnid%5D%5Bnid%5D=[nid]

The Drupal path or absolute URL for this link. You may enter data from this view as per the "Replacement patterns" below.
Link class:
The CSS class to apply to the link.
Alt text:
Text to place as "alt" text which most browsers display as a tooltip when hovering over the link.
Prefix text:
Any text to display before this link. You may include HTML.
Suffix text:
Any text to display after this link. You may include HTML.
Target:
Target of the link, such as _blank, _parent or an iframe's name. This field is rarely used.
Replacement patterns

The following substitution patterns are available for this display. Use the pattern shown on the left to display the value indicated on the right. Note that due to rendering order, you cannot use fields that come after this field; if you need a field not listed here, rearrange your fields.
Fields

* [nid] == Node: Nid
* [title] == Node: Title
* [created] == Node: Post date
* [field_salary_value] == Content: Salary (field_salary)
* [field_contact_uid] == Content: Contact (field_contact)
* [nothing] == Global: Custom text

Arguments

* %1 == Content: Department (field_department) title
* !1 == Content: Department (field_department) input

Trim this field to a maximum length
If checked, this field be trimmed to a maximum length in characters.
Maximum length:
The maximum number of characters this field can be.
Trim only on a word boundary
If checked, this field be trimmed only on a word boundary. This is guaranteed to be the maximum characters stated or less. If there are no word boundaries this could trim a field to nothing.
Add an ellipsis
If checked, a "..." will be added if a field was trimmed.
Field can contain HTML
If checked, HTML corrector will be run to ensure tags are properly closed after trimming.
Strip HTML tags
If checked, all HTML tags will be stripped.
Empty text:
If the field is empty, display this text instead.
Count the number 0 as empty
If the field contains the number zero, display the empty text instead
Hide if empty
Do not display anything for this field if it is empty. Note that the field label may still be displayed. Check style or row style settings to hide labels for empty fields.

Hope my sweat can help as general rule to add (with a link) from list of node (view) a new related node with content prepopulated.

Gianni.

communityoutreach.ca’s picture

Hi, we have a job board created in drupal (5.0 version). But having major problems because we are not drupal programmers and dont know how to upgrade or maintain it without losing data. Can anyone help.
www.communityoutreach.ca