Skip to content

Commit 37527cd

Browse files
#20725 add road trip page
1 parent 20ffe3e commit 37527cd

File tree

12 files changed

+697
-1
lines changed

12 files changed

+697
-1
lines changed

config/routes.php

+1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
$routes->connect('/get-involved', ['controller' => 'Pages', 'action' => 'display', 'get-involved']);
8080
$routes->connect('/team', ['controller' => 'Pages', 'action' => 'display', 'team']);
8181
$routes->connect('/business-solutions', ['controller' => 'Pages', 'action' => 'display', 'business-solutions']);
82+
$routes->connect('/roadtrip', ['controller' => 'Pages', 'action' => 'display', 'road_trip']);
8283

8384
$routes->redirect('/pages/documentation', 'http://book.cakephp.org/');
8485
$routes->redirect('/documentation', 'http://book.cakephp.org/');

src/Controller/ContactsController.php

+18
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
use Cake\Mailer\Email;
66
use Cake\Event\Event;
77

8+
/**
9+
* @property \App\Model\Table\ContactsTable $Contacts
10+
*/
811
class ContactsController extends AppController
912
{
1013
public function beforeFilter(Event $event)
@@ -29,6 +32,21 @@ public function rapid()
2932
$this->response->statusCode(422);
3033
}
3134

35+
public function roadTrip()
36+
{
37+
$this->autoRender = false;
38+
39+
$contact = $this->Contacts->createRapidContact(['type' => 'road_trip', 'subject' => 'road_trip'] + $this->request->data);
40+
41+
if ($this->Contacts->save($contact)) {
42+
$this->sendEmail($contact);
43+
44+
$this->Flash->success(__('Thank you!'), ['key' => 'contact']);
45+
}
46+
47+
return $this->redirect('/roadtrip');
48+
}
49+
3250
private function sendEmail($contact)
3351
{
3452
$email = new Email('default');

src/Model/Table/ContactsTable.php

+6
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,9 @@ private function extractRapidBody($data)
112112
case 'skype':
113113
$body = 'skype me at ' . $data['skype'];
114114
break;
115+
case 'road_trip':
116+
$body = 'come to ' . $data['where'];
117+
break;
115118
default:
116119
throw new \InvalidArgumentException();
117120
}
@@ -147,6 +150,9 @@ private function extractRapidSubject($data)
147150
case 'training':
148151
$subject = 'Rapid Response: Training';
149152
break;
153+
case 'road_trip':
154+
$subject = 'Road Trip';
155+
break;
150156
default:
151157
throw new \InvalidArgumentException();
152158
}

src/Template/Element/Layout/default/menu/menu.ctp

+9-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,15 @@
2525
$this->Html->link(
2626
__('Swag'),
2727
'https://swag.cakephp.org/',
28-
['escape' => false, 'class' => 'new-tag', 'target' => '_blank']
28+
['escape' => false, 'target' => '_blank']
29+
);?>
30+
</li>
31+
<li>
32+
<?=
33+
$this->Html->link(
34+
__('Road Trip'),
35+
['controller' => 'Pages', 'action' => 'display', 'road_trip'],
36+
['escape' => false, 'class' => 'new-tag']
2937
);?>
3038
</li>
3139
<li>

src/Template/Pages/road_trip.ctp

