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){
|
getHome: function(req, res){
|
||||||
Site.getAll(function(err, sites){
|
Site.getAll(function(err, sites){
|
||||||
Visit.findUniqueSites(function(err, uniqueSites){
|
Visit.findUniqueSites(function(err, uniqueSites){
|
||||||
|
@ -33,6 +33,7 @@ con.connect(function(err) {
|
|||||||
unesco_unique int UNIQUE,\
|
unesco_unique int UNIQUE,\
|
||||||
img_url varchar(255),\
|
img_url varchar(255),\
|
||||||
states varchar(255),\
|
states varchar(255),\
|
||||||
|
slug varchar(255) UNIQUE,\
|
||||||
PRIMARY KEY (id)\
|
PRIMARY KEY (id)\
|
||||||
)", function(err, res){
|
)", function(err, res){
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
|
@ -22,7 +22,13 @@ val.query.row.forEach(function(site){
|
|||||||
s.push(site.unique_number);
|
s.push(site.unique_number);
|
||||||
s.push(site.image_url);
|
s.push(site.image_url);
|
||||||
s.push(site.states);
|
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);
|
arr.push(s);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -32,7 +38,7 @@ con.connect(function(err) {
|
|||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
console.log("Connected!");
|
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){
|
con.query(sql, [arr], function(err, res){
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
|
@ -13,6 +13,7 @@ var Site = function(data){
|
|||||||
this.unesco_unique = data.unesco_unique;
|
this.unesco_unique = data.unesco_unique;
|
||||||
this.img_url = data.img_url
|
this.img_url = data.img_url
|
||||||
this.states = data.states;
|
this.states = data.states;
|
||||||
|
this.slug = data.slug;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Finding the site by ID.
|
// 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.
|
// Finding all sites by IDs.
|
||||||
Site.findAllById = function(ids, callback){
|
Site.findAllById = function(ids, callback){
|
||||||
var sql = "SELECT * FROM sites WHERE id in (?)";
|
var sql = "SELECT * FROM sites WHERE id in (?)";
|
||||||
|
@ -4,6 +4,7 @@ var router = express.Router();
|
|||||||
var siteController = require('../controllers/sites');
|
var siteController = require('../controllers/sites');
|
||||||
|
|
||||||
router.get('/', siteController.getAll);
|
router.get('/', siteController.getAll);
|
||||||
router.get('/:id', siteController.findById);
|
// router.get('/:id', siteController.findById);
|
||||||
|
router.get('/:slug', siteController.findBySlug);
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
@ -34,7 +34,7 @@ block content
|
|||||||
if (i + 1 < states.length)
|
if (i + 1 < states.length)
|
||||||
| ,
|
| ,
|
||||||
else
|
else
|
||||||
h3= "Removed!"
|
//- h3= "Removed!"
|
||||||
|
|
||||||
include footer.pug
|
include footer.pug
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user