vendredi 22 janvier 2016

[CSS3] Modern Tab Menu

Modern Tab CSS3 Menu

Tab Modern CSS3 Menu - mega menu CSS3 very light in weight, easy to install and supports not only the modern browsers, but also the old, such as the old IE.


Features:
- Pure CSS3
- Based Mesh
- Icons for Fontaweso
- CSS3 Animation
- 5 Styles
- Easy to use

Demonstration

tab-modern-css3-menu.rar [315.17 Kb]

[HTML] 15 best service conversion PSD to HTML

Most web designers would like to focus more on aesthetics rather than programming. However, not only does their project have to look beautiful, but it also has to be user-friendly, fast-loading, semantic, and compatible with different browsers. Therefore, unless you’re an expert at hand coding your own projects, it is best to convert your Photoshop mockup using an established PSD to HTML service. In the list below is a list of our fifteen favorite solutions in 2014.

  CSS Chopper
CSS Chopper





PSDgator
PSDgator



Direct Basing
Direct Basing



XhtmIWeaver
XhtmIWeaver



Webby Monks
Webby Monks



XHTMLized
XHTMLized



HTML Blender
HTML Blender



HTML Panda
HTML Panda



40 Dollar Markup
40 Dollar Markup



PSD 2 HTML
PSD 2 HTML



SlicenPress
SlicenPress



XHMLJunction
XHMLJunction



PSDCenter
PSDCenter



Netlings
Netlings



Bloody Hell
Bloody Hell

[CSS] The effect of pre-loading pages



A tutorial on how to re-create the page preloading effect seen on the website of Fontface Ninja. We are going to use CSS animations, 3D transforms and SVGs.

TToday we want to show you how to create a very simple page preloading effect with CSS animations, SVG and JavaScript. For websites, where it’s crucial to load all or part of the assets, these kind of preloader screens can be a creative way to make waiting a bit less boring for the visitor. The idea for this tutorial is based on the beautiful preloading effect seen on the website of Fontface Ninja. Initially, the logo and a circular progress element slide up and when the loader finishes its progress animation, i.e. the page assets are loaded, the whole “header” moves up while the page elements are revealed with yet another animation. The sliding logo with its color change makes the icing on the cake.

In this tutorial we will re-create the effect seen on Fontface Ninja with some adjustments and a second demo with slightly different effects. For the logo and the circular progress element we will use inline SVGs, so that we can style their paths in our CSS. We’ll create a little script for the stroke animation of the SVG loading element and then we’ll control the page animations with classes that we add to the main container.

Please note that we’ll be using CSS animations and CSS 3D transforms, so this will only work as intended in browsers that support them.

So, let's start!

HTML

Let’s wrap a header and the main content division into a container. We have to keep in mind that we want to control anything that happens to the initial view and the content with classes. So we will use the main container as our control element. We give it the class and ID ip-container.

The initial view consists of a header that contains the logo and the loading element. They are both SVGs and our logo is a bit more complex than the loader, so we’ll leave out the path coordinates in the snippet below because its really long. As you can see, we are defining some SVG attributes like the width and height, the viewBox and the preserveAspectRatio. The value for the preserveAspectRatio is xMidYMin meet which means that we force uniform scaling where the graphic fits completely into its container while its centered on the X axis and aligned at the top. In order to make the logo accessible, we add a title, description and the necessary ARIA attribute, aria-labelledby.

The main content has the class ip-main and later on we’ll apply animations to its children, the headline, the division and the inner boxes:

<div id="ip-container" class="ip-container">

<!-- initial header -->
<header class="ip-header">

<h1 class="ip-logo">
<svg class="ip-inner" width="100%" height="100%" viewBox="0 0 300 160" preserveAspectRatio="xMidYMin meet" aria-labelledby="logo_title">
<title id="logo_title">Delightful Demonstrations by Codrops</title>
<path d="...our super-long path..." />
</svg>
</h1>

<div class="ip-loader">
<svg class="ip-inner" width="60px" height="60px" viewBox="0 0 80 80">
<path class="ip-loader-circlebg" d="M40,10C57.351,10,71,23.649,71,40.5S57.351,71,40.5,71 S10,57.351,10,40.5S23.649,10,40.5,10z"/>
<path id="ip-loader-circle" class="ip-loader-circle" d="M40,10C57.351,10,71,23.649,71,40.5S57.351,71,40.5,71 S10,57.351,10,40.5S23.649,10,40.5,10z"/>
</svg>
</div>

</header>

<!-- main content -->
<div class="ip-main">

<h2>Make yourself at home.</h2>

<div class="browser clearfix">
<div class="box">
<span class="icon-bell"></span>
<p>...</p>
</div>
<div class="box">
<span class="icon-heart"></span>
<p>...</p>
</div>
<div class="box">
<span class="icon-cog"></span>
<p>...</p>
</div>
</div>

</div>
</div><!-- /container -->


Now let's Styling whole thing.

CSS

Note that the CSS will not contain any vendor prefixes, but you will find them in the files.

Initially, we’ll include some fonts that we’ll need for the dummy text and the icons in the boxes. The icons used in the demos are from the Feather icon set and we’ve created the icon font with the Icomoon App. The dummy font is Blokk, a really great fonts when creating wireframes and mockups.


@font-face {
font-weight: normal;
font-style: normal;
font-family: 'Blokk';
src: url('../fonts/blokk/BLOKKRegular.eot');
src: url('../fonts/blokk/BLOKKRegular.eot?#iefix') format('embedded-opentype'),
url('../fonts/blokk/BLOKKRegular.woff') format('woff'),
url('../fonts/blokk/BLOKKRegular.svg#BLOKKRegular') format('svg');
}

