И снова php

Тема в разделе "Thunder 3.X", создана пользователем ddn128, 10 май 2017.

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Приветствую. В всязи с ситуацией на рынке валют, демпнгую))

    Всего 7 дней скидка 30% "для своих":

    Из Новостей на 13 августа 2018, у меня:

    Бесплатный дорген AttoGen

    MassSiteProxy 1х. Скриипт массового копирования сайтов > MassSiteProxy 1.06. Куча новых Фишек

    CPA GEN 1х. Скрипт генерации белых дорвеев подарю 2 красивых шаблона новым клиентам

    Thunder 3.x Генератор дорвеев > Новые отзывы

    Скрипт безлимитного переводчика

    Скрипт купонного сайта на Wordpress

    Промо коды пачка на Всех))) Действительны всего 7 дней.

    E6696751CFD64F82
    23B34C0DFD234071
    494676AF930746E2
    61333A5E926F4AF2
    A2C5D28D9E1647E2
    3177B1018BF244ED
    A0027E48A18045D5
    33247242204D4BC0
    CF432FC5AE894BBA
    DE80241C027B44DB
    F4346CBB0AE94C14
    A10DAB0667844775

    Большая просьба, написать, кто какой ипользовал

    Партнерская программа для блогеров-дорвейщиков - до 30% с продажи.

  1. ddn128

    ddn128 Опытный Пользователь

    31 дек 2015
    509
    233
    Мужской
    #1 ddn128, 10 май 2017
    Последнее редактирование: 10 май 2017
    Собственно есть 2 вопроса\проблемы:

    1. есть некот. php ф-ции (или как они там называются) , которые не работают. Например

    Код:
    {% set pma = php_preg_match_all("/.+/",desc,descarray) %}
    
    и др. вариации с php_preg_match_all вызывают ошибку:

    Такое же вызывают и др. например php_require_once() (о нём как раз 2-й вопрос) и некоторые другие.
    В принципе с preg_match_all() я вопрос решил дописыванием плаг.
    Код:
    public function Reqq($file = null) {   
        require_once($file);
        return array();
        }
    ХЗ правильно или нет с точки зрения "говнокодинга" (я тот ещё спец :( ) но в принципе работает.

    Но вопрос не в этом - как-то не оч. феншуйно такие костыли дописывать на каждый чих :( . При каждом апе надо из переносить.
    Можно ли сделать какой-то 1 универс. код (по аналогии с php_ ), типо php2_

    2. В общем "методом тыка" вычислил, что в шаб можно инклюдить php файл в котором можно выполнять код и возвращать его в шаб уже обработанным, но ...

    возникает п.#1 - если прописывать php_include, то та же ашипка
    Впхнул в плаг. код

    Код:
    public function Reqq($file = null) {
       
        require_once($file);
        return array();
        }
    Чуйствую, что не всё там правильно - но робит. И вот тут возникает следующая проблема:
    В этот инклюд не передаются переменные :(
    т.е. если писать
    Код:
    {% set test = req(settings.doc_root ~ '/templates/public/'~settings.view.public.template~'/test.php') %}
    код в test.php выполнится и выведется в шабе, но передать значения в test.php не получаецца как и получить их в шаб тоже.

    если написать:
    Код:
    {% set test = req(settings.doc_root ~ '/templates/public/'~settings.view.public.template~'/test.php?param=value') %}
    то ошибка
    on line 63 - это код плагина require_once($file);
    В общем как-то так :(
    Резюме:
    как сделать универс. плаг для "ошибочных" (php_) ф-ций
    или
    как сделать (или переделать\доделать) плаг для require()
    или
    как передать параметры (массивы и переменные) в php файл (и желательно получить обратно в виде переменных массивов)
    ???

    P.S. варики с формами и инпутами не очень, т.к. они будут "светиться" в html, а это лишнее паливо

    P.P.S. небольшой лайфхак - если вы наговнокодили уже 100500 строк, то можно разнести куски кода в разные файлы и потом подключить их в "конечном"
    {% include 'code1.html' %}

    Т.е. есть шаб главной (например) в неё туева хуча кода

    Чтобы упростить читабельность можно в коде home.html написать например код задания переменных
    Код:
    {% set kwd = 'скачать '~keyword %}


    а код парсинга и\или вывода или чё хотите вынести в файл snip.html

    Код:
    {% set snippets = google_snippets(kwd,10) %}
    {% if snippets is empty %}
    {% set snippets = bing_snippets(kwd) %}
    {% elseif snippets is empty %}
    {% set snippets = vk_snippets(kwd) %}
    {% elseif snippets is empty %}
    {% set snippets = duck_snippets(kwd,'ru') %}
    {% elseif snippets is empty %}
    {% set snippets = yahoo_snippets(kwd,'ru') %}
    {% else %}  
    {% set snippets = snippets(kwd,'ru') %}
    {% endif %}
    
    <div class="content">
    <div class="container sitecontainer bgw">
    <div class="row">
    <div class="col-md-9 col-sm-12">
    {% for snip in snippets %}
    <p>{{snip.description}}</p>
    {% endfor %}
    </div></div></div></div>
    


    Получится "разгруженный" home.html:

    какой-то код ...
    {% set kwd = 'скачать '~keyword %}
    {% include 'snip.html' %}
    и дальше код ...
     
  2. amness

    amness Активный Участник

    11 апр 2016
    251
    86
    Мужской
    Код:
    {% set param = value %}
    {% set test = req(settings.doc_root ~ '/templates/public/'~settings.view.public.template~'/test.php', param) %}
    
    Код:
    public function Reqq($file = null, $param) {
    $peremennaya_v_scripte_file=$param;
    require_once($file);
    return array();
    }
    
     
    Shtrix1, Firestarter и ddn128 нравится это.
  3. ddn128

    ddn128 Опытный Пользователь

    31 дек 2015
    509
    233
    Мужской
    Адлично. Спасибо, но есть 2 пичальки
    1. массив в php не передаётся (только переменная, что логично). Можно ли как-то передать массив?
    2. обратно в шаб переменные не передаются, т.е. приходит
    ["test"]=>
    array(0) {
    }
    Оно то конечно не критично можно вывести и через echo в php. но как-то не оч. удобно, особенно если неск. переменных
    И 2 вопроса\уточнения
    1. $peremennaya_v_scripte_file=$param; - это нужно вобще? Если да, то где использ. peremennaya_v_scripte_file? Закоммент. - и робит без него
    2. чтобы передать 2 или больше переменных надо писать так? - ( public function RequireMy($file = null, $param, $param2) или можно как-то передать их оптом?
    2.1 дописал = null ($file = null, $param = null, $param2 = null) , т.к. если какая-то из переменных пустая то выводит ошибку:

    Notice: Undefined variable: param2 ...
     
  4. ddn128

    ddn128 Опытный Пользователь

    31 дек 2015
    509
    233
    Мужской
    #4 ddn128, 11 май 2017
    Последнее редактирование: 11 май 2017
    P.S. опытным путём вычислил - можно передать неск. переменных из twig в php

    Код:
    {% set param = [value, value2, value3] %}
    и в php уже разруливать по номерам, и массив twig тоже передаётся (оказалось я передавал пустой :( )
    остался только вопрос с обратной передачей. Т.е. в test
    P.P.S. йу-ху-ху
    вот так передаёт абратно

    Код:
    public function RequireMy($file = null, $param = null) {
    require_once($file);
    return $param;
    }
     
  5. amness

    amness Активный Участник

    11 апр 2016
    251
    86
    Мужской
    Не, небязательно, чисто для наглядности написал и не понятно было какой код в скрипте у тебя.
     
    ddn128 нравится это.
  6. ddn128

    ddn128 Опытный Пользователь

    31 дек 2015
    509
    233
    Мужской
    В общем вот такая "беспаливная" стата получается (без всяких счётчикофф и кодов в html) - https://drive.google.com/open?id=1K4mP5wBk1LxUn5faw1_mjN-fAOg7QjxW5Deo3U_FGoI

    P.S. домен перевернул, чтобы параники не нервничали (слыхал не раз теорию, что гугл смотрит и Онализирует таблицы :) )
     

Поделиться этой страницей