Job board

: mod_articles_category

Live demo

Job Board


Markup

<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_articles_category
 * @Author      web-eau.net
 * @copyright   Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */
defined('_JEXEC') or die;
?>		
		<div class="wrapper">
			<ul id="job-board">
			<?php foreach ($list as $group_name => $group) : ?>
				<li class="date"><?php echo $group_name; ?></li> 
				<?php foreach ($group as $item) : ?>
				<?php $item->urls = new JRegistry($item->urls); ?>
				<a href="/<?php echo $item->link; ?>">
					<li class="listing clearfix">
						<div class="image_wrapper">
						    <?php
							$article_images  = json_decode($item->images);
							$article_image   = '';
							$article_image_alt   = '';
							if(isset($article_images->image_intro) && !empty($article_images->image_intro)) {
								$article_image  = $article_images->image_intro;
								$article_image_alt  = $article_images->image_intro_alt;
							}?> 
							<img src="/<?php echo $article_image; ?>" alt="<?php echo $article_image_alt; ?>"> 
						</div>
						<div class="info">
							<span class="job_title"><?php echo $item->title; ?></span> 
							<span class="job_info"><?php echo $item->urls->get('urlatext'); ?> <span>&bull; 
								</span> <?php echo $item->urls->get('urlbtext'); ?> <span>&bull; 
							</span> <?php echo $item->displayDate; ?></span> 
						</div>
						<span class="job_type"><?php echo $item->urls->get('urlctext'); ?></span> 
					</li>
				</a>
				<?php endforeach; ?>
			<?php endforeach; ?>
			</ul>
		</div>

CSS

.wrapper {
  max-width: 90%;
  margin: 0 auto;
}
.clearfix:before, .clearfix:after {
  content: " ";
  display: table;
}
.clearfix:after {
  clear: both;
}
#job-board {
  width: 100%;
  position: relative;
  list-style: none;
  padding: 0;
}
#job-board:after {
  content: " ";
  width: 1px;
  background: 1px #d9dee9;
  height: 90%;
  position: absolute;
  top: 3em;
  left: 3em;
  z-index: 0;
}
#job-board a {
  text-decoration: none;
}
#job-board .listing {
  background: #fff;
  border: 1px solid #d9dee9;
  border-radius: 0.3em;
  padding: 1em;
  margin-bottom: 1em;
  position: relative;
  z-index: 1;
  display: table;
  width: 96%;
  transition: all 0.3s ease-in-out;
}
#job-board .listing img, #job-board .listing .info, #job-board .listing .job_type {
  display: table-cell;
  vertical-align: middle;
  font-size: 0.9em;
  color: #9592ad;
}
#job-board .listing .image_wrapper {
  width: 60px;
}
#job-board .listing .image_wrapper img {
  width: 60px;
  display: block;
  margin: 0 auto;
  border-radius: 0.25em;
}
#job-board .listing .info {
  line-height: 1.25;
  width: 640px;
  padding-left: 25px;
}
#job-board .listing .info .job_title {
  font-weight: 700;
  color: #34314c;
  font-size: 1.5em;
}
#job-board .listing .info .job_info {
  color: #9592ad;
  display: block;
}
#job-board .listing .info .job_info span {
  margin: 0 0.75em;
}
#job-board .listing .job_type {
  text-transform: uppercase;
  font-weight: 700;
  font-size: 0.75em;
  position: relative;
  white-space: nowrap;
  padding-top: 0.6em;
  color: #fd7473;
}
#job-board .listing .job_type:before {
  content: " ";
  background: #fd7473;
  width: 10px;
  height: 10px;
  border-radius: 100%;
  position: absolute;
  left: -20px;
  top: 27px;
}
#job-board .listing:hover {
  cursor: pointer;
  box-shadow: 0px 2px 40px 0 rgba(0, 0, 0, .1);
}
#job-board .date {
  display: inline-block;
  padding: 0.6em 0;
  width: 100px;
  background: #fff;
  border: 1px solid #d9dee9;
  border-radius: 3em;
  font-weight: 700;
  font-size: 0.75em;
  text-align: center;
  z-index: 2;
  position: relative;
  margin: 1em 0 2em 0;
}
Daniel Dubois

Daniel Dubois

Passionné par le Web depuis 2007, Daniel défend la veuve et l'orphelin du web en créant des sites respectueux du W3C. Fort d'une expérience de plusieurs années, il partage ses connaissances dans un état d'esprit open source.
Très impliqué dans la communauté Joomla depuis 2014, il est actif au sein de plusieurs projets, conférencier et fondateur du JUG Breizh.