@font-face {
font-weight: normal;
font-style: normal;
font-family: 'feather';
src:url('../fonts/feather/feather.eot?-9jv4cc');
src:url('../fonts/feather/feather.eot?#iefix-9jv4cc') format('embedded-opentype'),
url('../fonts/feather/feather.woff?-9jv4cc') format('woff'),
url('../fonts/feather/feather.ttf?-9jv4cc') format('truetype'),
url('../fonts/feather/feather.svg?-9jv4cc#feather') format('svg');
}


We want the header to fill all the viewport initially, so let’s give it a 100% in width and height and set its position to fixed:


.ip-header {
position: fixed;
top: 0;
z-index: 100;
min-height: 480px;
width: 100%;
height: 100%;
background: #f1f1f1;
}


Let’s remove any margins from the logo headline:


.ip-header h1 {
margin: 0;
}


Both, the logo and the loader will be positioned absolutely and we’ll stretch them over the viewport:


.ip-logo,
.ip-loader {
position: absolute;
left: 0;
width: 100%;
opacity: 0;
cursor: default;
pointer-events: none;
}


Instead of simply taking the logo element and positioning it in the center of the header, we need to keep the following in mind: we want the logo SVG itself to be responsive, meaning that we might not have knowledge about its dimension, and we want to move it to the top of the main content using 3D transforms, once the loading is done. Mainly, because we don’t know the size of our logo, we don’t know how much we have to actually translate it in order to be at the top of the content (percentage translations take the element as reference and not the parent). But we do know and can work with one particular value: the viewport height. So let’s just set the logo to 100% height and translate it 25% so that the logo SVG stays in the middle of the page:


.ip-logo {
top: 0;
height: 100%;
transform: translate3d(0,25%,0);
}


We position the logo element at the bottom of the viewport:


.ip-loader {
bottom: 20%;
}


The SVGs, which we gave the class ip-inner, will be displayed as block element and we center it horizontally with the auto margin:


.ip-header .ip-inner {
display: block;
margin: 0 auto;
}


The logo SVG should be responsive but not become too big or too small. So, beside a percentage value as the width, we also set a max and min width:


.ip-header .ip-logo svg {
min-width: 320px;
max-width: 480px;
width: 25%;
}


Since we’ve added the logo SVG inline, we can directly style the color of the path:


.ip-header .ip-logo svg path {
fill: #ef6e7e;
}


And the same holds for the loader:


.ip-header .ip-loader svg path {
fill: none;
stroke-width: 6;
}


The first path has a gray fill:


.ip-header .ip-loader svg path.ip-loader-circlebg {
stroke: #ddd;
}


And the second path will have the progress transition that we will control in our JS. But here, we’ll define the transition of the stroke-dashoffset:


.ip-header .ip-loader svg path.ip-loader-circle {
transition: stroke-dashoffset 0.2s;
stroke: #ef6e7e;
}


PagePreloadingEffect01

And now, we’l style the content of the page, which is all wrapped in the ip-main division:


.ip-main h2 {
margin: 0;
padding: 0.5em 0 1em;
color: #be4856;
text-align: center;
font-size: 4.25em;
font-size: 4vw;
line-height: 1;
}


Let’s add a browser image:


.browser {
margin: 0 auto;
padding-top: 8%;
min-height: 400px;
max-width: 1000px;
width: 100%;
border-radius: 8px;
background: #fff url(../img/browser.png) no-repeat 50% 0;
background-size: 100%;
color: #d3d3d3;
}


And some dummy boxes:


.box {
float: left;
padding: 3.5em;
width: 33.3%;
font-size: 0.7em;
line-height: 1.5;
}

.box p {
font-family: 'Blokk', Arial, sans-serif;
}


The boxes will each have an icon:


[class^="icon-"]::before, 
[class*=" icon-"]::before {
display: block;
margin-bottom: 0.5em;
padding: 0.5em;
border-radius: 5px;
background: #dfdfdf;
color: #fff;
text-align: center;
text-transform: none;
font-weight: normal;
font-style: normal;
font-variant: normal;
font-size: 5em;
font-family: 'feather';
line-height: 1;
speak: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

.icon-bell:before {
content: "e006";
}

.icon-cog:before {
content: "e023";
}

.icon-heart:before {
content: "e024";
}


Now we have to define the animations that should take place. As we mentioned earlier, we will control the firing of animations by adding classes to the main container. The initial animation of the header elements will make them move in from the bottom:


.loading .ip-logo,
.loading .ip-loader {
opacity: 1;
animation: animInitialHeader 1s cubic-bezier(0.7,0,0.3,1) both;
}

.loading .ip-loader {
animation-delay: 0.2s;
}

@keyframes animInitialHeader {
from {
opacity: 0;
transform: translate3d(0,800px,0);
}
}


We only need to define the from keyframe since we want to move the elements to their original position.
The custom cubic-bezier timing function, will add a nice smoothness to the effect. The loading element needs to have a slight delay before it slides in.

At this point, let’s keep in mind, that we will animate the circular progress with JS. So we need another “state” which will be switched to, once that progress animation is done. We will give the class loaded to the container and apply the following animations:


.loaded .ip-logo,
.loaded .ip-loader {
opacity: 1;
}

.loaded .ip-logo {
transform-origin: 50% 0;
animation: animLoadedLogo 1s cubic-bezier(0.7,0,0.3,1) forwards;
}

@keyframes animLoadedLogo {
to {
transform: translate3d(0,100%,0) translate3d(0,50px,0) scale3d(0.65,0.65,1);
}
}

.loaded .ip-logo svg path {
transition: all 0.5s ease 0.3s;
fill: #fff;
}

.loaded .ip-loader {
animation: animLoadedLoader 0.5s cubic-bezier(0.7,0,0.3,1) forwards;
}

@keyframes animLoadedLoader {
to {
opacity: 0;
transform: translate3d(0,-100%,0) scale3d(0.3,0.3,1);
}
}


The logo moves down 100% (remember, our logo is 100% of the viewport height, so this will make it move the entire screen height) plus a bit more for some spacing, and then we also scale it down a bit. The color of the SVG path will change with a transition.
The loader element moves up, scales down and fades out.

The fixed header itself needs to move up as well:


.loaded .ip-header {
animation: animLoadedHeader 1s cubic-bezier(0.7,0,0.3,1) forwards;
}

@keyframes animLoadedHeader {
to { transform: translate3d(0,-100%,0); }
}


Let’s take care of the content elements. Here, you can do a lot of creative effects. This of course, all depends on what content you have on the page. In our case, we want to fade the elements in while moving them up from below:


/* Content animations */
.loaded .ip-main h2,
.loaded .ip-main .browser,
.loaded .ip-main .browser .box,
.loaded .codrops-demos {
animation: animLoadedContent 1s cubic-bezier(0.7,0,0.3,1) both;
}

.loaded .ip-main .browser,
.loaded .ip-main .browser .box:first-child {
animation-delay: 0.1s;
}

.loaded .ip-main .browser .box:nth-child(2) {
animation-delay: 0.15s;
}

.loaded .ip-main .browser .box:nth-child(3) {
animation-delay: 0.2s;
}

@keyframes animLoadedContent {
from {
opacity: 0;
transform: translate3d(0,200px,0);
}
}


The slight delay for the boxes in the browser division, will create a nifty extra effect.

In order to avoid problems with scrolling and gaps at the bottom of the page, we need to switch the positioning of the header from fixed to absolute. This, we can control by adding a class to the body (or any parent) once all the animations are done. With the help of that class, we switch the positioning:


.layout-switch .ip-header {
position: absolute;
}


If we don’t have JavaScript, we show the state after all animations. This we can do by setting the header to relative positioning and sizing the logo accordingly:


.no-js .ip-header {
position: relative;
min-height: 0px;
}

.no-js .ip-header .ip-logo {
margin-top: 20px;
height: 180px;
opacity: 1;
transform: none;
}

.no-js .ip-header .ip-logo svg path {
fill: #fff;
}


Last, but not least, we have to take care of the large headline and the boxes for smaller screens:


@media screen and (max-width: 45em) {

.ip-main h2 {
font-size: 2.25em;
font-size: 10vw;
}

.box {
width: 100%%;
}

}


PagePreloadingEffect02

And that’s all the style.

The JavaScript



The JavaScript consists of two parts. We will separate the general progress element’s loading functionality from the rest. Let’s call that script pathLoader.js since it is the path element that animates.
We want to be able to set the stroke-dashoffset in order to animate the filling the path. Initially, this and the stroke-dasharray are set to the length of the path (getTotalLength()). We draw the path by setting the dash offset to a lower value up until zero where the path is totally drawn. This is done by calling the setProgress function with a parameter for the value. The optional callback parameter might be useful if we want to execute some code once the value is set and the transition is finished.


function PathLoader( el ) {
this.el = el;
// clear stroke
this.el.style.strokeDasharray = this.el.style.strokeDashoffset = this.el.getTotalLength();
}

PathLoader.prototype._draw = function( val ) {
this.el.style.strokeDashoffset = this.el.getTotalLength() * ( 1 - val );
}

PathLoader.prototype.setProgress = function( val, callback ) {
this._draw(val);
if( callback && typeof callback === 'function' ) {
// give it a time (ideally the same like the transition time) so that the last progress increment animation is still visible.
setTimeout( callback, 200 );
}
}

PathLoader.prototype.setProgressFn = function( fn ) {
if( typeof fn === 'function' ) { fn( this ); }
}


The setProgressFn method is used here to define a possible way to interact with the loader. For instance, for our demo we are not preloading anything but instead we simulate a loading animation by setting a random value between 0 and 1 throughout a set of time intervals:

Next, let’s create our resting script in main.js. First we initialize and cache some variables:


var support = { animations : Modernizr.cssanimations },
container = document.getElementById( 'ip-container' ),
header = container.querySelector( 'header.ip-header' ),
loader = new PathLoader( document.getElementById( 'ip-loader-circle' ) ),
animEndEventNames = { 'WebkitAnimation' : 'webkitAnimationEnd', 'OAnimation' : 'oAnimationEnd', 'msAnimation' : 'MSAnimationEnd', 'animation' : 'animationend' },
// animation end event name
animEndEventName = animEndEventNames[ Modernizr.prefixed( 'animation' ) ];


We start the initial animation (both logo and loader slide up) by adding the loading class to the main container. After the animation ends we start the “fake” loading animation on the SVG loader element like explained before. Note that while these animations are taking place we don’t allow the page to be scrolled.


function init() {
var onEndInitialAnimation = function() {
if( support.animations ) {
this.removeEventListener( animEndEventName, onEndInitialAnimation );
}

startLoading();
};

// disable scrolling
window.addEventListener( 'scroll', noscroll );

// initial animation
classie.add( container, 'loading' );

if( support.animations ) {
container.addEventListener( animEndEventName, onEndInitialAnimation );
}
else {
onEndInitialAnimation();
}
}

// no scroll
function noscroll() {
window.scrollTo( 0, 0 );
}


Again, we will simulate that something is being loaded by passing a custom function to the setProgressFn. Once the animation is finished we replace the loading class with the loaded class which will initiate the main animations for the header and the content. After that’s done, we add the layout-switch class to the body and allow scrolling:

function startLoading() {
// simulate loading something..
var simulationFn = function(instance) {
var progress = 0,
interval = setInterval( function() {
progress = Math.min( progress + Math.random() * 0.1, 1 );

instance.setProgress( progress );

// reached the end
if( progress === 1 ) {
classie.remove( container, 'loading' );
classie.add( container, 'loaded' );
clearInterval( interval );

var onEndHeaderAnimation = function(ev) {
if( support.animations ) {
if( ev.target !== header ) return;
this.removeEventListener( animEndEventName, onEndHeaderAnimation );
}

classie.add( document.body, 'layout-switch' );
window.removeEventListener( 'scroll', noscroll );
};

if( support.animations ) {
header.addEventListener( animEndEventName, onEndHeaderAnimation );
}
else {
onEndHeaderAnimation();
}
}
}, 80 );
};

loader.setProgressFn( simulationFn );
}


And that’s it, all done!

We hope you enjoyed this tutorial and find it useful and inspiring!

Resource credits: Browser by Keyners, logo made from GraphicBurger template: 5 Vintage Labels / Insignias Vol.1

View demo Download source

dimanche 17 janvier 2016

SEO for DLE 9.6 - 10.x - English

SEO for DLE


Improve SEO performance header title
1.Improve SEO performance header title

Open /engine/engine.php, find code :

$metatags['title'] = $nam_e . $page_extra . ' &raquo; ' . $metatags['title']; 

Change to:

$metatags['title'] = $nam_e . $page_extra; 

Next, look for :

$metatags['title'] = $titl_e . $page_extra . ' &raquo; ' . $config['home_title']; 

Change to :

$metatags['title'] = $titl_e . $page_extra;   

Next, look for code :

if ( $metatags['header_title'] ) $metatags['title'] = stripslashes($metatags['header_title'].$page_extra); 

Change to:


if ($do == "cat" and $category != '' and $subaction == '') //if the category
{
if ( $metatags['header_title'] and ! $page_extra ) $metatags['title'] = stripslashes($metatags['header_title']);
else $metatags['title'] = stripslashes($cat_info[$category_id]['name']) . $page_extra;
}
elseif ($dle_module == "main") //if the main page
{
if ( ! $page_extra ) $metatags['title'] = stripslashes($config['home_title']);
else $metatags['title'] = stripslashes($config['short_title']) . $page_extra;
}
elseif ($metatags['header_title']) $metatags['title'] = stripslashes($metatags['header_title']);

2.Explanation :
At this point, we will get rid of the prefix name of the site in meta title.
Eliminates the problem of duplicating the full news on different addresses

1.Eliminates the problem of duplicating the full news on different addresses

Open .htaccess, find code :

# Sam post
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6&seourl=$6 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html$ engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4&seourl=$4 [L]

RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 [L]
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 [L]
RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html$ engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 [L]
RewriteRule ^([^.]+)/([0-9]+)-(.*).html$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 [L]
RewriteRule ^page,([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$2&news_page=$1&seourl=$3 [L]
RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*).html$ engine/print.php?news_page=$1&newsid=$2&seourl=$3 [L]
RewriteRule ^([0-9]+)-(.*).html$ index.php?newsid=$1&seourl=$2 [L]

And replaced:

# Sam Post
RewriteBase /
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).(.*)$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).(.*)$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).(.*)$ engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).(.*)$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4 [L]

RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*)$ index.php?newsid=$4&news_page=$2&cstart=$3 [L]
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*)$ index.php?newsid=$3&news_page=$2 [L]
RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*)$ engine/print.php?news_page=$2&newsid=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/([0-9]+)-(.*)$ index.php?newsid=$2 [L]

RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.*)$ index.php?newsid=$3&news_page=$1&cstart=$2 [L]
RewriteRule ^page,([0-9]+),([0-9]+)-(.*)$ index.php?newsid=$2&news_page=$1 [L]
RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*)$ engine/print.php?news_page=$1&newsid=$2 [L]
RewriteRule ^([0-9]+)-(.*)$ index.php?newsid=$1 [L]

Open /engine/modules/show.full.php, find the code :

if ($config['seo_control'] AND ( isset($_GET['seourl']) OR strpos ( $_SERVER['REQUEST_URI'], "?" ) !== false ) ) {

if ($_GET['seourl'] != $row['alt_name'] OR $_GET['seocat'] != $c_url OR strpos ( $_SERVER['REQUEST_URI'], "?" ) !== false) {

if ($view_template == "print") {

$re_url = explode ( "engine/print.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );

} else {

$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );

}

header("HTTP/1.0 301 Moved Permanently");
header("Location: {$re_url}{$c_url}/{$row['id']}-{$row['alt_name']}.html");
die("Redirect");

}

}

Next, we look for the code and delete :

if ($config['seo_control'] AND ( isset($_GET['seourl']) OR strpos ( $_SERVER['REQUEST_URI'], "?" ) !== false ) ) {

if ($_GET['seourl'] != $row['alt_name'] OR $_GET['seocat'] OR $_GET['news_name'] OR strpos ( $_SERVER['REQUEST_URI'], "?" ) !== false ) {

if ($view_template == "print") {

$re_url = explode ( "engine/print.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );

} else {

$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );

}

header("HTTP/1.0 301 Moved Permanently");
header("Location: {$re_url}{$row['id']}-{$row['alt_name']}.html");
die("Redirect");

}

}

Next, we look for the code and delete :

if ( $config['seo_control'] ) {

if ($_GET['newsid'] OR strpos ( $_SERVER['REQUEST_URI'], "?" ) !== false) {

if ($view_template == "print") {

$re_url = explode ( "engine/print.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );

} else {

$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );

}

header("HTTP/1.0 301 Moved Permanently");
header("Location: {$re_url}".date( 'Y/m/d/', $row['date'] ).$row['alt_name'].".html");
die("Redirect");

}

}

We find the code below :

} else {

$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];
$print_link = $config['http_home_url'] . "engine/print.php?newsid=" . $row['id'];
$short_link = "";
$link_page = "";
$news_name = "";

And above insert :

$true_link = $config['http_home_url'] . substr ($_SERVER['REQUEST_URI'], 1);
if (intval($_REQUEST['cstart']) >= 2) $full_link = $link_page . intval($_REQUEST['cstart']) . "," . $news_name . ".html";
elseif ($news_page >= 2) $full_link = $link_page . $news_name . ".html";
if ($true_link != $full_link) {
header('HTTP/1.1 301 Moved Permanently');
header ('Location: ' . $full_link);
die();
}

2.Explanation :
At this point, we get rid of the availability of news at page, 1, and not by any other valid address to the full news.
1.Error 404 with a non-existent page pagination
1.Error 404 with a non-existent page pagination

Open /engine/modules/show.short.php, find code :

}
?>

Above insert:

$all_pages_count = @ceil( $count_all / $config['news_number'] );
if ($cstart > $all_pages_count) {
@header("HTTP/1.0 404 Not Found");
@header("Status: 404 Not Found");
@require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');
exit();
}

2.Explanation :
At this point, we will get rid of non-existent pages pagination, gives 404.
Error 404 with a non-existent page pagination comments
1.Error 404 with a non-existent page pagination comments

Open /engine/modules/show.full.php,find code :

if( $comments_num > 0 ) {   

Above insert:

$all_comm_page = @ceil( $comments_nums / intval($config['comm_nummers']) );
if ( $_REQUEST['cstart'] > $all_comm_page ) {
@header("HTTP/1.0 404 Not Found");
@header("Status: 404 Not Found");
@require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');
exit();
}

2.Explanation :
At this point, we will get rid of non-existent pages pagination comments given to 404.
Error 404 sections and categories that no longer exist
1.Error 404 sections and categories that no longer exist

Open /engine/engine.php, find code :

if (!$category_id) $category_id = 'not detected'; 

Change to:

if (!$category_id AND $view_template != "rss") {
@header("HTTP/1.0 404 Not Found");
@header("Status: 404 Not Found");
@require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');
exit();
}

2.Explanation :
At this point, we get rid of the categories which are already present, was not or was removed.
Error 404 for publications that do not have ID
1.Error 404 for publications that do not have ID

Open /engine/modules/static.php, find code :

        @header( "HTTP/1.0 404 Not Found" );
$lang['static_page_err'] = str_replace ("{page}", $name.".html", $lang['static_page_err']);
msgbox( $lang['all_err_1'], $lang['static_page_err'] );
Change to:
        @header("HTTP/1.0 404 Not Found");
@header("Status: 404 Not Found");
@require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');
exit();

2.Explanation :
At this point, we will make out 404 pages which do not have the ID and they are not static. It is more correct and logical than to do a 301 redirect to the main
Error 404 remote or non-existent news
1.Error 404 remote or non-existent news

Open /engine/modules/show.full.php, find code :

elseif( !$news_found ) {
@header( "HTTP/1.0 404 Not Found" );
msgbox( $lang['all_err_1'], $lang['news_err_12'] );
}

Change to:

 elseif( ! $news_found ) {
@header("HTTP/1.0 404 Not Found");
@header("Status: 404 Not Found");
@require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');
exit();
}

2.Explanation :
At this point, we will make a return for news that 404 is not present, or were deleted.
Add the tag rel=”canonical” to view the full pages of news
1.Add the tag rel=”canonical” to view the full pages of news

Open /engine/modules/show.full.php, find code :

} else {

$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];
$print_link = $config['http_home_url'] . "engine/print.php?newsid=" . $row['id'];
$short_link = "";
$link_page = "";
$news_name = "";

}

Below insert:

$full_canonical = $full_link;   
Open /engine/engine.php and find:

if ($config['allow_rss']) $metatags .=  

Above insert:

if ($full_canonical) {
$metatags .= "<link rel="canonical" href=". $full_canonical . " />";
}

2.Explanation :
At this point, we do note the canonical page attribute rel="canonical" order that would specify the main page, and beat off all its possible duplicates.
Hiding from the index page, such as the /page,1,2,1-post1.html
1.Hiding from the index page, such as the /page,1,2,1-post1.html

Open /engine/modules/show.full.php, find code :

$comments->build_navigation('navigation.tpl', $link_page . "{page}," . $news_name . ".html#comment", $user_query, $full_link);  

Below insert :

if(intval( $_GET['news_page'] ) > 0) {
$metatags['no_index'] = PHP_EOL . "<meta name="robots" content="noindex,nofollow" />";
}

Open /engine/engine.php, find code :

<meta name="keywords" content="{$metatags['keywords']}" />{$disable_index} 
Above insert :

{$metatags['no_index']}  

2.Explanation :

At this point, we get rid of the index pages of comments asking them meta robots - noindexs
Add meta tags rel="next" and rel="prev"
1.Add meta tags rel="next" and rel="prev"

Open /engine/engine.php, find code :

if ($canonical) {
if there is no such line, then you have an older version of this look for this line :
if ($config['allow_rss']) $metatags .= << 

Above insert :

if($dle_module == "main" || $dle_module == "cat")
{
$cat_cat = !empty($category) ? strip_tags(stripslashes($category)) . '/' : '';

$all_pages_count = @ceil( $count_all / $config['news_number'] );
if($cstart < 2 && 1 != $all_pages_count)
{
$next_rel = PHP_EOL . '<link rel="next" href="'. $config['http_home_url'] . $cat_cat . 'page/2' . '">';
$prev_rel = '';
}
else if(1 != $all_pages_count)
{
if($cstart >= $all_pages_count)
$next_rel = '';
else
$next_rel = PHP_EOL . '<link rel="next" href="'. $config['http_home_url'] . $cat_cat . 'page/'. ($cstart + 1) .'">';

if($cstart == 2)
$prev_rel = PHP_EOL . '<link rel="prev" href="'. $config['http_home_url'] . $cat_cat . '">';
else
$prev_rel = PHP_EOL . '<link rel="prev" href="'. $config['http_home_url'] . $cat_cat . 'page/'. ($cstart - 1) .'">';
}
}
$metatags .= $prev_rel . $next_rel;

2.Explanation :
- What is the next and prev meta tags?
1) These attributes rel = "next" and rel = "prev", will help to indicate the relationship between several URL.
2) Due to this layout, Google may determine that the contents of these pages associated in a logical sequence, and to transmit the user to the home page.
And :
Create a consolidated index pages to links are not scattered between individual pages page-1.html, page-2.html, and so on
Searching direct the user to the most relevant page of all the others, such as the beginning of the article, divided into several pages

