Tuesday

Upgrade Templates from DLE 10.6 to 11.0

1 comment:
Changes to the templates is performed in order of priority from version to version, depending on the version from which you updated. For example did you perform the upgrade script DLE from version 10.4 to version 11.0, then in this case you need to turn to make changes, first the ones that were between 10.4 and 10.5, then the changes between versions 10.5 and 10.6, then the changes between 10.6 and 11.0, etc.

1. Open the file style/engine.css and at the bottom add:


/*---Emoji---*/

.emoji {
    border: none;
    vertical-align: middle;
    width: 22px;
    height: 22px;
}

/* --- Sorting articles --- */
.sort { list-style: none; padding: 0; margin: 0; }
  .sort > li, .sort { display: inline; }
  .sort > li { margin: 0 0 0 3%; }
  .sort > li a { color: #353535; }
  .sort > li.asc a, .sort > li.desc a { color: #3394e6; }
  .sort > li.asc a:after, .sort > li.desc a:after {
    content: "";
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAsBAMAAACj90TiAAAAG1BMVEUAAAAzlOYzlOYzlOYzlOYzlOYzlOYzlOYzlOar6gzlAAAACHRSTlMAjesv90eHRuQt1XUAAABSSURBVBjTzdCxDQAhDENRSyzAEFdQ0zDB9axEgzw2DokEI1A9/S4OyAxADEcpPGlpFKWoSpEKp0Dlb6SvG2jY4Fka4tw4PqbEsDNTcb8gn/d4LPQHQDdjhblbAAAAAElFTkSuQmCC);
    display: inline-block;
    vertical-align: middle;
    margin: -1px 0 0 .4em;
    width: 6px; height: 11px;
    -webkit-background-size: 6px auto; background-size: 6px auto;
}
.sort > li.asc a:after { background-position: 0 -11px; }

/*---Additional fields---*/
.xfieldsrow {
  padding-top:5px;
  clear: both;
}
.xfieldscolleft {
  float: left;
  width: 30%;
}
.xfieldscolright {
  float: left;
  width: 70%;
}
.file-box {
  width: 95%;
  max-width: 437px;
  border:1px solid #B3B3B3;
  -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px;
  background-color: #F5F5F5;
  padding: 10px;
  margin-top: 10px;
}

.qq-uploader { position:relative; width: 100%;}

.qq-upload-button {
  display:inline-block;
  padding:4px 10px 4px 10px;
  margin-top:5px;
  font: bold 11px/1.5em Verdana;color:#000000;
  border:1px solid #CACACA;
  cursor:pointer;
}
.qq-upload-drop-area {
  position:absolute; top:0; left:0; width:100%; height:100%; z-index:2;
  max-width: 437px;
  background:#FF9797; text-align:center; 
}
.qq-upload-drop-area span {
    display:block; position:absolute; top: 50%; width:100%; margin-top:-8px; font-size:16px;
}

.qq-upload-drop-area-active {background:#FF7171;}
.uploadedfile {
    width: 115px;
    height: 130px;
    margin: 10px 5px 5px 5px;
    border:1px solid #B3B3B3;
    box-shadow: 0px 1px 4px rgba(0,0,0,0.3);
    -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
    -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
    text-align: center;
    background:#ffffff;

}

.uploadedfile .uploadimage {
    margin-top: 5px;
    width: 115px;
    height: 90px;
    display: table-cell;
    text-align: center;
    vertical-align:middle;
}

.uploadedfile .info {
    text-align: left;
    white-space: nowrap;
    margin: 0px 5px 0px 5px;
    overflow: hidden;
}

.progress {
    overflow:hidden;
    margin-top:10px;
  margin-bottom:10px;
    background-color:whitesmoke;
    height:10px;
    -webkit-border-radius:8px;
    -moz-border-radius:8px;
    -ms-border-radius:8px;
    -o-border-radius:8px;
    border-radius:8px;
    background:#eee;
    -webkit-box-shadow:0 1px 0 white, 0 0px 0 1px rgba(0, 0, 0, 0.1) inset, 0 1px 4px rgba(0, 0, 0, 0.2) inset;
    box-shadow:0 1px 0 white, 0 0px 0 1px rgba(0, 0, 0, 0.1) inset, 0 1px 4px rgba(0, 0, 0, 0.2) inset;
}
 .progress .progress-bar {
    float:left;
    width:0%;
    font-size:12px;
    line-height:20px;
    color:white;
    text-align:center;
    background-color:#428bca;
    -webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);
    box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);
    -webkit-transition:width 0.6s ease;
    transition:width 0.6s ease;
    -webkit-border-radius:8px;
    -moz-border-radius:8px;
    -ms-border-radius:8px;
    -o-border-radius:8px;
    border-radius:8px;
    -webkit-box-shadow:none;
    box-shadow:none;
    height:8px;
}
.progress-bar span{
    position:absolute;
    width:1px;
    height:1px;
    margin:-1px;
    padding:0;
    overflow:hidden;
    clip:rect(0 0 0 0);
    border:0;
}
.progress-blue {
    background-image:-webkit-gradient(linear, left 0%, left 100%, from(#9bcff5), to(#6db9f0));
    background-image:-webkit-linear-gradient(top, #9bcff5, 0%, #6db9f0, 100%);
    background-image:-moz-linear-gradient(top, #9bcff5 0%, #6db9f0 100%);
    background-image:linear-gradient(to bottom, #9bcff5 0%, #6db9f0 100%);
    background-repeat:repeat-x;
    border:1px solid #55aeee;
}


Note: The list of changes is given with respect to the standard Default Template. You need to make changes to your template is already based on the needs and the layout of your template directly. Not all change is needed to your site, and optionally that the design is right for your site.

Source: dle-news.ru
Read More

Friday

[CSS3] Modern Tab Menu

6 comments:
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.
Read More

[HTML] 15 best service conversion PSD to HTML

3 comments:
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


Read More

[CSS] The effect of pre-loading pages

No comments:

Lesson to create the effect of pre-loading web pages from Fontface Ninja. We will use CSS animations, 3D transformations and SVG.

Today we want to show you how to create a simple effect of pre-loading page with CSS animation, SVG and JavaScript. For sites that is crucial to retrieve all resources, our working hours can be a great way to while away the waiting visitor. The creation of this tutorial was inspired by the beautiful effect of pre-loading, which we saw on the website Fontface Ninja. Initially, logos and load indicator site slide upwards and when the boot animation ends, that is, all the resources are loaded, the entire 'header' moves upwards, while the elements of the page displayed using a different effect. Moving the logo that changes color, becomes icing on our cake.

Of course we have made and their conversion to this effect, including the establishment of the second demo, which has slightly different effects. For logo and indicator preloading site, we will use the built-in SVG, with a view to transforming the path through the CSS. Create a small script to download the animation element SVG, animation control page will be classes that are added to the main container.

Please note that we will use CSS animation and CSS 3D transformations, so they will work properly only in browsers that support them.

So, let's start!

HTML

Let's put the header and the main content block into a separate container. Recall that we want to control everything that happens to the original view and content using classes. To do this we will need the main container. We define it to a class and id equal to IP-container .

First, display the header consisting of logos and preloading element: they are both elements of SVG, but we will share the code. As you can see, we are putting the attribute values ​​of the width and height, viewBox and preserveAspectRatio . Value presevreAspectRatio will xMidYMin meet . This means that we can apply scaling, in which the graph is perfectly placed in its container, at the time, as its focus is on the X-axis to make the logo available for people with disabilities, add a title, description, and all necessary attributes ARIA, aria-labeledby .

Main container define class IP-main , and then apply the animation to its children, titles, chapters and the inner box:
<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

We would like to note that the CSS will not include browser-prefixes, but you can find a complete listing of the source code. Initially, we connect more than one font, which will be needed for the replacement text and icons in the box. Icons used in the demo are taken from Feather icon set and we have created a font using ikonochny Icomoon App . Font replacement text - Blokk , very useful for creating layouts.

Initially, we define the header 100% width and height, as well as expose the position Fixed :
.ip-header {
    position: fixed;
    top: 0;
    z-index: 100;
    min-height: 480px;
    width: 100%;
    height: 100%;
    background: #f1f1f1;
}
Resets the external padding header h1:
.ip-header h1 {
    margin: 0;
}
Logo and the element will be positioned completely downloading:
.ip-logo,
.ip-loader {
    position: absolute;
    left: 0;
    width: 100%;
    opacity: 0;
    cursor: default;
    pointer-events: none;
}
Also we should not forget that the logo should be adaptive. We place it in the center of the screen:
.ip-logo {
    top: 0;
    height: 100%;
    transform: translate3d(0,25%,0);
}
Downloader below:
.ip-loader {
    bottom: 20%;
}
SVG, which we have assigned class IP-inner , will be displayed as a block element, centering it horizontally using the auto value for the external side padding:
.ip-header .ip-inner {
    display: block;
    margin: 0 auto;
}
SVG logo should be active, but its size should not be too large or small. Set the maximum and minimum width of:
.ip-header .ip-logo svg {
    min-width: 320px;
    max-width: 480px;
    width: 25%;
}
Since our logo is SVG, can adjust the color of the element path:
.ip-header .ip-logo svg path {
    fill: #ef6e7e;
}
The same applies to the boot:
.ip-header .ip-loader svg path {
    fill: none;
    stroke-width: 6;
}
Background is gray:
.ip-header .ip-loader svg path.ip-loader-circlebg {
    stroke: #ddd;
}
Percentage of load will be controlled through JS. Define the variable -Stroke dashoffset :
.ip-header .ip-loader svg path.ip-loader-circle {
    transition: stroke-dashoffset 0.2s;
    stroke: #ef6e7e;
}

And now we Styling content that is in a container with a class ip-main:
.ip-main {
    overflow: hidden;
    margin: 0 auto;
    padding: 160px 0 10em 0;
    max-width: 1100px;
    width: 90%;
}
Size of the header will be placed in units vw, which will make it adaptive:
.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;
}
Add image browser:
.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 a few boxes to fill the space:
.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;
}
Each box define the 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 need to determine the type of animation. As mentioned earlier, the management of the animation will be done with the help of the classes that we have assigned the main container.

Initially, the items will be fish out below:
.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 need to define the starting position, as we want to move the elements to their original spots. Cubic-bezier function will give a smooth animation effect. Element download to appear later.

Recall that the download progress, we will animate through JS. Therefore, we need to define another "state" to which we will switch when the download is complete. Assign the container class loaded and apply the following animation:
.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);
    }
}
Logo 100% is shifted downward. SVG element color change during the transition.
Element load moves upwards, the scale decreases gradually disappears.

