AnteFil 3 Опубликовано: 9 июня 2020 Рассказать Опубликовано: 9 июня 2020 Делаю сайт для небольшой компании и возникла необходимость опубликовывать их вакансии на сайте. Я так понимаю что для этого нужно написать модуль. Проблема в том что не знаю с чего начать этот модуль. PHP и SQL знаю дайте направление для работы Цитата Ссылка на сообщение Поделиться на других сайтах
MSK 289 Опубликовано: 9 июня 2020 Рассказать Опубликовано: 9 июня 2020 Дня начало доки посмотреть https://dle-news.ru/extras/online/index.html?modules_include.html Цитата Ссылка на сообщение Поделиться на других сайтах
AnteFil 3 Опубликовано: 9 июня 2020 Рассказать Опубликовано: 9 июня 2020 Автор 8 часов назад, MSK сказал: Дня начало доки посмотреть https://dle-news.ru/extras/online/index.html?modules_include.html Как например запросить из базы что то? Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 9 июня 2020 Рассказать Опубликовано: 9 июня 2020 https://github.com/dle-modules/DLE-StarterKit https://tcse-cms.com/works/1035-plugin-dle13.html 22 минуты назад, AnteFil сказал: Как например запросить из базы что то? для этого есть класс db, находится в engine/classes/ файл mysql.php, там можно посмотреть методы. Примеры запросов можно посмотреть практически в любом файле в папке engine/modules/ или в файле engine/engine.php И еще надо выполнять правила форума. Цитата Внимание !!! На данном форуме существуют достаточно жесткие правила, поэтому прежде чем создавать свою тему убедитесь, что вы внимательно их прочитали и поняли. 1. Если ваша тема начинается с вопроса и вам нужна какая либо помощь, то в самой теме в обязательном порядке вы должны указывать ссылку на ваш сайт. Если ваш сайт находится в локальной сети и вы не можете предоставить ссылку, или вы не хотите публиковать открытой ссылки на ваш сайт, то отправляйте персональное сообщение с вопросом в службу поддержки непосредственно с сайта http://dle-news.ru/, вам ответят на ваш вопрос в персональном порядке, в случае если пользуетесь платной версией скрипта и обладаете лицензией на скрипт. Если вы пользуетесь демоверсией, то вам необходимо разместить сайт в сети интернет, и только потом обращаться за помощью. По находящимся на локальных компьютерах демоверсиям никакой помощи и поддержки на форуме не оказывается. Если вы не указали сайт, то ваша тема будет закрыта, а аккаунт на форуме заблокирован. Цитата Ссылка на сообщение Поделиться на других сайтах
AnteFil 3 Опубликовано: 9 июня 2020 Рассказать Опубликовано: 9 июня 2020 (изменено) Автор 3 часа назад, alex32 сказал: https://github.com/dle-modules/DLE-StarterKit https://tcse-cms.com/works/1035-plugin-dle13.html для этого есть класс db, находится в engine/classes/ файл mysql.php, там можно посмотреть методы. Примеры запросов можно посмотреть практически в любом файле в папке engine/modules/ или в файле engine/engine.php И еще надо выполнять правила форума. У меня нет сейчас сайтов я демку скачал и на денвер поставил что бы попробовать написать модуль, если не получиться значит другой какой то движок буду смотреть! Я сейчас в админке поставил модуль как по техничке http://site.ru/admin.php?mod=mymod выглядит всё красиво! Теперь я хочу по нажатию кнопки выполнить некие действия, а именно запросить данные, обработать их и отправить в базу. Если бы это был не движок DLE я бы это сделал так поставил кнопку и например при помощи конструкции <form><input type="submit" value="Отправить" formaction="obrabotchik.php" formmethod="get"></form> начал выполняться нужный мне алгоритм, тем временем пользователя редиректом куда то отправил. Как на DLE это выполнить? Изменено 9 июня 2020 пользователем AnteFil Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 9 июня 2020 Рассказать Опубликовано: 9 июня 2020 3 минуты назад, AnteFil сказал: я бы это сделал так поставил кнопку и например при помощи конструкции <form><input type="submit" value="Отправить" formaction="obrabotchik.php" formmethod="get"></form> начал выполняться нужный мне алгоритм, тем временем пользователя редиректом куда то отправил. Как на DLE это выполнить? так и выполняй. только что это за чудо-атрибуты formaction, formmethod? action знаю, method тоже, а таких не знаю Цитата Ссылка на сообщение Поделиться на других сайтах
AnteFil 3 Опубликовано: 9 июня 2020 Рассказать Опубликовано: 9 июня 2020 Автор 16 минут назад, alex32 сказал: так и выполняй. только что это за чудо-атрибуты formaction, formmethod? action знаю, method тоже, а таких не знаю Почему то в двух местах файлы лежат engine\inc и engine\modules я правильно понял что файлы engine\inc используються больше как каркас или дизайн а в engine\modules лежит весь функционал?? Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 9 июня 2020 Рассказать Опубликовано: 9 июня 2020 engine\inc это админка engine\modules это морда сайта Цитата Ссылка на сообщение Поделиться на других сайтах
germanydletest 457 Опубликовано: 9 июня 2020 Рассказать Опубликовано: 9 июня 2020 3 часа назад, AnteFil сказал: я демку скачал и на денвер поставил 3 часа назад, AnteFil сказал: Почему то в двух местах файлы лежат engine\inc и engine\modules я правильно понял что файлы engine\inc используються больше как каркас или дизайн а в engine\modules лежит весь функционал?? А как Вы могли это понять, если в демо версии все файлы (кроме шаблонов) зашифрованы? Цитата Ссылка на сообщение Поделиться на других сайтах
AnteFil 3 Опубликовано: 10 июня 2020 Рассказать Опубликовано: 10 июня 2020 Автор 7 часов назад, germanydletest сказал: А как Вы могли это понять, если в демо версии все файлы (кроме шаблонов) зашифрованы? Есть документация и поисковик, а что вы знали названия файлов не шифруются только код в них, а код мне не нужен ибо сам его пишу Цитата Ссылка на сообщение Поделиться на других сайтах
AnteFil 3 Опубликовано: 10 июня 2020 Рассказать Опубликовано: 10 июня 2020 (изменено) Автор Как отправить данные в модуль.php со стороны пользователя ? Со стороны админа я сделал так action="?mod=mymod&action=start" method="POST" ловил уже GET что бы страничка не переоткрывыалась. В итоге адрес был http://test1.ru/admin.php?mod=mymod&action=start для активации нужных функций (как то не совсем безопасно но пофиг) Как реализовать нечто подобное с клиенской стороны??? Как отправить в мой модуль данные? Который в engine\modules Тут наверно вопрос может перефразировать как создать страничку для этого модуля? Всё разобрался! Изменено 10 июня 2020 пользователем AnteFil Цитата Ссылка на сообщение Поделиться на других сайтах
AnteFil 3 Опубликовано: 10 июня 2020 Рассказать Опубликовано: 10 июня 2020 Автор Нагуглил тут https://dle-faq.ru/faq/phpquest/21618-v-chem-raznica-mezhdu-query-i-superquery.html что для работы с базой есть функции. Например get_row(); должен вернуть весь массив выборки. У меня почему то возвращает только одну строчку Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 10 июня 2020 Рассказать Опубликовано: 10 июня 2020 22 минуты назад, AnteFil сказал: Например get_row(); должен вернуть весь массив выборки. У меня почему то возвращает только одну строчку Это же логично, раз что-то работает не так, значит где-то написано не так. А как написано, нам отсюда не видно Цитата Ссылка на сообщение Поделиться на других сайтах
AnteFil 3 Опубликовано: 10 июня 2020 Рассказать Опубликовано: 10 июня 2020 (изменено) Автор 31 минуту назад, alex32 сказал: Это же логично, раз что-то работает не так, значит где-то написано не так. А как написано, нам отсюда не видно if (!empty($_POST['action'])) { $db->query( "SELECT * FROM " . PREFIX . "_mod_job WHERE address LIKE '%".$_POST['action']."%'"); $row = $db->get_row(); print_r($row); } Ни чё такого Я подумал может тут реализована схема как PDO типа fetch и fetch_all попробовал get_row_all но такой нет и упала ошибка Изменено 10 июня 2020 пользователем AnteFil Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 10 июня 2020 Рассказать Опубликовано: 10 июня 2020 9 минут назад, AnteFil сказал: if (!empty($_POST['action'])) { $db->query( "SELECT * FROM " . PREFIX . "_mod_job WHERE address LIKE '%".$_POST['action']."%'"); $row = $db->get_row(); print_r($row); } Ни чё такого if (!empty($_POST['action'])) { $sql = $db->query( "SELECT * FROM " . PREFIX . "_mod_job WHERE address LIKE '%" . $db->safesql($_POST['action']) . "%'"); while ($row = $db->get_row($sql)) { print_r($row); } } В первую очередь вам нужно прочесть о 1. PHP. 2. Базы данных. 3. Безопасности данных. И лишь тогда пытаться что-то писать. Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 10 июня 2020 Рассказать Опубликовано: 10 июня 2020 (изменено) del Изменено 10 июня 2020 пользователем alex32 Gameer опередил :) Цитата Ссылка на сообщение Поделиться на других сайтах
AnteFil 3 Опубликовано: 10 июня 2020 Рассказать Опубликовано: 10 июня 2020 (изменено) Автор 7 минут назад, Gameer сказал: if (!empty($_POST['action'])) { $sql = $db->query( "SELECT * FROM " . PREFIX . "_mod_job WHERE address LIKE '%" . $db->safesql($_POST['action']) . "%'"); while ($row = $db->get_row($sql)) { print_r($row); } } В первую очередь вам нужно прочесть о 1. PHP. 2. Базы данных. 3. Безопасности данных. И лишь тогда пытаться что-то писать. Поясни пожалуйста функцию safesql что она делает? И дальнейшую логику ! Почему например я могу получать весь результат только в цикле? Изменено 10 июня 2020 пользователем AnteFil Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 10 июня 2020 Рассказать Опубликовано: 10 июня 2020 10 минут назад, AnteFil сказал: Поясни пожалуйста функцию safesql что она делает? И дальнейшую логику ! Почему например я могу получать весь результат только в цикле? $row = $db->super_query( "SELECT * FROM " . PREFIX . "_mod_job WHERE address LIKE '%" . $db->safesql($_POST['action']) . "%'", true); print_r($row); Делает mysqli_real_escape_string. Можете, изучайте содержимое класса а так же функции которые в нем есть. Цитата Ссылка на сообщение Поделиться на других сайтах
germanydletest 457 Опубликовано: 10 июня 2020 Рассказать Опубликовано: 10 июня 2020 1 минуту назад, Gameer сказал: изучайте содержимое класса для этого демка не подойдёт, лицензию брать надо))) Цитата Ссылка на сообщение Поделиться на других сайтах
AnteFil 3 Опубликовано: 10 июня 2020 Рассказать Опубликовано: 10 июня 2020 Автор 15 минут назад, germanydletest сказал: для этого демка не подойдёт, лицензию брать надо))) Да в принцепе половину модуля уже написал. Щас только допинать и попытаться оформить. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 11 июня 2020 Рассказать Опубликовано: 11 июня 2020 22 часа назад, AnteFil сказал: а код мне не нужен ибо сам его пишу Потом ещё кубиком обработай его и на продажу! Цитата Ссылка на сообщение Поделиться на других сайтах
AnteFil 3 Опубликовано: 11 июня 2020 Рассказать Опубликовано: 11 июня 2020 (изменено) Автор В 10.06.2020 в 19:14, Gameer сказал: if (!empty($_POST['action'])) { $sql = $db->query( "SELECT * FROM " . PREFIX . "_mod_job WHERE address LIKE '%" . $db->safesql($_POST['action']) . "%'"); while ($row = $db->get_row($sql)) { print_r($row); } } Подскажите, я вот получил результаты запроса! Теперь хочу оформить это. Сделать шаблон что бы каждая выводимая строчка имела какой то дизайн. Не хочу это делать в коде. Можно ли как то в цикле вызвать шаблон и отдать в него результат запроса для вывода пользователю что бы результат был как на поисковике типа яндекс или гугл ? Изменено 11 июня 2020 пользователем AnteFil Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 12 июня 2020 Рассказать Опубликовано: 12 июня 2020 Даже удивительно, что человек, пишущий модуль, совсем не может пользоваться поисковиками https://pafnuty.name/statyi/144-make-a-module.html Цитата Ссылка на сообщение Поделиться на других сайтах
AnteFil 3 Опубликовано: 12 июня 2020 Рассказать Опубликовано: 12 июня 2020 (изменено) Автор 3 часа назад, alex32 сказал: Даже удивительно, что человек, пишущий модуль, совсем не может пользоваться поисковиками https://pafnuty.name/statyi/144-make-a-module.html Нечто подобное я читал для проверки написал вот такую конструкцию шаблон в main.tpl подключил так {include file="1.tpl"} //поясню как я понял логику $tpl->load_template( '1.tpl' ); //подключаем шаблон $text = 'Проверка шаблона'; //передаём даныне в переменную $tpl->set('{test}', $text); //передаём даныне в шаблон $tpl->compile('content'); //чё делает это не понял $tpl->result['content']; //вот этот элемент массива получилось вывести на печать в php $tpl->clear();//чё делает это не понял догадываюсь что закрывает подключение к шаблону //Но ни чего не получаеться в 1.tpl выводит пустой {test} //Сразу покажу как я пытался это в прикрутить $tpl->load_template( '1.tpl' ); while ($row = $db->get_row($sql)) { $tpl->set('{test}', $row['salary']); } $tpl->clear(); //Но ни чего не получаеться в 1.tpl выводит пустой {test} Изменено 12 июня 2020 пользователем AnteFil Цитата Ссылка на сообщение Поделиться на других сайтах
AnteFil 3 Опубликовано: 12 июня 2020 Рассказать Опубликовано: 12 июня 2020 (изменено) Автор Всё с этим вроде разобрался ))))) Ещё такой вопрос у меня страничка http://test1.ru/index.php?do=rab сейчас работает так как нужно но после работы модуля загружается контент с новостями DLE добро пожаловать и тд. Если я удаляю из main.tpl {content} то он перестаёт на других страничках грузиться, Как сделать так что бы на мой страничке {content} не загружался, а на других работал? Изменено 12 июня 2020 пользователем AnteFil Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.