Giter Site home page Giter Site logo

aharito / dlsiblings Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 1.0 119 KB

Сниппет вывода соседних ресурсов с шаблонизацией (множественная кольцевая перелинковка)

PHP 81.52% Smarty 18.48%
seo-optimization my snippet evo

dlsiblings's Introduction

DLSiblings

Вывод соседних ресурсов с шаблонизацией (множественная кольцевая перелинковка)

Подробнее о кольцевой схеме перелинковки под НЧ-запросы читайте в моей статье >>

Больше информации о параметрах читайте на моем сайте >>

Параметры сниппета:

  • &renderSnippet ( DocLister | sgController ) сниппет, используемый для вывода, default DocLister
  • &prevQty Кол-во соседей-предшественников, default 2
  • &nextQty Кол-во соседей-последователей, default 2
  • все остальные параметры и шаблоны как в DocLister/sgController

Можно использовать унаследованные от DocLister (такие же, как у него): условия выборки &addWhereList и &filters, условия сортировки &orderBy, глубину выборки &depth, prepare-сниппеты и многие другие параметры и все шаблоны.

Если в качестве сниппета вывода указан sgController, то соответственно можно использовать и все условия, параметры и шаблоны sgController.

Шаблоны сниппета

Все шаблоны - точно такие же, как у DocLister. Плейсхолдеры в шаблонах - тоже точно такие же, как в DocLister. Если в качестве сниппета вывода указан sgController, то шаблоны и плейсхолдеры - точно такие же, как в sgController.

ПРИМЕР

Простой вызов сниппета.

[[DLSiblings?
	&idType=`parents`
	&parents=`[*parent*]`
	&tpl=`@CODE: <a href="[+url+]">[+tv.h1+]</a><br>`
	&prevQty=`2`
	&nextQty=`2`
	&tvList=`h1`
]]

Больше примеров с кодом и пояснениями в моей статье Примеры DLSiblings >>

Результат работы

Результат работы более сложного вызова сниппета с выводом превьюшек, даты и заголовка может выглядеть примерно так: siblings_demo_1

dlsiblings's People

Contributors

aharito avatar arviona avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

arviona

dlsiblings's Issues

Сортировка

Так как поиск эл-тов prev ползет вперед, а netx - назад, в итоге для prev получается revert-сортировка по отношению к заданной в DL. Сделать нормальный порядок.

&display=`all`

Принудительно установить &display=all

Баг на Evolution 1.4.0.RC2

При попытке запуска с дефолтными параметрами выдает

Fatal error: Class 'APIhelpers' not found in ........./manager/includes/document.parser.class.inc.php(1832) : eval()'d code on line 45

Добавить отдельные шаблоны для "пред" и "след".

Поскольку снипет универсальный, то для использования как замена prevnextPage нужно добавить разные шаблоны для Пред и След документ. Для магазинов такая фишка ни к чему, а вот для блоговых сайтов очень полезна. Сейчас шаблон вывода один, а заверстать два блока с отступами между ними и чтоб по центру нельзя одним правилом CSS.

Обработка ситуации с 0 или 1 док-тами в выборке

Сделать обработку случая, когда в выборке 1 или даже 0 документов.

Простой выход - не выводить вообще ничего (return).
Выход лучше - обработать в этом случае noneTPL и noneWrapOuter, то есть скопировать поведение DocLister, с той разницей, что у нас оно будет и в случае, когда в выборке 1 документ (текущий).

Добавить параметр

Параметр int onlyFull (0|1) - выводить кольцо только в случае, если кол-во элементов в нём не менее чем prevQty+nextQty.

Или же int minQty - минимальное кол-во элементов в выборке, при котором кольцо выводится.

Имена ТВ-параметров

Сделать преобразование имён ТВ-параметров в шаблонах, чтобы нижнее подчеркивание менялось на точку. При этом сохранить обратную совместимость.

вот и вот

DL api parameter

Snippet returns an array like { "5": [ ], "4": [ ], "3": [ ], "2": [ ], "1": [ ] } on Evo 1.4.8.
I think i have found a wrong parameter in snippet.DLSiblings.php (44):
$paramsAPI = array_merge( $params, array('api' => 'id', 'display' => '0') );
I thought, DL have only 2 options for api parameter: 1 or 0.
So, changing api value from id to 1 fixed the output.
It very strange, because another site on Evo 1.4.8 doesn`t have any issues with DLSiblings.
Has anybody seen similar issue before?
Thanks)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.