slugs created and implemented
This commit is contained in:
parent
eb9d8f78f7
commit
e69a1e03f8
@ -13,6 +13,16 @@ module.exports = {
|
||||
}
|
||||
});
|
||||
},
|
||||
findBySlug: function(req, res){
|
||||
Site.findBySlug(req.params.slug, function(err, site){
|
||||
// if(err) throw err;
|
||||
if(err) res.render('index', { title: 'Site is not found!'});
|
||||
else {
|
||||
console.log("Site->Controller: findBySlug queried: " + site.site);
|
||||
res.render('site', { title: site.site, site: site });
|
||||
}
|
||||
});
|
||||
},
|
||||
getHome: function(req, res){
|
||||
Site.getAll(function(err, sites){
|
||||
Visit.findUniqueSites(function(err, uniqueSites){
|
||||
|
@ -33,6 +33,7 @@ con.connect(function(err) {
|
||||
unesco_unique int UNIQUE,\
|
||||
img_url varchar(255),\
|
||||
states varchar(255),\
|
||||
slug varchar(255) UNIQUE,\
|
||||
PRIMARY KEY (id)\
|
||||
)", function(err, res){
|
||||
if (err) throw err;
|
||||
|
@ -22,7 +22,13 @@ val.query.row.forEach(function(site){
|
||||
s.push(site.unique_number);
|
||||
s.push(site.image_url);
|
||||
s.push(site.states);
|
||||
// console.log(site);
|
||||
// Generating a slug.
|
||||
var slug = htmlToText.fromString(htmlToText.fromString(site.site), { wordwrap: false });
|
||||
var punctuationless = slug.replace(/[.',\/#!$%\^&\*;:{}=\-_`~()]/g,"");
|
||||
var finalString = punctuationless.replace(/\s{2,}/g," ");
|
||||
slug = finalString.toLowerCase().split(" ").join("-");
|
||||
s.push(slug);
|
||||
console.log(slug);
|
||||
arr.push(s);
|
||||
});
|
||||
|
||||
@ -32,7 +38,7 @@ con.connect(function(err) {
|
||||
if (err) throw err;
|
||||
console.log("Connected!");
|
||||
|
||||
sql = "INSERT INTO sites (category, in_danger, date_inscribed, unesco_url, latitude, longitude, description, site, unesco_unique, img_url, states) VALUES ?";
|
||||
sql = "INSERT INTO sites (category, in_danger, date_inscribed, unesco_url, latitude, longitude, description, site, unesco_unique, img_url, states, slug) VALUES ?";
|
||||
|
||||
con.query(sql, [arr], function(err, res){
|
||||
if (err) throw err;
|
||||
|
@ -13,6 +13,7 @@ var Site = function(data){
|
||||
this.unesco_unique = data.unesco_unique;
|
||||
this.img_url = data.img_url
|
||||
this.states = data.states;
|
||||
this.slug = data.slug;
|
||||
};
|
||||
|
||||
// Finding the site by ID.
|
||||
@ -30,6 +31,21 @@ Site.findById = function(id, callback){
|
||||
});
|
||||
};
|
||||
|
||||
// Finding the site by slug.
|
||||
Site.findBySlug = function(slug, callback){
|
||||
var sql = "SELECT * FROM sites WHERE slug=? limit 1";
|
||||
|
||||
con.query(sql, slug, function(err, result){
|
||||
if (err) return callback(err);
|
||||
// if not site is found.
|
||||
if (result[0] == undefined) callback(404);
|
||||
else {
|
||||
console.log("Site.findBySlug: " + result[0].site + " retrieved!");
|
||||
callback(err, new Site(result[0]));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Finding all sites by IDs.
|
||||
Site.findAllById = function(ids, callback){
|
||||
var sql = "SELECT * FROM sites WHERE id in (?)";
|
||||
|
@ -4,6 +4,7 @@ var router = express.Router();
|
||||
var siteController = require('../controllers/sites');
|
||||
|
||||
router.get('/', siteController.getAll);
|
||||
router.get('/:id', siteController.findById);
|
||||
// router.get('/:id', siteController.findById);
|
||||
router.get('/:slug', siteController.findBySlug);
|
||||
|
||||
module.exports = router;
|
||||
|
@ -34,7 +34,7 @@ block content
|
||||
if (i + 1 < states.length)
|
||||
| ,
|
||||
else
|
||||
h3= "Removed!"
|
||||
//- h3= "Removed!"
|
||||
|
||||
include footer.pug
|
||||
|
||||
|
Reference in New Issue
Block a user