Skip to content

Commit ceef1bf

Browse files
committed
Add more CakePHP Jobs & Developers Websites
Divide job/project sites and developer/freelancer sites visually, in menu and in configuration. Replace redundant code with two foreachs, reading everything from the configuration. Closes cakephp#116
1 parent a68e20b commit ceef1bf

File tree

3 files changed

+165
-33
lines changed

3 files changed

+165
-33
lines changed

Diff for: config/site.php

+113-16
Original file line numberDiff line numberDiff line change
@@ -141,31 +141,128 @@
141141
'title' => __('Google+')
142142
],
143143
],
144-
'jobs' => [
144+
'jobSites' => [
145145
'cakeJobs' => [
146+
'title' => __('Cake Jobs'),
146147
'url' => 'http://cakephpjobs.com/',
147-
'options' => ['target' => '_blank'],
148-
'title' => __('Cake Jobs')
148+
'description' => __('The best place to post your CakePHP related jobs'),
149149
],
150-
'linkedin' => [
150+
'linkedIn' => [
151+
'title' => __('LinkedIn'),
151152
'url' => 'https://www.linkedin.com/groups/4623165',
152-
'options' => ['target' => '_blank'],
153-
'title' => 'LinkedIn'
153+
'description' => __('Official LinkedIn career group for CakePHP related opportunities'),
154154
],
155155
'freelancer' => [
156-
'url' => 'https://www.freelancer.com/find/CakePHP',
157-
'options' => ['target' => '_blank'],
158-
'title' => 'Freelancer'
156+
'title' => __('Freelancer'),
157+
'url' => 'https://www.freelancer.com/jobs/cakephp/',
158+
'description' => __('CakePHP related freelance jobs'),
159159
],
160-
'odesk' => [
160+
'upwork' => [
161+
'title' => __('Upwork'),
161162
'url' => 'https://www.upwork.com/o/jobs/browse/skill/cakephp/',
162-
'options' => ['target' => '_blank'],
163-
'title' => 'oDesk'
163+
'description' => __('CakePHP related freelance jobs'),
164+
],
165+
'guru' => [
166+
'title' => __('Guru'),
167+
'url' => 'https://www.guru.com/d/jobs/q/cakephp/',
168+
'description' => __('CakePHP related freelance jobs'),
169+
],
170+
'twago' => [
171+
'title' => __('twago'),
172+
'url' => 'https://www.twago.com/s/projects/cakephp/',
173+
'description' => __('CakePHP related freelance jobs'),
174+
],
175+
'workHire' => [
176+
'title' => __('WorknHire'),
177+
'url' => 'http://worknhire.com/WorkProjects/jobs/q_CakePHP',
178+
'description' => __('CakePHP related freelance jobs'),
179+
],
180+
'codementorX' => [
181+
'title' => __('CodementorX'),
182+
'url' => 'https://www.codementor.io/freelance-jobs/cakephp',
183+
'description' => __('CakePHP related freelance jobs'),
184+
],
185+
'peoplePerHour' => [
186+
'title' => __('PeoplePerHour'),
187+
'url' => 'https://www.peopleperhour.com/freelance-cakephp-jobs',
188+
'description' => __('CakePHP related freelance jobs'),
189+
],
190+
'indeed' => [
191+
'title' => __('Indeed'),
192+
'url' => 'https://www.indeed.com/q-Cakephp-jobs.html',
193+
'description' => __('CakePHP related freelance jobs'),
164194
],
165-
'cakexperts' => [
166-
'url' => 'http://cakexperts.com/',
167-
'options' => ['target' => '_blank'],
168-
'title' => 'CakeXperts'
195+
'stackOverflow' => [
196+
'title' => __('Stack Overflow'),
197+
'url' => 'https://stackoverflow.com/jobs/developer-jobs-using-cakephp',
198+
'description' => __('CakePHP related freelance jobs'),
199+
],
200+
'xing' => [
201+
'title' => __('XING (Mostly German)'),
202+
'url' => 'https://www.xing.com/communities/groups/cakephp-the-rapid-php-development-framework-0a9b-1013723',
203+
'description' => __('XING career group for CakePHP related opportunities (mostly Germany, Austria & Switzerland)'),
204+
],
205+
'naukri' => [
206+
'title' => __('Naukri (India)'),
207+
'url' => 'https://www.naukri.com/cakephp-jobs',
208+
'description' => __('CakePHP related freelance jobs in India'),
209+
],
210+
],
211+
'developerSites' => [
212+
'cakeDC' => [
213+
'title' => __('CakeDC'),
214+
'url' => 'http://www.cakedc.com/',
215+
'description' => __('Development and consultancy from the experts'),
216+
],
217+
'linkedIn' => [
218+
'title' => __('LinkedIn'),
219+
'url' => 'https://www.linkedin.com/groups/4623165',
220+
'description' => __('Official LinkedIn career group for CakePHP related opportunities'),
221+
],
222+
'guru' => [
223+
'title' => __('Guru'),
224+
'url' => 'https://www.guru.com/d/freelancers/q/cakephp/',
225+
'description' => __('Freelancers providing CakePHP related services'),
226+
],
227+
'toptal' => [
228+
'title' => __('Toptal'),
229+
'url' => 'https://www.toptal.com/cakephp',
230+
'description' => __('Freelancers providing CakePHP related services'),
231+
],
232+
'truelancer' => [
233+
'title' => __('Truelancer'),
234+
'url' => 'https://www.truelancer.com/cakephp-freelancers',
235+
'description' => __('Freelancers providing CakePHP related services'),
236+
],
237+
'freelancermap' => [
238+
'title' => __('Freelancermap'),
239+
'url' => 'https://www.freelancermap.com/freelancers-directory/cakephp-3383',
240+
'description' => __('Freelancers providing CakePHP related services'),
241+
],
242+
'fiverr' => [
243+
'title' => __('Fiverr'),
244+
'url' => 'https://www.fiverr.com/search/gigs?query=cakephp',
245+
'description' => __('Freelancers providing CakePHP related services'),
246+
],
247+
'freelancerMax' => [
248+
'title' => __('FreelancerMax'),
249+
'url' => 'https://www.freelancermax.com/hire/freelance-cakephp',
250+
'description' => __('Freelancers providing CakePHP related services'),
251+
],
252+
'malt' => [
253+
'title' => __('Malt'),
254+
'url' => 'https://www.malt.com/a/freelance/developers/backend-developer/cakephp-developer',
255+
'description' => __('Freelancers providing CakePHP related services'),
256+
],
257+
'xing' => [
258+
'title' => __('XING (Mostly German)'),
259+
'url' => 'https://www.xing.com/communities/groups/cakephp-the-rapid-php-development-framework-0a9b-1013723',
260+
'description' => __('XING career group for CakePHP related opportunities (mostly Germany, Austria & Switzerland)'),
261+
],
262+
'404Works' => [
263+
'title' => __('404Works (French)'),
264+
'url' => 'https://www.404works.com/tag/cakephp',
265+
'description' => __('Freelancers providing CakePHP related services (French)'),
169266
],
170267
],
171268
'documentation' => [
+42-14
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,52 @@
11
<?php
2+
/**
3+
* The Find (CakePHP) Job or Developer section of the Get Involved Page
4+
*
5+
* @var \App\View\AppView $this
6+
*/
7+
28
use Cake\Core\Configure;
9+
10+
$jobSites = Configure::read('Site.menu.items.jobSites');
11+
$developerSites = Configure::read('Site.menu.items.developerSites');
312
?>
413

514
<div id="findjobdeveloper" class="col-sm-12 get-developer pt-100">
6-
<h2><?= __('Find Job or Developer')?><?= $this->Html->link('', '#findjobdeveloper', ['class' => 'headerlink', 'title' => __('Permalink to this headline')]) ?></h2>
7-
<p><?= __('If you\'re looking for skilled CakePHP developers, or are a developer yourself and seeking a freelance project or
8-
position at a company, there are many resources available:')?></p>
9-
10-
<h4><?= $this->Html->link(__('LinkedIn'), Configure::read('Site.menu.items.jobs.linkedin.url'), ['target' => '_blank'])?></h4>
11-
<p><?= __('Official career group for CakePHP related opportunities')?></p>
15+
<h2><?= __('Find Job or Developer') ?><?= $this->Html->link('', '#findjobdeveloper',
16+
['class' => 'headerlink', 'title' => __('Permalink to this headline')]) ?></h2>
17+
<p><?= __('Whether you are looking for skilled CakePHP developers, or are a developer yourself and seeking a freelance project or
18+
position at a company, there are plenty resources available.')?></p>
1219

13-
<h4><?= $this->Html->link(__('Freelancer'), Configure::read('Site.menu.items.jobs.freelancer.url'), ['target' => '_blank'])?></h4>
14-
<p><?= __('Jobs available for freelance developers')?></p>
20+
<div id="findJob" class="box-get">
21+
<h3><?= __('Find Job') ?><?= $this->Html->link('', '#findJob',
22+
['class' => 'headerlink', 'title' => __('Permalink to this headline')]) ?></h3>
23+
<p><?= __('If you are a developer yourself and seeking a freelance project or
24+
position at a company, there are many resources available:') ?></p>
1525

16-
<h4><?= $this->Html->link(__('CakePHPJobs'), Configure::read('Site.menu.items.jobs.cakeJobs.url'), ['target' => '_blank'])?></h4>
17-
<p><?= __('CakePHP related job postings')?></p>
26+
<?php
27+
foreach ($jobSites as $jobSite):
28+
$jobSiteTitle = \Cake\Utility\Hash::get($jobSite, 'title');
29+
$jobSiteUrl = \Cake\Utility\Hash::get($jobSite, 'url');
30+
$jobSiteDesc = \Cake\Utility\Hash::get($jobSite, 'description');
31+
?>
32+
<h4><?= $this->Html->link($jobSiteTitle, $jobSiteUrl, ['target' => '_blank']) ?></h4>
33+
<p><?= $jobSiteDesc ?></p>
34+
<?php endforeach; ?>
35+
</div>
1836

19-
<h4><?= $this->Html->link(__('CakeXperts'), Configure::read('Site.menu.items.jobs.cakexperts.url'), ['target' => '_blank'])?></h4>
20-
<p><?= __('Where developers and employers connect')?></p>
37+
<div id="findDeveloper" class="box-get">
38+
<h3><?= __('Find Developer') ?><?= $this->Html->link('', '#findDeveloper',
39+
['class' => 'headerlink', 'title' => __('Permalink to this headline')]) ?></h3>
40+
<p><?= __('If you are looking for skilled CakePHP developers, there are many resources available:') ?></p>
2141

22-
<h4><?= $this->Html->link(__('CakeDC'), Configure::read('Site.menu.items.serviceProvider.cakedc.url'))?></h4>
23-
<p><?= __('Development and consultancy from the experts')?></p>
42+
<?php
43+
foreach ($developerSites as $developerSite):
44+
$devSiteTitle = \Cake\Utility\Hash::get($developerSite, 'title');
45+
$devSiteUrl = \Cake\Utility\Hash::get($developerSite, 'url');
46+
$devSiteDesc = \Cake\Utility\Hash::get($developerSite, 'description');
47+
?>
48+
<h4><?= $this->Html->link($devSiteTitle, $devSiteUrl, ['target' => '_blank']) ?></h4>
49+
<p><?= $devSiteDesc ?></p>
50+
<?php endforeach; ?>
51+
</div>
2452
</div>

Diff for: src/Template/Element/get-involved/sidebar.ctp

+10-3
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,15 @@
1212
<?= $this->Html->tag('li', $this->Html->link(__('Translation'), '#translation'))?>
1313
</ul>
1414
</li>
15-
<?= $this->Html->tag('li', $this->Html->link(__('Get Help'), '#getHelp'), ['class' => 'br-bottom-sidebar mt30'])?>
16-
<?= $this->Html->tag('li', $this->Html->link(__('Find Job or Developer'), '#findjobdeveloper'), ['class' => 'br-bottom-sidebar'])?>
17-
<?= $this->Html->tag('li', $this->Html->link(__('Community Guidelines'), '#comunityguidelinesside'), ['class' => 'br-bottom-sidebar'])?>
15+
<?= $this->Html->tag('li', $this->Html->link(__('Get Help'), '#getHelp'), ['class' => 'br-bottom-sidebar mt30'])?>
16+
<li>
17+
<?= $this->Html->link(__('Find Job or Developer'), '#findjobdeveloper') ?>
18+
<div class="br-bottom-sidebar-2"></div>
19+
<ul id="sub-sidebar-2">
20+
<?= $this->Html->tag('li', $this->Html->link(__('Find Job'), '#findJob'))?>
21+
<?= $this->Html->tag('li', $this->Html->link(__('Find Developer'), '#findDeveloper'))?>
22+
</ul>
23+
</li>
24+
<?= $this->Html->tag('li', $this->Html->link(__('Community Guidelines'), '#comunityguidelinesside'), ['class' => 'br-bottom-sidebar mt30'])?>
1825
<?= $this->Html->tag('li', $this->Html->link(__('CakeFest'), '#cakefest'), ['class' => 'br-bottom-sidebar'])?>
1926
</ul>

0 commit comments

Comments
 (0)