Page.java
package sk.iway.iwcm.doc.ninja;
import java.util.Collections;
import java.util.Map;
import java.util.Optional;
import javax.servlet.http.HttpServletRequest;
import sk.iway.iwcm.PathFilter;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.doc.DocDetails;
public class Page {
private Ninja ninja;
private DocDetails doc;
public Page(Ninja ninja) {
this.ninja = ninja;
// request nemoze byt null
if (ninja.getRequest() == null) return;
this.doc = (DocDetails) ninja.getRequest().getAttribute("docDetails");
}
public DocDetails getDoc(){
return doc;
}
public String getSeoTitle() {
String seoTitle = "";
if(doc != null) {
seoTitle = doc.getFieldR();
if(Tools.isEmpty(seoTitle)){
seoTitle = doc.getTitle();
}
}
return seoTitle;
}
public String getSeoDescription(){
String seoDesc = "";
if(doc!=null){
seoDesc = doc.getFieldS();
if(Tools.isEmpty(seoDesc)){
seoDesc = doc.getPerexPre();
}
}
return Tools.html2text(seoDesc).replace("\"","");
}
public String getSeoImage(){
String seoImage = "";
if(doc!=null){
seoImage = doc.getFieldT();
//skontroluj, ze obsahuje / a ., inak to nie je obrazok, ale nejaky text
if (seoImage.contains("/")==false || seoImage.contains(".")==false) seoImage = "";
if(Tools.isEmpty(seoImage)){
seoImage = getStringValue(doc.getPerexImage(), ninja.getTemp().getBasePathImg() + ninja.getConfig("defaultSeoImage"));
}
}
return seoImage;
}
public String getStringValue(String value, String defaultValue)
{
String ret = defaultValue;
if(Tools.isNotEmpty(value)) ret = value;
return(ret);
}
public String getRobots(){
String robots = "";
if(doc!=null){
robots = doc.isSearchable() ? "index, follow" : "noindex, follow";
}
return robots;
}
public String getUrl(){
return getUrlDomain() +""+ getUrlPath();
}
public String getUrlDomain(){
return Tools.getBaseHref(ninja.getRequest());
}
public String getUrlPath(){
return PathFilter.getOrigPath(ninja.getRequest());
}
/**
* Returns URL address with Query String (if exists)
* @return
*/
public String getUrlPathQString(){
String path = getUrlPath();
String qString = (String)ninja.getRequest().getAttribute("path_filter_query_string");
if (qString != null) path += "?" + qString;
return path;
}
public Map<String, String[]> getUrlParameters() {
Optional<HttpServletRequest> requestOptional = Optional.ofNullable(ninja.getRequest());
return requestOptional.isPresent() ? requestOptional.get().getParameterMap() : Collections.emptyMap();
}
public String getTitle() {
return ninja.replaceNbspSingleChar(doc.getTitle());
}
public String getPerex() {
return ninja.replaceNbspSingleChar(doc.getPerex());
}
public String getPerexPlace() {
return ninja.replaceNbspSingleChar(doc.getPerexPlace());
}
}