Add these attributes to the main pagination pagination for categories.
Remove index.php and index.html from your homepage
1.Remove index.php and index.html from your homepage

Open .htaccess, find :

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+).html$ index.php?do=static&page=$1&seourl=$1 [L]

Above the insert :

# Redirect with index.php site
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.(php|html) HTTP/
RewriteRule .* / [R=301,L]

2.Explanation :

At this point, we remove duplicates on the main page index.php/html
Gluing mirrors
1.Gluing mirrors
Open .htaccess, find code :

RewriteEngine On
And then insert your choice
1) The site will be opened only for site.com

# Determine the primary mirror as the site.com (site.com replace with your domain) 
RewriteCond %{HTTP_HOST} ^www.site.com$ [NC]
RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]

2) The site will be opened only for www.site.com

#Determine the primary mirror as www.site.com (www.site.com replace with your domain)
RewriteCond %{HTTP_HOST} ^site.com$ [NC]
RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]

2.Explanation :
At this point, we get rid of the mirrors of the domain and set the primary mirror of our domain.
ErrorDocument 404
1.ErrorDocument 404
Open .htaccess, find code :

RewriteEngine On  

Below insert

ErrorDocument 404 /404.html  

2.Explanation :
At this point we will ask 404 page via htaccess
Error 404 instead "By publishing this address on the website could not be found"
1.Error 404 instead "By publishing this address on the website could not be found"

Open /engine/modules/main.php, find code :

if( $_SERVER['QUERY_STRING'] AND !$tpl->result['content'] AND !$tpl->result['info'] AND !$custom_news) {

@header( "HTTP/1.0 404 Not Found" );
msgbox( $lang['all_err_1'], $lang['news_err_27'] );

}

Change to :

if( $_SERVER['QUERY_STRING'] AND !$tpl->result['content'] AND !$tpl->result['info'] AND !$custom_news)
{
@header("HTTP/1.0 404 Not Found");
@header("Status: 404 Not Found");
@require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');
exit();
}

2.Explanation :
At this point, then we will ask 404 when there is no content or errors.
Regular bread crumbs
1.Regular bread crumbs

Open /engine/engine.php, find code :

if ($config['speedbar'] AND !$view_template ) {

$s_navigation = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="{$config['http_home_url']}" itemprop="url"><span itemprop="title">" . $config['short_title'] . "</span></a></span>";

if( $config['start_site'] == 3 AND $_SERVER['QUERY_STRING'] == "" AND !$_POST['do']) $titl_e = "";

if (intval($category_id)) $s_navigation .= " {$config['speedbar_separator']} " . get_breadcrumbcategories ( intval($category_id), $config['speedbar_separator'] );
elseif ($do == 'tags') {

if ($config['allow_alt_url']) $s_navigation .= " {$config['speedbar_separator']} <span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="" . $config['http_home_url'] . "tags/" itemprop="url"><span itemprop="title">" . $lang['tag_cloud'] . "</span></a></span> {$config['speedbar_separator']} " . $tag;
else $s_navigation .= " {$config['speedbar_separator']} <span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="?do=tags" itemprop="url"><span itemprop="title">" . $lang['tag_cloud'] . "</span></a></span> {$config['speedbar_separator']} " . $tag;

} elseif ($nam_e) $s_navigation .= " {$config['speedbar_separator']} " . $nam_e;

if ($titl_e) $s_navigation .= " {$config['speedbar_separator']} " . $titl_e;
else {

if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ){

$page_extra = " {$config['speedbar_separator']} ".$lang['news_site']." ".intval($_GET['cstart']);

} else $page_extra = '';

$s_navigation .= $page_extra;

}

$tpl->load_template ( 'speedbar.tpl' );
$tpl->set ( '{speedbar}', '' . stripslashes ( $s_navigation ) . '' );
$tpl->compile ( 'speedbar' );
$tpl->clear ();

}

Change to :

if ($config['speedbar'] AND !$view_template ) {

if($dle_module == "main")
$s_navigation = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><span itemprop="title">" . $config['short_title'] . "</span></span>";
else
$s_navigation = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="{$config['http_home_url']}" itemprop="url"><span itemprop="title">" . $config['short_title'] . "</span></a></span>";
if( $config['start_site'] == 3 AND $_SERVER['QUERY_STRING'] == "" AND !$_POST['do']) $titl_e = "";

if($dle_module == "cat")
$s_navigation .= " {$config['speedbar_separator']} " . get_breadcrumbcategories ( (array)$category_id, $config['speedbar_separator'] );
else if($dle_module == "showfull")
$s_navigation .= " {$config['speedbar_separator']} " . get_breadcrumbcategories ( $id_cat, $config['speedbar_separator'] );

if ($nam_e && $dle_module != "cat") $s_navigation .= " {$config['speedbar_separator']} " . $nam_e;
elseif ($do == 'tags') {

if ($config['allow_alt_url']) $s_navigation .= " {$config['speedbar_separator']} <span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="" . $config['http_home_url'] . "tags/" itemprop="url"><span itemprop="title">" . $lang['tag_cloud'] . "</span></a></span> {$config['speedbar_separator']} " . $tag;
else $s_navigation .= " {$config['speedbar_separator']} <span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="?do=tags" itemprop="url"><span itemprop="title">" . $lang['tag_cloud'] . "</span></a></span> {$config['speedbar_separator']} " . $tag;

}

if ($titl_e) $s_navigation .= " {$config['speedbar_separator']} " . $titl_e;
else {

if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ){

$page_extra = " {$config['speedbar_separator']} ".$lang['news_site']." ".intval($_GET['cstart']);

} else $page_extra = '';

$s_navigation .= $page_extra;

}

$tpl->load_template ( 'speedbar.tpl' );
$tpl->set ( '{speedbar}', '<span id="dle-speedbar">' . stripslashes ( $s_navigation ) . '</span>' );
$tpl->compile ( 'speedbar' );
$tpl->clear ();

}

Next, open /engine/modules/functions.php find :

function get_breadcrumbcategories($id, $separator="&raquo;") {

global $cat_info, $config, $PHP_SELF;

if( ! $id ) return;

$parent_id = $cat_info[$id]['parentid'];

if( $config['allow_alt_url'] ) $list = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="" . $config['http_home_url'] . get_url( $id ) . "/" itemprop="url"><span itemprop="title">{$cat_info[$id]['name']}</span></a></span>";
else $list = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="$PHP_SELF?do=cat&category={$cat_info[$id]['alt_name']}" itemprop="url"><span itemprop="title">{$cat_info[$id]['name']}</span></a></span>";

while ( $parent_id ) {

if( $config['allow_alt_url'] ) $list = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="" . $config['http_home_url'] . get_url( $parent_id ) . "/" itemprop="url"><span itemprop="title">{$cat_info[$parent_id]['name']}</span></a></span>" . " {$separator} " . $list;
else $list = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="$PHP_SELF?do=cat&category={$cat_info[$parent_id]['alt_name']}" itemprop="url"><span itemprop="title">{$cat_info[$parent_id]['name']}</span></a></span>" . " {$separator} " . $list;

$parent_id = $cat_info[$parent_id]['parentid'];

if($parent_id) {
if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
}
}

return $list;
}

Change to :

function get_breadcrumbcategories($id, $separator="&raquo;") {

global $cat_info, $config, $PHP_SELF, $dle_module;

if( ! $id ) return;

$id = end($id);

$parent_id = $cat_info[$id]['parentid'];

if($dle_module != "cat")
$list = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="" . $config['http_home_url'] . get_url( $id ) . "" itemprop="url"><span itemprop="title">{$cat_info[$id]['name']}</span></a></span>";
else
$list = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><span itemprop="title">{$cat_info[$id]['name']}</span></span>";

while ( $parent_id ) {

if($dle_module != "cat")
$list = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="" . $config['http_home_url'] . get_url( $parent_id ) . "" itemprop="url"><span itemprop="title">{$cat_info[$parent_id]['name']}</span></a></span>" . " {$separator} " . $list;
else
if($id != $cat_info[$parent_id]['id'])
$list = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="" . $config['http_home_url'] . get_url( $parent_id ) . "" itemprop="url"><span itemprop="title">{$cat_info[$parent_id]['name']}</span></a></span>" . " {$separator} " . $list;
else
$list = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><span itemprop="title">{$cat_info[$parent_id]['name']}</span></span>" . " {$separator} " . $list;

$parent_id = $cat_info[$parent_id]['parentid'];

if($parent_id) {
if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
}
}

return $list;
}

Next, open /engine/modules/show.full.php find :

$cat_list = explode( ',', $row['category'] );

Below insert :

$id_cat = array();
$link_cats = array();
foreach($cat_list as $val)
{
if($cat_info[$val]['parentid'] && $cat_info[$val]['parentid'] != $val)
$link_cats[] = "<a href="" . $config['http_home_url'] . $cat_info[$val]['alt_name'] . "">{$cat_info[$val]['name']}</a>";

$id_cat[] = $val;
}
2.Explanation :
At this point, we will do so on the page that we are not relied on itself in the bread crumbs. So it was opened since princely times
News only parent category
News only parent category
Attention! Thank you look here and read this. This correction only for the NC-2. It does not work for others
Open /engine/modules/show.short.php and show.custom.php, find code :

$full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html"; <
/code>

Change to :

if($cat_info[$row['category']]['parentid'])
$full_link = $config['http_home_url'] . $cat_info[$cat_info[$row['category']]['parentid']]['alt_name'] . "/" . $row['id'] . "-" . $row['alt_name'];
else
$full_link = $config['http_home_url'] . $cat_info[$row['category']]['alt_name'] . "/" . $row['id'] . "-" . $row['alt_name'];

Next, look for :

$cat_list = explode( ',', $row['category'] );

Below insert :

$link_cats = array();
foreach($cat_list as $val)
if($cat_info[$val]['parentid'] && $cat_info[$val]['parentid'] != $val)
$link_cats[] = "<a href=\"" . $config['http_home_url'] . $cat_info[$val]['alt_name'] . "\">{$cat_info[$val]['name']}</a>";

Next, look for :

''{link-category}' => $my_cat_link,

Change to :

'{link-category}' => $my_cat_link, '{links-category}' => $link_cats,
Open /engine/modules/show.full.php find :

$rel_full_link = $config['http_home_url'] . get_url( $related['category'] ) . "/" . $related['id'] . "-" . $related['alt_name'] . ".html";

Change to :

if($cat_info[$related['category']]['parentid'])
$cat_url = $cat_info[$cat_info[$related['category']]['parentid']]['alt_name'];
else
$cat_url = $cat_info[$related['category']]['alt_name'];
$rel_full_link = $config['http_home_url'] . $cat_url . "/" . $related['id'] . "-" . $related['alt_name'];

Next, look for :

$c_url = get_url( $category_id );

Change to :

if($cat_info[$category_id]['parentid'])
$c_url = $cat_info[$cat_info[$category_id]['parentid']]['alt_name'];
else
$c_url = $cat_info[$category_id]['alt_name'];
Then we find (If you do not make a point 15 to do something, otherwise skip this step)

$cat_list = explode( ',', $row['category'] );

Below insert :

$id_cat = array();
$link_cats = array();
foreach($cat_list as $val)
{
if($cat_info[$val]['parentid'] && $cat_info[$val]['parentid'] != $val)
$link_cats[] = "<a href=\"" . $config['http_home_url'] . $cat_info[$val]['alt_name'] . "\">{$cat_info[$val]['name']}</a>";

$id_cat[] = $val;
}
}