The header also must move up:
.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 do the content of our page. You can apply a lot of the original effects. In our case, we want the elements are transparent while moving from bottom to top:
/* 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 will create an additional stylish effect.

To avoid problems with scrolling and the appearance of gaps at the bottom of the page, we need to change the position of a fixed header on the absolute. To do this, we can set a special class member body. This class will be used to change the position:
.layout-switch .ip-header {
    position: absolute;
}
If JavaScript is disabled, display the content immediately after the animation. The position of the header to set both relative and will select the appropriate size of the logo:
.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;
}
In the end, write a few media queries for the normal display of our pages in different screen sizes: view sourcePrint ?
@media screen and (max-width: 45em) {

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

    .box {
        width: 100%%;
    }

}
With styles ended.

JAVASCRIPT

JavaScript code will consist of two parts. We'll share a common functional element load from the rest. Let's call this script pathLoader.js. Here we want to be able to identify stroke-dashoffset to animate the padding inside a path. Initially, stroke-dashoffset and stroke-dasharray installed along the length of the element path (getTotalLength ()). To change the download progress write a function setProgress, which will transfer the state of the page is loaded.
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 ); }
}
Method setProgressFn used to communicate with the boot loader. In our demo download nothing, so we have to simulate this effect by setting a value between 0 and 1 at certain points in time:
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 ) {
                clearInterval( interval );
            }
        }, 100 );
};

var loader = new PathLoader([pathselector]);
loader.setProgressFn(simulationFn);
Next, create a script main.js. Initialize and cache the 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' ) ];
Getting animation (logos and download window slide up) by assigning the class loading to the main container. After the animation is complete, we begin to simulate the load. Please note that during the display of the animation, the page can not 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 );
}
After the end of the animation replace class loading class loaded, which will launch the appearance of the header and content. After that, we add a body class layout-switch and activate the scroll: view sourcePrint ?
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 );
}
DEMO

Download

Source lesson: http://tympanus.net/codrops/2014/08/05/page-preloading-effect/
Read More

Sunday

SEO for DLE 9.6 - 10.x - English

No comments:
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 .= << 
And above insert : s
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/
Read More

Tuesday

Templates CinemaLibrary For DLE 10.6 English

2 comments:
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

Read More

You can mark you interesting snippets of text that will be available through a unique link in your browser

Mark