Перейти к публикации

dimitron

Клиенты
  • Публикации

    85
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    10

Сообщения, опубликованные пользователем dimitron

  1. 1 час назад, germanydletest сказал:

    10$ платить за плагин, который под кубиком, не айс, так как через год ВК поменяет что либо в своём API и всё, человеку придётся снова платить 10$, что бы плагин опять заработал, так как самостоятельно человек не сможет внести правки.

    В планах плагин поддерживать и развивать если он комуто будет нужен. Если хотите с открытым кодом он в разы будет дороже. Этот плагин я писал 2 года назад и до сих пор работает ВК не часто так вносит какието корективы в API.

  2. Если реально мой код комуто подошол я не буду прям настаивать на какойто цене 😉

    Рекизиты: WebMoney Z180611042436

    • Нравится 1
  3. 2 минуты назад, ermilov сказал:

    Хотелось бы иметь такую настройку: Отправлять в вебмастер только после публикации на сайте.

     

    Сейчас в вебмастер отправляется даже если не опубликовали на сайте. У нас при работа над статьей вносятся изменения и соответственно опубликованная статья уже может отличаться от той, которая еще редактируется. Перед публикацией статьи проверяются редактором, корректором, а уже потом только публикуется. Но галочку по умолчанию не хочется снимать, что бы не забивали про неё.

    учту в новой версии плагина

  4. Соглашусь, но приходиться создавать ленту подгоняя под нужный вид (и нужно знать как правильно сформировать RSS тело новости что бы ВК правильно подтянул), а для рядового пользователя это геморой. И через "RSS импорт новостей" в DLE там скорее всего не получиться подтянуть скрины и видос с доп полей. Моя же цель сделать удобный и простой в настройке плагин. 

     

    Я канечно не замарачивался импортом RSS в ВК, могу ошибаться, там только обычные ссылки и обычный текст импортируеться. Я же даю пользователю больше возможностей, прикрепить скрины указав с какого доп.поля их брать, а также прикрепить видос тоже указав с какого доп.поля брать. Также пользователь сам легко и быстро может сделать свой шаблон текста который будет публиковаться на стене группы.

     

    + Возможность запланировать публикацию записи

    + Возможность выбора публиковать сейчас или нет

     

    Вот скрины плагина:

    1) при редактировании/добавлении новости в админке сайта

    1588430544_screenshot_1.png

    2) настройки плагна

    1588430524_bez-nazvanija-1.png

  5. Немного поправил код файла (engine/modules/teleport/functions.php).

    ВНИМАНИЕ!!! тестировал на версии dle 14.0. И этот хак работает только для кастомного тега {customcomments}

    <?php
    //Формируем дерево коментов
    function buildTree(array &$elements, $parent = 0)
    {
        $branch = array();
    
        foreach ($elements as $element) {
            if ($element['parent'] == $parent) {
                $children = buildTree($elements, $element['id']);
    
                if (!empty($children)) {
                    $element['children'] = $children;
                }
    
                $branch[$element['id']] = $element;
                unset($elements[$element['id']]);
            }
        }
    
        return $branch;
    }
    
    //Вытягиваем ID комментов которые относятся к комменту
    function getIdComments($str, $array)
    {
        if (!empty($array['children'])) {
            foreach ($array['children'] as $value) {
                $str .= getIdComments(','.$value['id'], $value);
            }
        }
    
        return $str;
    }
    
    function getFullLink($post)
    {
        global $db, $config;
        
        //Вытягиваем все комменты новости
        $sql_comments = $db->query("SELECT * FROM " . PREFIX . "_comments WHERE post_id='{$post['post_id']}' ");
    
        $list_comments = [];
    
        while ($row = $db->get_row($sql_comments)) {
            $list_comments[$row['id']] = $row;
        }
    
        $list_comments = buildTree($list_comments);
    
        //вытаскиваем все ID
        $comments_ids = [];
    
        foreach ($list_comments as $value) {
            $comments_ids[] = getIdComments($value['id'], $value);
        }
    
        //Формируем id комментов по страницам
        $count_com = $config['comm_nummers'];
        $count_coms = count($list_comments);
        $pages = @ceil($count_coms / $count_com);
    
        $pages_ = [];
    
        for ($i = 1; $i <= $pages; $i++) {
            $count = 1;
    
            foreach ($comments_ids as $key => $value) {
                $pages_[$i][] = $value;
                unset($comments_ids[$key]);
    
                if ($count == $count_com) break;
                $count++;
            }
    
            $pages_[$i] = explode(',', implode(',', $pages_[$i]));
        }
    
        //Определяем на какой странице находиться комментарий
        $page_num = null;
    
        if(count($pages_) > 1) {
            foreach ($pages_ as $key => $value) {
                if (in_array($post['id'], $value)) {
                    $page_num = $key;
                    break;
                }
            }
        }
    
        //Генерируем ссылку на телепорт к коменту
        $teleport = !empty($page_num) ? "page,1,{$page_num}," : "";
        $teleport_c = !empty($page_num) ? "cstart={$page_num}&" : "";
        $teleport_ = "#comment-id-{$post['id']}";
        
        if ($config['allow_alt_url']) {
    
            if ($config['seo_type'] == 1 or $config['seo_type'] == 2) {
    
                if ($row['category'] and $config['seo_type'] == 2) {
    
                    $full_link = $config['http_home_url'] . get_url($post['category']) . "/{$teleport}" . $post['post_id'] . "-" . $post['alt_name'] . ".html{$teleport_}";
    
                } else {
    
                    $full_link = $config['http_home_url'] . $teleport . $post['post_id'] . "-" . $post['alt_name'] . ".html{$teleport_}";
    
                }
    
            } else {
                $full_link = $config['http_home_url'] . date('Y/m/d/', $post['newsdate']) . $teleport . $post['alt_name'] . ".html{$teleport_}";
            }
    
        } else {
            $full_link = $config['http_home_url'] . "index.php?{$teleport_c}newsid=" . $post['post_id'] . $teleport_;
        }
    
        return $full_link;
    }

     

    • Нравится 1
  6. Сделал телепорт к нужному коменту. Только к каждому коменту дополнительный запрос в БД используеться.

     

    Нужно сделать следующее:

    1) создать файл engine/modules/teleport/functions.php код файла:

    <?php
    //Формируем дерево коментов
    function buildTree(array &$elements, $parent = 0)
    {
        $branch = array();
    
        foreach ($elements as $element) {
            if ($element['parent'] == $parent) {
                $children = buildTree($elements, $element['id']);
    
                if (!empty($children)) {
                    $element['children'] = $children;
                }
    
                $branch[$element['id']] = $element;
                unset($elements[$element['id']]);
            }
        }
    
        return $branch;
    }
    
    //Вытягиваем ID комментов которые относятся к комменту
    function getIdComments($str, $array)
    {
        if (!empty($array['children'])) {
            foreach ($array['children'] as $value) {
                $str .= getIdComments(','.$value['id'], $value);
            }
        }
    
        return $str;
    }
    
    function getFullLink($post)
    {
        global $db, $config;
    
        //Вытягиваем все комменты новости
        $sql_comments = $db->query("SELECT * FROM " . PREFIX . "_comments WHERE post_id='{$post['post_id']}' ");
    
        $list_comments = [];
    
        while ($row = $db->get_row($sql_comments)) {
            $list_comments[$row['id']] = $row;
        }
    
        $list_comments = buildTree($list_comments);
    
        //вытаскиваем все ID
        $comments_ids = [];
    
        foreach ($list_comments as $value) {
            $comments_ids[] = getIdComments($value['id'], $value);
        }
    
        //Формируем id комментов по страницам
        $count_com = 2;
        $count_coms = count($list_comments);
        $pages = @ceil($count_coms / $count_com);
    
        $pages_ = [];
    
        for ($i = 1; $i <= $pages; $i++) {
            $count = 1;
    
            foreach ($comments_ids as $key => $value) {
                $pages_[$i][] = $value;
                unset($comments_ids[$key]);
    
                if ($count == $count_com) break;
                $count++;
            }
    
            $pages_[$i] = explode(',', implode(',', $pages_[$i]));
        }
    
        //Определяем на какой странице находиться комментарий
        $page_num = null;
    
        foreach ($pages_ as $key => $value) {
            if (in_array($post['id'], $value)) {
                $page_num = $key;
                break;
            }
        }
    
        //Генерируем ссылку на телепорт к коменту
        $teleport = !empty($page_num) ? "page,1,{$page_num}," : "";
        $teleport_c = !empty($page_num) ? "cstart={$page_num}&" : "";
        $teleport_ = !empty($page_num) ? "#comment-id-{$post['id']}" : "";
    
        if ($config['allow_alt_url']) {
    
            if ($config['seo_type'] == 1 or $config['seo_type'] == 2) {
    
                if ($row['category'] and $config['seo_type'] == 2) {
    
                    $full_link = $config['http_home_url'] . get_url($post['category']) . "/{$teleport}" . $post['post_id'] . "-" . $post['alt_name'] . ".html{$teleport_}";
    
                } else {
    
                    $full_link = $config['http_home_url'] . $teleport . $post['post_id'] . "-" . $post['alt_name'] . ".html{$teleport_}";
    
                }
    
            } else {
                $full_link = $config['http_home_url'] . date('Y/m/d/', $post['newsdate']) . $teleport . $post['alt_name'] . ".html{$teleport_}";
            }
    
        } else {
            $full_link = $config['http_home_url'] . "index.php?{$teleport_c}newsid=" . $post['post_id'] . $teleport_;
        }
    
        return $full_link;
    }

    2) В файле engine/modules/functions.php найти:

    if (!function_exists('password_hash')) {

    добавить выше

    include (ENGINE_DIR . '/modules/teleport/functions.php');

    3) В файле engine/classes/comments.class.php найти:

    $tpl->set( '{news-link}', $full_link."#comment" );

    заменить на

    $tpl->set( '{news-link}', getFullLink($row) );

    Вот в принцепе и все. Проверил, работает на всех типах ЧПУ.

    Тестировал на CMS DLE 14.0

    • Спасибо 1
  7. В 04.05.2020 в 12:19, NlCKRUS сказал:

    Нужно, чтобы форма быстрого поиска (не расширенная форма) выполняла поиск в определенных категориях. Нужно, чтобы перечень категорий для поиска я задавал сам.

    Грубо говоря, форма поиска будет установлена во всех категориях. Нужно, чтобы поиск работал только по той категории (и во всех подкатегориях) в который установлена форма поиска.

     

    Нужное поле можно передать и через скрытое HTML поле. Но не знаю как.

     

    
    <input type="hidden" name="catlist[]" value="16" />

    не работает.

    Да это не поможет, быстрый поиск (вот та выпадалка что найдено) реализован AJAX (engine/ajax/search.php) и обычное добавление в форму скрытого инпута с нужной категорией не поможет. 

     

    Как это можно решить?

    1) в файле engine/classes/js/dle_js.js нужно немного пеработать функцию dle_do_search (нужно туда добавить параметр на какой мы сейчас категории) что бы мы понимали где мы находимся.

    2) в файле engine/ajax/search.php нужно написать логику какие категории должны участвовать в быстром поиске (для настроек можно использовать масив данных) для категори на которой мы находимся

     

    Если вам нужно реализовать такое, пишите в ЛС

  8. 9 часов назад, sergan747 сказал:

    День добрый! К своему удивлению не нашёл ни одного запроса на интеграцию DLE с Integromat/Zapier. На сколько это возможно и трудоёмко? Интересует в первую очередь постинг новостей. 

    Если у них имееться API то вполне можно такой плагин написать.

  9. 1588434362_frame-77.jpg

     

    Приветствую форумчане, вот решил показать плагин, который позволит легко и быстро публиковать на стене группы новости со своего сайта. На скрине выше я показал, как примерно это выглядит на стене группы.

     

    Возможности плагина:

    • Подключение приложения ВК к плагину;
    • Настройки картинок, прикрепляемых к записи;
    • Настройки видео, прикрепляемых к записи;
    • Дополнительные настройки (Публиковать от имени группы, Источник и т.д.);
    • Шаблон текста записи при отправки на стену группы;
    • На странице добавить/редактировать новость выводиться блок от плагина;
    • Возможность отложить запись на выбранную дату и время.

     

    Плагин вы найдете по ссылке: https://lebid.pro/plugins/dle/8-post-to-vk.html

  10. В 12.04.2020 в 16:15, ITsochi сказал:

    Подскажите может есть уже готовое решение или кто может разработать под 14 версию удобный раздел под размещение объектов недвижимости? 

    Здравствуйте, нужно более подробно расписать задачу каким образом и в каом виде хотите размещать такие обьекты недвижимости.

  11. Здравствуйте, напишу инструкцию а вы просто плагином это сделайте:

    1) Открыть файл engine\modules\register.php

    2) Найти строку

    $db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip, hash) VALUES ('{$name}', '{$regpassword}', '{$email}', '{$add_time}', '{$add_time}', '{$config['reg_group']}', '', '', '', '', '{$_IP}', '{$hash}')" );

    3) Заменить на

    $db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip, hash, news_subscribe, comments_reply_subscribe) VALUES ('{$name}', '{$regpassword}', '{$email}', '{$add_time}', '{$add_time}', '{$config['reg_group']}', '', '', '', '', '{$_IP}', '{$hash}', '1', '1')" );

     

    • Поддерживаю 1
  12. Приношу извенение, скорее всего произошло недопонимание в таблице цен. При покупки плагина вы дополнительно получаете бесплатную поддержку и обновление плагина на ГОД. По старой информации кто-то скорее всего поняли что нужно будет платить за плагин в обязательном порядке каждый год - НЕТ.

    • Нравится 1
  13. Здравствуйте разработал плагин Menu builder v.1.0 для вывода меню на сайте как у WP. 

     

    Возможности плагина:

    1. Создание глубоких вложений меню (удобный конструктор).
    2. Создание необходимого меню с использованием четырех типов ссылок:
      - новости;
      - категории;
      - статические страницы;
      - произвольные ссылки.
    3. Вывод количества новостей в пункте меню «Категория».
    4. Содержание необходимой документации к плагину.
    5. Доступ к настройкам каждого пункта меню.
    6. Подключение своего шаблона к каждому меню для отображения его на сайте.
    7. Отправка одним кликом шорткода меню в буфер обмена (для его копирования).
    8. Управление (вкл/выкл) кешированием меню и его отображение на сайте.
    9. Использование плагина Multi-Languagex (при необходимости).

     

    Плагин найдете по ссылке: https://lebid.pro/plugins/dle/6-menu-builder.html

    • Нравится 1
  14. 16 минут назад, alex32 сказал:

    Чувак, я тебя поздравляю. ты только что изобрел велосипед

     

    [news=1,2,3] текст [/news]

    Выводят заключенный в них текст, если посетитель просматривает полную новость указанных в параметре тега новостей, где 1,2,3 это ID новостей.

    [not-news=1,2,3] текст [/not-news]

    Выводит текст на любых других страницах кроме просмотра указанных в теге новостей.

    Хм, а я ищу ищу, я не там смотрел получаеться в документации 🙂 Велосипеды тоже полезно создавать. 

  15. Здравствуйте, мне нужно был тег который выводит текст если мы находимся на определенной новости. И этот тег должен работать глобально по всему сайту. Это мне нужно для меню на сайте, что бы подсветить его.

     

    Можно сделать плагином, я тут выложу код, а тот кто в теме сможет сделать плагином.

     

    Открыть файл engine/modules/functions.php

    Найти строку:

    function check_category( $matches=array() ) {

    Добавить выше:

    function check_post($matches=array()) 
    {
        $block = $matches[3];
        $newsid = !empty($_GET['newsid']) ? $_GET['newsid'] : 0;
        
        $temp_array = array();
    
        $matches[2] = str_replace(" ", "", $matches[2] );
        $matches[2] = explode (',', $matches[2]);
    
        foreach ($matches[2] as $value) {
            if( count(explode('-', $value)) == 2 ) $temp_array[] = get_mass_cats($value);
            else $temp_array[] = intval($value);
        }
    
        $temp_array = implode(',', $temp_array);
    
        if ($matches[1] == "post") $action = true; else $action = false;
    
        $cats = explode( ',', $temp_array );
    
        $found = false;
        
        if ($action) {
            if (in_array($newsid, $cats)) {
                return $block;
            }
        } else {
            if (in_array($newsid, $cats)) {
                $found = true;
            }
        }
        
        if (!$action AND !$found) {
            return $block;
        }
    
        return "";
    }

    Открыть файл engine/classes/templates.class.php

    Найти строку

    if (strpos ( $this->template, "[group=" ) !== false OR strpos ( $this->template, "[not-group=" ) !== false) {

    Добавить выше

    if (stripos ( $this->template, "[post=" ) !== false) {
    	$this->template = preg_replace_callback ( "#\\[(post)=(.+?)\\](.*?)\\[/post\\]#is", "check_post", $this->template );
    }
    
    if (stripos ( $this->template, "[not-post=" ) !== false) {
    	$this->template = preg_replace_callback ( "#\\[(not-post)=(.+?)\\](.*?)\\[/not-post\\]#is", "check_post", $this->template );
    }

    Вот в принцепе и все. Надеюсь разработчики CMS DLE добавят этот тег в новых update движка!

  16. В 31.10.2019 в 14:09, celsoft сказал:

    Ну и конечно же не стоит забывать читать документацию, в которой написано что при установке плагина выполняется два действия, а именно и установка и включение, и если запрос и там и там то будет дублирование запроса.

    тогда запрос на добавление плагина в БД нам нужно только указывать при включении, при установки как я понял этот запрос не нужен?

×
×
  • Создать...