Next, we look for (this is done in any case) :

'{link-category}' => $my_cat_link,

Change to :

'{link-category}' => $my_cat_link, '{links-category}' => $link_cats,

Open /engine/classes/google.class.php find :

global $db, $config; 

Change to :

global $db, $config, $cat_info; 
Next, look for :

$loc = $this->home . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";

Change to :

if($cat_info[$row['category']]['parentid'])
$loc = $this->home . $cat_info[$cat_info[$row['category']]['parentid']]['alt_name'] . "/" . $row['id'] . "-" . $row['alt_name'];
else
$loc = $this->home . $cat_info[$row['category']]['alt_name'] . "/" . $row['id'] . "-" . $row['alt_name'];

2.Explanation :
At this point, we will make access to the news only roditelskoy category. For example, we have a Home Films category, it has a sub-Action In this case, the news is that in the category of Action, may be available as /Films/militants/news.html and /militants/news.html and now we have done that would have been only /Films/news.html
Why and why and for what :
1) So we remove the unnecessary duplication of news.
And so, if you're somewhere in the output category news via tag {link-category} now we change it to {links-category}
Redirect from the first page to the main
1.Redirect from the first page to the main

Open .htaccess, find code :

RewriteEngine On   

Below insert :

# Redirect from the first page to the main
RewriteBase /
RewriteRule ^(.*)page/1(/|)$ $1 [R=301,L]

2.Explanation :
At this point, we do the redirect with pagination 1 to the main page
With a slash on without slash
1.With a slash on without slash

Open .htaccess, find code :

# Redirects  

Above the insert :

RewriteRule ^(.+)/$ $1 [R=301,L]

Next, look for :

RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]  

Change to :

RewriteRule ^tags$ index.php?do=tags [L]
RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]

Open /engine/engine.php find :

header("Location: {$re_url}{$re_cat}/"); 

Change to :

header("Location: {$re_url}{$re_cat}"); 

Next, we look for :

if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' ) {  

Change to :

if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) == '/' ) {  

Open /engine/modules/functions.php find (4 times):

"/\"

Change to :

"\"

Open /engine/modules/show.short.php and show.custom.php find (3 times):

. "/";

Change to :

;

Next, we find :

. "/" );

Change to :

);
Then we find (anything you'll find)
"/\"

Change to :

"\"

Open /engine/modules/profile.php find :

$link_profile = $config['http_home_url'] . "user/" . urlencode( $row['name'] ) . "/"; 

Change to :

$link_profile = $config['http_home_url'] . "user/" . urlencode( $row['name'] );  
Open /engine/modules/show.full.php find (2 times):

. "/";

Change to :

;

Next, we find :

. "/" );

Change to :

);

Next, we find (All that you will find)

"/\"

Change to :

"\"

Open /engine/modules/tagscloud.php find (All that you will find):

"/\"

Change to :

"\"

Open /engine/classes/google.class.php find :

if( $this->allow_url ) $loc = $this->home . $this->get_url( $cats[id], $cat_info ) . "/"; 

Change to :

if( $this->allow_url ) $loc = $this->home . $this->get_url( $cats[id], $cat_info );   

2.Explanation :
At this point, we remove all references to slash on without him. For pages with a slash, and without it - different pages.
NoIndex
Copy all the files from the archive in the Upload to your server. Open main.tpl and after the tag

{headers}

Insert

{include file="/engine/modules/noindex.php?noindex=cstart,userinfo&index=cat,showfull,main"}

Available Values :
main - Home
date - page news for specific dates
cat - category page
showfull - page full news
search - Search Results Page
userinfo - Profile Page
register - Registration page
stats - Statistics page
pm - page personal messages
feedback - feedback page
favorites - page bookmarks
newposts - new page news
addnews - page for add news
lastnews - page latest news on site
lastcomments - page recent comments
lostpassword - Page recovery password account
static - page static
catalog - Catalog Page
alltags - page tag cloud
tags - news page of the tag cloud
allnews - Page with all the news on the site, or all the news of any user
cstart - Pages pagination


noindex - here to add value to the closing of the indexing, separated by commas.
index - here to add value to index a comma.

Download Modules
Author: Gameer. http://gameer.name/

mardi 12 janvier 2016

Templates CinemaLibrary For DLE 10.6 English

Templates CinemaLibrary For DLE 10.6 English

Simple and easy to use template for DLE English CinemaLibrary entitled movies online, template contains just the right visitor, nothing is not overloaded, nice color pattern, the ability to change the background to any movie. The fact is that if the user initially look for any movie or simply for entertainment information. The template can be easily put on sites with themes cinema portal, gaming, in order to design a template allows you to do this. An excellent example could serve as a template for CinemaLibrary DLE 10.6 themes of the movie.

Template Type: Original (Adaptive)
Version DLE: 10.6
Tested: Opera, Mozilla, IE, chrome
Options: Only the template
Size: ~ 1 Mb

lundi 4 janvier 2016

Module iChat 7.0 English Compatible DLE Versions 10.6 10.5 10.4

Module iChat 7.0  English
iChat 7.0  English Compatible DLE Versions 10.6 10.5 10.4

Module iChat 7.0 for DLE English. This module on your server to use must have the support of SQLite3.

* The load on your site with the cache feature will minimize.
* In the message Capability Visitors
* With the new PHP version compatibility (PHP 5.3, 5.4, 5.5)
* Gravatar support SQLite3 and PHP 5.4 support has been added. Use the code below and place you want to show


{include file="engine/modules/iChat/show.php"}


Button code "Chat in new window

<input class="bbcodes" style="font-size: 11px; float: left;" title="Chat in new windowonclick="window.open('/engine/modules/iChat/window.php', '_iChat', 'toolbar=0,location=0,status=0, left=0, top=0, menubar=0,scrollbars=yes,resizable=0,width=620,height=605');" type="button" value="Chat in new window" />


Module Version7.0 (30.05.2015)