Using php in drupal

Drupal 8. Внешние php файлы. Как подключать правильно? Или правильно не подключать вообще?

На сайте есть части на которых используется своя БД и свои php файлы. В старой версии сайта модержимое php файлов подгружалось в ноды через формат ввода с PHP обработчиком. Как посоветуете делать в новой версии?

Лучший ответ

Советую не делать так в новой версии.

Комментарии

Советую не делать так в новой версии.

А как правильно делать в новой версии? Как отобразить на сайте работу не-Drupal php файлов?

У многих людей сайт на одной платформе, а форум (и много чего другого) на другой.

В Drupal все принято реализовывать модулями.
Если необходимо подключение стороннего, чужого кода — его можно оформить в виде библиотеки, и подключить композером.

Дык некоторые Друпал считают сторонним кодом Композер — это как план Б.

Как я уже поэкспериментировал, php файлы в Drupal 8 подключаются, но не работают со своими БД. Что делать чтобы работали? Размещать их вне директории сайта? Тогда как подключать?

«Спрошу как надо — но во внимание не приму, сделаю по-своему. Чего мне там какое-то чужое время. «

По работе стороннего кода — задавайте вопросы его автору, если сами не осилите разобрать.

Т.е. если какая-то сторонняя программа вне папки сайта — это нормально. А показ ее работы на сайте может осуществляться только через Композер?

Упрощаю вопрос. Есть другой сайт который работает на поддомене. Есть ли простой вариант отобразить html файл этого сайта в ноде Drupal-а ?

т.е. Drupal дает php файлам общаться со своими БД-ами, только если эти php файлы внутри drupal-модулей?

Нет, но модули — это правильный подход

как еще можно? Модулей скопов и ифреймов для D8 увы не вижу.

С каких пор для того чтобы iframe вставить модуль нужен?

Если честно, бродил по продуктовому и думал: а нахрена для этого модуль?

Извините за тупой вопрос. Есть набор html php файлов, который работал на прошлой версии сайта со своей БД-й. У меня на Опенсервер это тоже работает (а главное php-файлы с паролями скачать можно). Залил это все на домен отдельный от Друпала — php не работает с БД.
Как сделать чтоб работало?
Никогда не строил свои ЦМС. Уже догадываюсь о причинах переделки всего сайта.

Если есть, скажем, форум на стороннем движке, кладём его в субдиректорию и говорим апачу или нжинксу, как обрабатывать страницы этой субдиректории. Друпал тут ни при чём. Он даже не должен затрагиваться при обработке таких страниц. Совершенно нормальная практика, классический пример — fast 404.

Я понимаю что Друпал ни при чем. Теперь точно ни при чем.

Хорошо, упрощу вопрос до предела. папка, в ней 2 файла html и php (в нем пароли к БД). Как обрабатывать страницы? Что сказать Nginx-у?

Это лучше у Бориса спросить, он по нжинксу спец))

А он ответит, что на этот вопрос невозможно ответить не глядя на запускаемое.

Спсибо за уделенное внимание!
Как -то все стало работать. При каких то других настройках сервера. Думаю более правильных. С проблемой разобрался. С композер — на будущее.
Какого Бориса вы имеете ввиду?

Извните, ошибся. Был тут Дубовский (с Белоруссии, а не с Радона). Борис, я вас все время с ним путал.

Нет ни чего плохого подключиться к drupal из своего скрипта для получения доступа к работе с ним. Свои скрипт может вообще быть не связан с сайтом и делать что то свое.
Делать это можно вот так

define ( ‘DRUPAL_DIR’ , ‘/home/www’ );
require_once DRUPAL_DIR . ‘/core/includes/database.inc’ ;
require_once DRUPAL_DIR . ‘/core/includes/schema.inc’ ;

$autoloader = require_once DRUPAL_DIR . ‘/autoload.php’ ;

$request = Request :: createFromGlobals ();

// Bootstrap drupal to different levels
$kernel = DrupalKernel :: createFromRequest ( $request , $autoloader , ‘prod’ );
$kernel -> boot ();
$kernel -> prepareLegacyRequest ( $request );

Для «своих скриптов» принято делать API.