+111
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
<?php
2+
/**
3+
* @var \App\View\AppView $this
4+
*/
5+
6+
$this->assign('title', 'CakePHP is coming to your town!');
7+
?>
8+
<section class="clearfix">
9+
<div class="container-fluid">
10+
<div class="row roadtrip-hero">
11+
<?= $this->Html->image('roadtrip-hero.svg') ?>
12+
</div>
13+
</div>
14+
</section>
15+
<section>
16+
<div class="container roadtrip-body">
17+
<div class="row">
18+
<div class="col-md-6 col-md-offset-3">
19+
<h1>CakePHP is coming to your town!</h1>
20+
<p>Cake Road Trip is an opportunity for members of CakePHP core team come visit you at a local PHP meetup! The Team is keen to meet community members from around the world, bringing Cake Road Trip to you! Keen to have us come visit your meetup? Well, this is the opportunity to let us know! We are trying our best to come to as many locations as possible.</p>
21+
</div>
22+
</div>
23+
<?php /*
24+
<div class="row">
25+
<div class="col-md-6 col-md-offset-3 road-hosts">
26+
27+
<img class="plaque1svg" src="img/plaque1.svg">
28+
29+
<h2>What other hosts are saying</h2>
30+
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nos.</p>
31+
32+
<img class="road-cloud1" src="img/cloud1.svg">
33+
<img class="road-cloud2" src="img/cloud2.svg">
34+
</div>
35+
</div>
36+
<div class="row">
37+
<div class="col-md-5 col-md-offset-1">
38+
<div class="road-quote">
39+
<div class="road-quote-photo">
40+
<img src="img/placeholder001.jpg">
41+
</div>
42+
<p>“Lorem ipsum dolor sit ame t, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nos.”</p>
43+
<p><span>- Influential Dude</span></p>
44+
</div>
45+
</div>
46+
<div class="col-md-5">
47+
<div class="road-quote">
48+
<div class="road-quote-photo">
49+
<img src="img/placeholder002.jpg">
50+
</div>
51+
<p>“Lorem ipsum dolor sit ame t, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nos.”</p>
52+
<p><span>- Another Influential Developer</span></p>
53+
</div>
54+
</div>
55+
</div>
56+
*/ ?>
57+
<div class="row">
58+
<div class="col-md-6 col-md-offset-3">
59+
<?= $this->Html->image('plaque2.svg', ['class' => 'plaque2svg']) ?>
60+
<h2>We’re just waiting for your invitation</h2>
61+
<p>If you have a PHP or CakePHP meetup group and are excited to have us come visit, let us know soon! We will go to as many places as we can fit into our Cake Road Trip. And will be asking the community to vote for the top places to visit!</p>
62+
</div>
63+
</div>
64+
<?php if (!$flash = $this->Flash->render('contact')): ?>
65+
<div class="row">
66+
<div class="col-md-6 col-md-offset-3">
67+
<?= $this->Form->create(null, ['url' => ['controller' => 'Contacts', 'action' => 'roadTrip'], 'class' => 'road-form']) ?>
68+
<?= $this->Form->input('name', ['label' => __('Name {0}', $this->Html->tag('span', __('(Required)'))), 'escape' => false, 'class' => 'form-control']) ?>
69+
<?= $this->Form->input('email', ['label' => __('Email {0}', $this->Html->tag('span', __('(Required)'))), 'escape' => false, 'class' => 'form-control']) ?>
70+
<?= $this->Form->input('where', ['label' => __('Tell us where would you’d like us to go next {0}', $this->Html->tag('span', __('(Required)'))), 'escape' => false, 'class' => 'form-control']) ?>
71+
<?= $this->Form->button(__('Notify me!')) ?>
72+
<?= $this->Form->end() ?>
73+
</div>
74+
</div>
75+
<?php else: ?>
76+
<?= $flash ?>
77+
<?php endif; ?>
78+
<?php /*
79+
<div class="row">
80+
<div class="col-md-8 col-md-offset-2">
81+
<h2>News from the road</h2>
82+
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nos.</p>
83+
84+
<p class="pt-30"><strong>Select an edition:</strong></p>
85+
86+
<div class="roadtrip-select">
87+
<select>
88+
<option value="volvo">01.02.2018 Nashville Edition</option>
89+
<option value="saab">02.02.2018 Nashville Edition</option>
90+
<option value="mercedes">03.02.2018 Nashville Edition</option>
91+
<option value="audi">04.02.2018 Nashville Edition</option>
92+
</select>
93+
</div>
94+
95+
<div class="roadtrip-update">
96+
<p><strong>01.02.2018</strong></p>
97+
<h3>Nashville Edition</h3>
98+
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</p>
99+
<p>Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
100+
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
101+
<img src="img/placeholder003.jpg">
102+
</div>
103+
104+
</div>
105+
</div>
106+
*/?>
107+
</div>
108+
<div class="roadtrip-bottom">
109+
<?= $this->Html->image('roadtrip-footer-img.svg') ?>
110+
</div>
111+
</section>

0 commit comments

Comments
 (0)