Одно поле и вывод - Как?

Главные вкладки

Аватар пользователя kompospec kompospec 9 февраля 2022 в 20:58

Переношу сайт с 6-ки на 8-ку

http://russkiyslovar.ru/iz4bukv

Там есть: Форма, 1 поле и вывод результата после поиска в текстовом файле.

Как это правильно организовать в своём модуле на 8-ке?
Ведь ничего не нужно сохранять в БД.
Спасибо.

<form method="post">

Буквы:<br>
<input name= "bukvy" value="<?if (isset($_POST['bukvy'])) print htmlspecialchars($_POST['bukvy']); else print "болит"?>">
<input type="submit">
</form>

<br> <br>

<?
$b= $_POST['bukvy'];
if (isset($_POST['bukvy']) and $b != "" and iconv_strlen($b,'UTF-8') < 20){
$kb=4;

$r= preg_match("/[^А-ЯЁа-яё]/u", $b);
if ($r==1 or $r===FALSE){
print "Разрешаются только русские буквы";
}elseif($r==0){

$b2= str_repeat("[$b].*", $kb);
$kb+=2;

$file_handle = fopen("..........", "r");

while (!feof($file_handle)) {
   $line = fgets($file_handle);
if (strlen ($line) == $kb){
  $line = iconv('windows-1251', 'UTF-8', $line);
  if ( preg_match("/$b2/iu", $line)){
 
   echo $line;
}}

}
fclose($file_handle);

}}
?>

Лучший ответ

Аватар пользователя kompospec kompospec 10 февраля 2022 в 6:18

Я нашёл решение. Странно что мне в течении 3 месяцев никто это не предложил:

<?php
class VseController extends ControllerBase {

public function build() {

ob_start();
?>
Что угодно. Хоть Принт. Любой смешанный PHP-HTML код. Формы.
И вообще - всё
<?php

$mytab = ob_get_contents();
ob_end_clean();

return ['#markup' => \Drupal\Core\Render\Markup::create($mytab)];
}

Комментарии

Аватар пользователя kompospec kompospec 10 февраля 2022 в 6:18

Я нашёл решение. Странно что мне в течении 3 месяцев никто это не предложил:

<?php
class VseController extends ControllerBase {

public function build() {

ob_start();
?>
Что угодно. Хоть Принт. Любой смешанный PHP-HTML код. Формы.
И вообще - всё
<?php

$mytab = ob_get_contents();
ob_end_clean();

return ['#markup' => \Drupal\Core\Render\Markup::create($mytab)];
}

Аватар пользователя schnauss schnauss 10 февраля 2022 в 10:04

kompospec wrote: транно что мне в течении 3 месяцев никто это не предложил:

Тут просто нет таких же высококлассных специалистов вашего уровня. А раньше друпалеры были еще и специалистами по нейросетям

Аватар пользователя OldWarrior OldWarrior 10 февраля 2022 в 7:13
1

kompospec wrote: Я нашёл решение. Странно что мне в течении 3 месяцев никто это не предложил:

Одно поле и вывод - Как?
kompospec 9 февраля в 20:58

Мы в машине времени?

kompospec wrote:
...
public function build() {
ob_start();
...

Гениально, как всегда.
Легко, структуризовано, читаемо, переносимо.
Маэстро рвёт все шаблоны. Ждём новых перлов.

PS. Судя по всему, вы открыли для себя класс Markup со всеми преимуществами сваливания HTML-разметки в одну кучу.

Аватар пользователя kompospec kompospec 10 февраля 2022 в 7:54

Сейчас напишу генератор кучи ненужного предварительного кода, для собственного модуля, и у меня будет на 8-ке всё почти как на 7-ке. - Вставка PHP хоть куда и в хоть каком виде.
Ура.

Аватар пользователя kompospec kompospec 10 февраля 2022 в 7:57

OldWarrior wrote: вы открыли для себя класс Markup

Нет. Я не буду им пользоваться. Зачем?
Это ведь потом всё переделывается в HTML. А я сразу пишу на HTML

Аватар пользователя OldWarrior OldWarrior 10 февраля 2022 в 8:06
1

Да пишите как угодно. Вам можно.

Хотя на самом деле вышеприведённое "решение" - самое беспомощное и безответственное из всех возможных.

Аватар пользователя gun_dose gun_dose 10 февраля 2022 в 8:12
2

Чем хорош такой код, так это тем, что увидев его, сразу понятно, что не надо даже пытаться что-то исправить.

Аватар пользователя OldWarrior OldWarrior 10 февраля 2022 в 8:17
1

Так этим он и гениален. Совершенный лаконизм, нечего добавить и нечего убавить. Остаётся только черпать мудрость и учиться.

Аватар пользователя kompospec kompospec 10 февраля 2022 в 9:41

adano wrote:
Почему Друпал? Почему не вордпресс, джумла, битрикс?

Странный вопрос. Первый мой сайт на Друпале - в 2003 году
20 лет скоро как я - На Друпале

Аватар пользователя kompospec kompospec 10 февраля 2022 в 9:43

gun_dose wrote: Чем хорош такой код, так это тем, что увидев его, сразу понятно, что не надо даже пытаться что-то исправить.

Там нет кода. Это заготовка. Вы правда это не видите?

Аватар пользователя gun_dose gun_dose 10 февраля 2022 в 9:47
1

Я не в курсе, есть ли тут цензура, поэтому назвал то скопление букв, цифр, знаков препинания и спецсимволов кодом, чтобы не получить ненароком бан за непечатные слова.

Аватар пользователя kompospec kompospec 10 февраля 2022 в 9:49

gun_dose wrote:
Неужели вы не видите, что это не друпал? ©

Код в заглавии - не Друпал.
Ниже - Заготовка.

Вы это правда не видите? У вас какое образование?

Аватар пользователя OldWarrior OldWarrior 10 февраля 2022 в 11:31
1

kompospec wrote: Код в заглавии - не Друпал.
Ниже - Заготовка.

Я одного не могу понять: зачем вы тогда упрямо сюда приходите и публикуете свои поделки? Это у вас не для Друпала, то у вас тоже заготовки, там где-то вы просто так свой код напостили. Какой смысл всего этого, если каноны и паттерны вам неинтересны и не нужны?

Я иногда думаю, что наш маэстро Компоспец - тот ещё тролль. Однако смотрю на его сайт, на стиль общения и - нет: это таки блаженный. Будем милосердны, братья.

Аватар пользователя kompospec kompospec 10 февраля 2022 в 12:09

OldWarrior wrote: Я одного не могу понять: зачем вы тогда упрямо сюда приходите

Из 20-30 бестолковых сообщений - одно приводит к решению.

Аватар пользователя kompospec kompospec 10 февраля 2022 в 12:12

OldWarrior wrote: упрямо сюда приходите и публикуете свои поделки?

Не понятно. Вы ведь можете не заходить в мои темы и ничего не писать. Мне будет легче. Потому как вы - только флудите

Аватар пользователя OldWarrior OldWarrior 10 февраля 2022 в 12:25
1

kompospec wrote: Из 20-30 бестолковых сообщений - одно приводит к решению.

Больше похоже, что из 20-30 толковых подсказок вы выбираете одно наиболее простое и вдохновенно уродуете именно его. Критерии отбора при этом уже озвучены вами:

1. чтоб было мало строчек
2. чтоб было поменьше непонятных каркасных обвязок из API D8.
3. чтоб было настолько просто, что напоминало PHP-скриптики из примеров в мануалах на php.ru

На выходе - вуаля! - получаем несчастного уродца, которому настолько паршиво от собственного содержания, что он мечтает, чтобы его поскорее стёрли и забыли.

Аватар пользователя OldWarrior OldWarrior 10 февраля 2022 в 12:28
1

kompospec wrote: Мне будет легче. Потому как вы - только флудите

Хы. Я вообще-то помогал вам кодом и попутно пытался наставить вас на путь истинный, чадо. Обещаю больше не реагировать на ваши темы и вопросы. Потому как с вами всё понятно.