Это зависит от того, что вы делаете, а не потому, что «принято»
Если у вас связка какой-то системы, которая живет в рамках одной машины в API нет необходимости.
А если оно понадобиться то его можно быстро реализовать. Отталкиваться нужно от задачи всегда.

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

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

На сайте есть части на которых используется своя БД

Конвертировать в друпальную

Спасибо Алексей, ты как всегда вовремя!
Там в соседней теме человек пилит строительную биржу на нескольких БД, можешь объяснить ему что и как?

Спасибо за на водку, обязательно поработаем.

Источник

Drupal 8/9 — PHP код на странице

Drupal 8

В drupal 8 и 9 выпилили возможность вставить PHP код на страницу. С одной стороны это правильно и безопасно, с другой стороны — иногда нужно. Для того чтобы вернуть возможность вставить PHP потребуется установить расширение:

drupal php

drupal php

Появляется новый текстовый формат «PHP-код»:

drupal php

Создаём страницу в этом формате:

drupal php

drupal php

Примечательно, что кроме PHP можно вставлять также любой HTML код, например тег , который текстовым форматом «Полный HTML» почему-то не поддерживается.

Теги

Похожие материалы

Drupal 9 — модуль Ludwig, ручная альтернатива Composer

Олег

Drupal 9

Выделяю время на обслуживание сайта, потом кучу статей на тему Drupal приходится писать. И людям помочь, и самому не забыть. Вашему вниманию представляется незаменимый в некоторых случаях модуль Ludwig.

Теги

Drupal 7 — compilation failed in video_filter.module

Олег

Drupal 7

После перехода на PHP 7 седьмой друпал стал жаловаться на модуль Video Filter: Warning: preg_match(): Compilation failed: invalid range in character class at offset 30 in _video_filter_process() (Line 175 of sites/all/modules/video_filter/video_filter.module)

Теги

Добавляем уведомления виджету комментариев «В контакте»

Олег

В контакте

Есть такая замечательная штука, виджет комментариев «В контакте». Но у него есть небольшой минус — нет возможности «из коробки» получать уведомления о новых комментариях. Есть блок, выводящий все комментария, но он показывает только сообщения первого уровня, вложенные ответы не видно. Добавим уведомления на почту при поступлении нового комментария.

Источник

How to Create A Custom Module in Drupal 8 using PHP

create custom module drupal 8

Drupal 8 is advanced in many ways to Drupal 7. Drupal 8 is a modular CMS (Content Management System). There is a module for each purpose. The need of the hour is that we want to create a custom module in Drupal 8 to suit our web project. Let us follow this drupal tutorial.

Creating Custom Module in Drupal 8 Step By Step

Before starting, decide whether you really want to create a custom module as you can find an existing module for your specific needs. Some useful ready-made drupal 8 modules are Captcha, Adsense, Google Analytics, PathAuto, SMTP and XMLSitemap. Modules in Drupal are equivalent to Plugins in WordPress.

Step 1: Drupal 8 has a modules folder in the root directory. Just check for it using an FTP Software like FileZilla Client. If you are testing on your PC, browse the root folder like WWW under Server Directory.

Step 2: Let us create a folder with name “mymodule” under module folder. Our custom module name is going to be mymodule.

Drupal 8 Module Folder Structure Screenshot

Step 3: Now Create a File named mymodule.info.yml inside mymodule folder and open the file a notepad or notepad++ editor. Do not forget the filename extension .info.yml. Write the following lines of code into mymodule.info.yml file:

name: My Custom Module type: module description: 'My Custom Module is for implementing Ads' package: Custom core: 8.x hidden: false

mymodule.info.yml is just an information file. It contains Module Name to be displayed on Extend Module Section of Drupal 8 Admin Menu. Try to add a meaningful description, so that other developers can understand.

Step 4: Create a new text file with name mymodule.module under mymodule folder. Write some code in it. We usually write hooks in this custom module. hook_form_alter is frequently used.

mymodule.module:

function logme() < \Drupal::logger('mymodule')->notice('logme called'); > //there is no ending ?> tag

Try restarting the server once or clear cache to see changes. Enable the module to start using it.

Drupal 8 Module Name Description display

Admin panel displaying Modules Installed in drupal 8

Congratulations on successfully creating your first Custom Module in Drupal 8 CMS.

Источник

Читайте также:  Java uri to file in jar
Оцените статью