Talory
-
Публикации
17 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем Talory
-
-
21 минуту назад, alex32 сказал:
Правьте, в чем проблема. Да и плагин так себе, 90% ненужного мусора. Несколько строк jquery и все остальное делается в css, занафига лезть в файлы скрипта, вообще непонятно
Если бы мог, не прибегал к помощи и не выкладывал бы "90% ненужного мусора" . Смена через css не то что мне нужно.
-
21 минуту назад, aleksandrhristich сказал:
С этим вопросом вам лучше обратиться к автору плагину.
Да там тишина уже год, ни каких движений. Темболее раз он работал, чую нужно пару строк подправить.
-
Всем привет. есть такой плагин Ajax переключение вида кратких новостей.
Но на последних версиях dle чтото он работать не хочет.
Посмотрите что не так с ним, как его можно оптимизировать.
Сам плагин:
Первым делом подключим его к нашему шаблону. Для этого открываем файл main.tpl и перед тегом </head> вставляем следующие строки:
[aviable=main|cat]<link media="screen" href="{THEME}/css/ajax_temp.css" type="text/css" rel="stylesheet" />[/aviable]
Код css
.activetempajax { text-decoration: none; background: #d8e0eb; } .view-type { display: inline-block; float: right; } .view-type a { padding: 3px 6px; border-radius: 3px; display: inline-block; } .setview { width: 16px; height: 16px; display: inline-block; vertical-align: middle; position: relative; background: url("../images/set_view.png") no-repeat; } .view1 { background-position: 0 0; } .view2 { background-position: 0 -16px; } .view3 { background-position: 0 -32px; }
Затем в самом низу этого же файла подключаем .js файл, перед тегом </body> вставляем:
[aviable=main|cat]<script type="text/jаvascript" src="{THEME}/js/ajax_temp.js"></script>[/aviable]
Код ajax_temp.js
$("body").on("click", "[data-temp*=this_]", function() { if($(this).hasClass("activetempajax")) { return false; } else { ShowLoading(''); $(".templater > a").removeClass("activetempajax"); $(this).addClass("activetempajax"); var $temp = $(this).attr("data-nametemp"); var $catid = $(this).attr("data-catid"); var $pageid = $(this).attr("data-pageid"); $.post(dle_root + "engine/ajax/ajax_template.php", {template_ajax:$temp, cstart:$pageid, category_id:$catid}, function(data) { if(data) { $("#dle-content").html(data); HideLoading(''); } }); return false; } });
Код самого ajax_template.php
<?PHP @error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE ); @ini_set ( 'display_errors', true ); @ini_set ( 'html_errors', false ); @ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE ); $template_ajax = isset($_POST["template_ajax"]) && is_string($_POST["template_ajax"]) ? trim(strip_tags(stripslashes($_POST["template_ajax"]))) : false; $cstart = isset($_POST["cstart"]) && is_numeric($_POST["cstart"]) ? intval($_POST["cstart"]) : false; $category_id = isset($_POST["category_id"]) && is_numeric($_POST["category_id"]) ? intval($_POST["category_id"]) : false; if(!$template_ajax) return; if(!in_array($template_ajax, array("default", "list", "tablet"))) return; define( 'DATALIFEENGINE', true ); define( 'ROOT_DIR', substr( dirname( __FILE__ ), 0, -12 ) ); define( 'ENGINE_DIR', ROOT_DIR . '/engine' ); include ENGINE_DIR . '/data/config.php'; require_once ENGINE_DIR . '/classes/mysql.php'; require_once ENGINE_DIR . '/data/dbconfig.php'; require_once ENGINE_DIR . '/modules/functions.php'; require_once ENGINE_DIR . '/classes/templates.class.php'; dle_session(); require_once ENGINE_DIR . '/modules/sitelogin.php'; require_once ROOT_DIR . '/language/' . $config['langs'] . '/website.lng'; @header( "Content-type: text/html; charset=" . $config['charset'] ); if(!$is_logged) $member_id['user_group'] = 5; //################# Определение групп пользователей $user_group = get_vars( "usergroup" ); if( ! $user_group ) { $user_group = array (); $db->query( "SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC" ); while ( $row = $db->get_row() ) { $user_group[$row['id']] = array (); foreach ( $row as $key => $value ) $user_group[$row['id']][$key] = stripslashes($value); } set_vars( "usergroup", $user_group ); $db->free(); } //################# Определение категорий и их параметры $cat_info = get_vars( "category" ); if( ! is_array( $cat_info ) ) { $cat_info = array (); $db->query( "SELECT * FROM " . PREFIX . "_category ORDER BY posi ASC" ); while ( $row = $db->get_row() ) { $cat_info[$row['id']] = array (); foreach ( $row as $key => $value ) $cat_info[$row['id']][$key] = stripslashes( $value ); } set_vars( "category", $cat_info ); $db->free(); } set_cookie("short_template", $template_ajax, 366); //$tpl->load_template( $user_short_tpl[$template_ajax] ); $thisdate = date ( "Y-m-d H:i:s", time () ); if ($config['no_date'] AND !$config['news_future']) $where_date = " AND date < '" . $thisdate . "'"; else $where_date = ""; $allow_list = explode ( ',', $user_group[$member_id['user_group']]['allow_cats'] ); if ($allow_list[0] != "all") { if ($config['allow_multi_category']) $stop_list = "category regexp '[[:<:]](" . implode ( '|', $allow_list ) . ")[[:>:]]' AND "; else $stop_list = "category IN ('" . implode ( "','", $allow_list ) . "') AND "; } else $stop_list = ""; $allow_sub_cats = true; if ( $cat_info[$category_id]['show_sub'] ) { if ( $cat_info[$category_id]['show_sub'] == 1 ) $get_cats = get_sub_cats ( $category_id ); else { $get_cats = $category_id; $allow_sub_cats = false; } } else { if ( $config['show_sub_cats'] ) $get_cats = get_sub_cats ( $category_id ); else { $get_cats = $category_id; $allow_sub_cats = false; } } if ($config['allow_multi_category']) $where_category = "category regexp '[[:<:]](" . $get_cats . ")[[:>:]]'"; else { if ( $allow_sub_cats ) { $get_cats = str_replace ( "|", "','", $get_cats ); $where_category = "category IN ('" . $get_cats . "')"; } else $where_category = "category = '{$get_cats}'"; } if ($config['allow_fixed']) $fixed = "fixed desc, "; else $fixed = ""; $news_sort_by = ($config['news_sort']) ? $config['news_sort'] : "date"; $news_direction_by = ($config['news_msort']) ? $config['news_msort'] : "DESC"; if($category_id) { $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$where_category} AND approve=1" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$where_category} AND approve=1" . $where_date; } else { $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}approve=1 AND allow_main=1" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}approve=1 AND allow_main=1" . $where_date; } $tpl = new dle_template( ); $tpl->dir = ROOT_DIR . '/templates/'.$config['skin']; define( 'TEMPLATE_DIR', $tpl->dir ); $allow_active_news = true; if($category_id > 0) { $url_page = $config['http_home_url'] . get_url ( $category_id ); $user_query = "do=cat&category=" . $cat_info[$category_id]['alt_name']; } else { $url_page = substr ( $config['http_home_url'], 0, strlen ( $config['http_home_url'] ) - 1 ); $user_query = ""; } include ENGINE_DIR . '/modules/show.short.php'; $tpl->result['content'] = str_replace( '{THEME}', $config['http_home_url'] . 'templates/' . $config['skin'], $tpl->result['content'] ); echo $tpl->result['content']; ?>
В этом же файле в месте где хотим чтобы отображался сам переключатель вставляем следующее:
[aviable=main|cat] <div class="view-type templater"> <a href="#" [default] class="activetempajax" [/default] data-temp="this_1" data-catid="{id_cat}" data-pageid="{cstart}" data-nametemp="default"> <span class="setview view1"></span> </a> <a href="#" [list] class="activetempajax" [/ list] data-temp="this_2" [/list] data-catid="{id_cat}" data-pageid="{cstart}" data-nametemp="list"> <span class="setview view2"></span> </a> <a href="#" [table] class="activetempajax" [/table] data-temp="this_3" data-catid="{id_cat}" data-pageid="{cstart}" data-nametemp="tablet"> <span class="setview view3"></span> </a> </div> [/aviable]
Открываем файл /engine/engine.php и ищем такие строки:
$cache_prefix .= "_tempate_" . $config['skin'];
Ниже дописываем это:
$user_short_tpl = array( 'default' => 'shortstory.tpl', 'list' => 'shortstory_list.tpl', 'tablet' => 'shortstory_tablet.tpl' ); $user_tpl =(isset($_COOKIE['short_template']) && isset($user_short_tpl[$_COOKIE['short_template']])) ? $_COOKIE['short_template'] : "default"; $cache_prefix .= "_".$user_tpl;
Далее открываем файл /engine/modules/show.short.php и ищем строки:
if( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) $tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' ); else $tpl->load_template( 'shortstory.tpl' );
Заменяем эти строки на:
$user_short_tpl = array( 'default' => 'shortstory.tpl', 'list' => 'shortstory_list.tpl', 'tablet' => 'shortstory_tablet.tpl' ); if($template_ajax) $user_tpl = $user_short_tpl[$template_ajax]; else $user_tpl =(isset($_COOKIE['short_template']) && isset($user_short_tpl[$_COOKIE['short_template']])) ? $user_short_tpl[$_COOKIE['short_template']] : $user_short_tpl["default"]; if( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) $tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' ); else{ $tpl->load_template($user_tpl);}
После открываем файл /engine/modules/main.php (если у вас более старая версия DLE то файл index.php корневой!) и находим:
$tpl->set ( '{speedbar}', $tpl->result['speedbar'] );
Ниже вставляем:
$tpl->set ( '{id_cat}', $category_id ); $tpl->set ( '{cstart}', intval($_REQUEST["cstart"]) ); if(isset($_COOKIE['short_template'])) { if($_COOKIE['short_template'] == "default") { $tpl->set_block( "'\\[default\\](.*?)\\[/default\\]'si", "\\1" ); $tpl->set_block( "'\\[list\\](.*?)\\[/list\\]'si", "" ); $tpl->set_block( "'\\[table\\](.*?)\\[/table\\]'si", "" ); } elseif($_COOKIE['short_template'] == "list") { $tpl->set_block( "'\\[default\\](.*?)\\[/default\\]'si", "" ); $tpl->set_block( "'\\[list\\](.*?)\\[/list\\]'si", "\\1" ); $tpl->set_block( "'\\[table\\](.*?)\\[/table\\]'si", "" ); } else { $tpl->set_block( "'\\[default\\](.*?)\\[/default\\]'si", "" ); $tpl->set_block( "'\\[list\\](.*?)\\[/list\\]'si", "" ); $tpl->set_block( "'\\[table\\](.*?)\\[/table\\]'si", "\\1" ); } } else { $tpl->set_block( "'\\[default\\](.*?)\\[/default\\]'si", "\\1" ); $tpl->set_block( "'\\[list\\](.*?)\\[/list\\]'si", "" ); $tpl->set_block( "'\\[table\\](.*?)\\[/table\\]'si", "" ); }
-
18.08.2017 в 18:21, lineup сказал:
А будет ли такая реализация правильна, при условии что настройки nginx / apache редактировать нельзя?
functions.inc.php и functions.php
найти
REMOTE_ADDR
заменить на
HTTP_CF_CONNECTING_IPИ я столкнулся с этой проблемой. ваш статья помогла.
Сделал виде плагина, единственное в админке постоянно пишет
Внимание ошибка безопасности: В настройках скрипта задан некорректный HTTP заголовок для получения IP адреса пользователей. По данной настройке невозможно получить IP адреса пользователей. Измените значение на корректное.
-
Есть бесплатный скрипт i18n.js можно легко реализовать поддержку нескольких языков
-
Попробовал, выводит и подкатегории, зачем то. А если спустится в подкатегорию, то там выводится и родительские категории. Фигня какая то.
-
Здравствуйте всем. Есть в настройках такая функция:
<b>Выводить новости опубликованные в субкатегориях</b> Eсли 'Включено', то новости опубликованные в субкатегориях будут показываться также при просмотре основной категории. В противном случае вам необходимо будет указывать несколько категорий при публикации новости.
Но нету функции:
Выводить категории опубликованные в субкатегориях Eсли 'Включено', то категории опубликованные в субкатегориях будут показываться также при просмотре основной категории. В противном случае вам необходимо будет указывать несколько категорий при публикации категории.
Тоесть при просмотре категории у меня выводится родительские категории и сабкатегории, не пойму как запретить.
-
Бред, всё на путано. надо же из телеграмм в dle)))
На много легче будет
-
Так за 4 года ни кто и не смог написать модуль на PDF.js?
-
2 минуты назад, Captain сказал:
Тупить не надо:
Грубить тоже!
Зачем мне обратную связь? я в тех поддержку уже написал, тишина.
-
Всем привет, как выставить счет для юридических лиц, на покупку лицензии?
-
Всё хорошего дня. Было бы не плохо увидеть поддержку captcha v3.
- 1
-
1 час назад, webair сказал:
Понимать бы, что именно интегрировать вам нужно. ТЗ - Техническое Задание.
У 1С достаточно продуктов. Есть Битрикс, есть Битрикс 24, даже АмоСРМ они купили, есть разные системы учёта бухгалтерии, склада, предприятия. Поставьте чёткую задачу, что с чем интегрировать. В новых версиях dle это не появится, но сторонние разработчики, может быть заинтересуются.
Лично я не пользуюсь продуктами 1С, может поэтому не понял сразу сути.
Битрикс это конечно для мажоров, всё хорошо. но не будем унижать dle, так как в данный момент она нас интересует. Минимальное параметры экспорт и импорт между dle и 1с это ид новости, титул(заголовок), краткая-полная новость, ну и естественно дополнительные поля. ну расписывать нет смысла, так как тема не для заказов. а для пожеланий. Ну и на последок, мне dle нравится, больше чем остальные, просто сделано для людей. всё удобно.
-
1 час назад, webair сказал:
Вы такие странные, конечно... Что вам интегрировать? Новости? Или новости переделанные в карточку товара с помощью доп полей? Сопоставление данных из доп полей с данными из 1С? Я что то не видел таких запросов на форуме, поэтому и не задумывался об этом. Если вам нужно, создавайте тему, опишите ТЗ подробное.
Отговорки лишь бы не делать!
-
Хотелось бы видеть интеграцию dle с 1c. Странно, но за всё время нет не одного даже плагина - модуля.
Работа с доп. полем «Галерея»
в DataLife Engine (Общие вопросы)
Опубликовано:
В 15.2 появилась такая возможность?