Новости Joomla

Совет по Joomla: $db->getQuery(true) стал устаревшим

Совет по Joomla: $db->getQuery(true) стал устаревшим

👩‍💻 Совет по Joomla: $db->getQuery(true) стал устаревшим.Раньше при создании запросов в базу данных мы всегда получали объект запроса с помощью метода

getQuery(). Если передавался параметр
$new =
true, то получали новый запрос. Если без - последний.

use Joomla\CMS\Factory;$db = Factory::getContainer()->get('DatabaseDriver');$query = $db->getQuery(new: true);// и строим запрос
Под капот Joomla 4 вошёл Joomla Framework (PHP фреймворк а-ля Laravel, Yii и т.д.), а для Joomla 5 он обновился - версия 3.4.1 вышла 6 октября 2023г. В методе фреймворка есть примечание о том, что параметр
$new, который передавался в метод
getQuery() помечен как устаревший и будет удалён в версии фреймворка 4.0.
The parameter $new is deprecated and will be removed in 4.0, use %s::createQuery() instead.В Joomla 4 версия Joomla Framework была 2.x., в Joomla 5 - 3.x. Поэтому есть предположение, что с выходом Joomla 6 обновится и версия фреймворка - станет 4.0. Поэтому для получения объекта для новых запросов следует использовать метод
createQuery(). Он уже представлен в ядре и широко используется. При этом метод
getQuery() останется, но, скорее всего, будет выполнять функцию только геттера - получения текущего запроса.
@joomlafeed#joomla #php #разработка

0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 3104 Просмотров
*

Go-destroy

  • Захожу иногда
  • 221
  • 4 / 1
Всем привет! Ребят такая проблема, в директории Joomla использую стороний php скрипт для личных нужд, но совсем не хотелось бы что бы кто мог иметь к ниму доступ кроме меня, каким образом можно спрятать папку как от любопытных глаз так и от поисковиков!?
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Как спрятать отдельную папку!
« Ответ #1 : 25.06.2012, 02:39:20 »
в .php
Код: php
<?php
// No direct access.
defined('_JEXEC') or die;
?>
и в папку пустой index.html
+ в подписи ссылка на FAQ по роботс
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Как спрятать отдельную папку!
« Ответ #2 : 25.06.2012, 02:41:41 »
от листинга директории - размещаем в папке файл index.html с вот таким содержанием

Код
<html>
<body bgcolor="#FFFFFF">
</body>
</html>

от поисковиков - запрещаем индексацию в файле robots.txt

Цитировать
Disallow: /имявашейпапки/

ELLE, сторонний скрипт с таким кодом работать не будет - это запрет на работу всего без использования фреймворка Joomla. То есть, если идет прямое обращение к скрипту помимо Joomla - не станет скрипт работать.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Как спрятать отдельную папку!
« Ответ #3 : 25.06.2012, 02:47:42 »
да, если сторонний не будет работать.
*

Go-destroy

  • Захожу иногда
  • 221
  • 4 / 1
Re: Как спрятать отдельную папку!
« Ответ #4 : 25.06.2012, 02:49:59 »
Спасибо за опретивные ответы!
ELLE, папку которую хочу скрыть ни как не относиться к Joomla! данный код не поможет)
Вот я пока искал ответы нарывался на такие статейки что можно запритить как физичиский доступ так и визуальный при помощи файла .htaccess что нибудь знаете об этом?
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Как спрятать отдельную папку!
« Ответ #5 : 25.06.2012, 10:12:02 »
Зачем заморачиваться с .htaccess - написанного выше вполне достаточно. Но, если уж очень хочется...


В папке создаем файл .htaccess

Запрещаем просмотр содержимого папки

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

#Запрещаем просмотр содержимого папки
Options All -Indexes


Запрещаем доступ для всех, кроме указанных IP-адресов

Если по какой-либо причине, вы хотите запретить всем или разрешить только отдельным IP-адресам доступ к вашему сайту — добавьте этот код в ваш .htaccess-файл:
#Запрещаем доступ для всех, кроме указанных IP-адресов

ErrorDocument 403 http://www.domainname.com
Order deny,allow
Deny from all
Allow from 124.34.48.165
Allow from 102.54.68.123

ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Как спрятать отдельную папку!
« Ответ #6 : 25.06.2012, 11:08:12 »
Объясните точнее, что вам нужно.
Нужен ли вам веб-доступ непосредственно к файлу (то есть по адресу типа http://site.ru/myscript.php) или нет(тоесть скрипт к примеру вызывается через cron).
И что вы понимаете под "спрятать папку"?

Если вам нужен вебдоступ, но хотите чтобы файл был недоступен для других - для этого есть директива в htaccess:
Код
<Files myscript.php>
  Order deny,allow
  Deny from all
  Allow from 62.148.3.4
</Files>
в которой вы указываете свой IP-адрес.

Если вам вообще не нужен веб-доступ, пропишите

Код
<Files myscript.php>
order allow,deny
deny from all
</Files>
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
Галерея (JoomGallery) у меня в отдельной категории генерирует ссылки на файлы index-xx-001.php, которые в директории
Код
/images/pano-360/
- в результате имею вывод через iframe на странице галереи Joomla.

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


Код
<?php
// No direct access.
defined('_JEXEC') or die;
?>

В начале index-001.php дает яркобелый экран.
*

xpank

  • Захожу иногда
  • 448
  • 41 / 0
Re: Как спрятать отдельную папку!
« Ответ #8 : 23.11.2019, 16:55:57 »
Этот код должен блокировать внешние запросы, исходящие не от сайта. Прямого доступа не будет, работает например при ajax.

Код
function reset_url($url) {
    $value = str_replace ( "http://", "", $url );
    $value = str_replace ( "https://", "", $value );
    $value = str_replace ( "www.", "", $value );
    $value = explode ( "/", $value );
    $value = reset ( $value );
    return $value;
}
    $_SERVER['HTTP_REFERER'] = reset_url ( $_SERVER['HTTP_REFERER'] );
    $_SERVER['HTTP_HOST'] = reset_url ( $_SERVER['HTTP_HOST'] );

    if ($_SERVER['HTTP_HOST'] != $_SERVER['HTTP_REFERER']) {
        @header ( 'Location: ' . $config['http_home_url'] );
        die ( "Access denied!<br /><br />Please visit <a href=\"{$config['http_home_url']}\">{$config['http_home_url']}</a>" );
    }
Если совсем свой скрипт, например ftp клиент, в папке, который хочется скрыть, я бы просто навесил с помощью .htaccess пароль на папку или доступ с определенного ip.
« Последнее редактирование: 23.11.2019, 17:07:56 от xpank »
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
Re: Как спрятать отдельную папку!
« Ответ #9 : 23.11.2019, 20:38:12 »
Работает!
Код
Access denied!

Please visit

Только
Код
<a href=\"{$config['http_home_url']}\">{$config['http_home_url']}
в ссылку на сайт не преобразовало, но тут я пропишу явно ссылку на категорию галереи, для которой скрипт.

Круто! *DRINK*

Мне папку закрывать не надо - там файлы, вызов которых должен осуществляться только из галереи или сайта.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться