ФорумПрограммированиеPHP для идиотов → Ссылки на сайте

Ссылки на сайте

  • mario

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 11 апреля 2010 г. 17:25, спустя 1 час 50 минут 22 секунды


    mario, как по мне, то вполне нормальный подход у Абырвалга. Главное чтоб было юзабельно и корректно работало.
    я не сказал, что это плохой подход, и тем более что это не юзабельно….

    хм, а какие альтернативы?
    не знаю на сколько это "круто", корректно, но мне нравиться подход, когда я через интерфейс (в настройках страницы) могу указать какие модули я буду использовать и с каким параметрами. Т.е. при создании страницы есть так называемые fields (они прописываются в шаблоне)
    пример:
    <html>
    <head>
    <title></title>
    </head>
    <body>
    <div id=&quot;news&quot;>{field_1}</div>
    <div id=&quot;content&quot;>{field_0}</div>
    <div id=&quot;login&quot;>{field_2}</div>
    </body>
    </html>

    а потом при создании страницы, мы указываем какой шаблон будем использовать, и уже в этих самых field_n мы указываем какой модуль, и какой экшн мы будет использовать…
  • Troy

    Сообщения: 2533 Репутация: N Группа: Джедаи

    Spritz 11 апреля 2010 г. 20:53, спустя 3 часа 28 минут 3 секунды

    А мне не тот не тот способ не нравится, по мне это разные модули, контакты одно, статические страницы другое
  • mario

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 11 апреля 2010 г. 21:06, спустя 13 минут 2 секунды

    я про такое
    1. (47)
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 11 апреля 2010 г. 21:08, спустя 2 минуты 11 секунд


    я про такое

    это чо за хуета?)
    Сапожник без сапог
  • mario

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 11 апреля 2010 г. 21:14, спустя 5 минут 28 секунд



    я про такое

    это чо за хуета?)
    это показано на картинке, то что я пытался описать в своем предыдущем посте. :) {+++260+++} ЗЫ забыл добавить, кмс комерческая, не моя… :) я пока на пути к реализацию подобной фишки… но со своими замутами… :)
  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 13 апреля 2010 г. 13:26, спустя 1 день 16 часов 12 минут

    Доброй ночи. Для решения своей проблемы, т.е. разделение сккриптов и вывода данных из БД решил что мне смогут помоч шаблоны. Наткнулся вот на такаую статейку.
    http://spectator.ru/technology/php/easy_templates

    Кому не лень почитайте ее. выскажите свое мнение. На омй взгляд там довольно просто и элементарно но объективно рассудить не могу так как начинающий. Может быть не вижу последсвтий… так сказать подводных камней.. Может быть вот это &quot;Просто&quot; потом вырастет в огромное &quot;Сложно&quot;
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 13 апреля 2010 г. 13:39, спустя 12 минут 27 секунд

    smv, а прочитать самому и пересказать? тем более начинающему это будет полезно, сразу +10 експы получишь в пхп опыте
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 13 апреля 2010 г. 13:48, спустя 9 минут 10 секунд

    у, я когда-то ее тоже читал)
    используй Ъ-шаблонизаторы, Twig например
  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 13 апреля 2010 г. 21:28, спустя 7 часов 39 минут 54 секунды


    у, я когда-то ее тоже читал)


    ну и как? помогла она тебе?


    используй Ъ-шаблонизаторы, Twig например


    готовые варианты не хочется использовать…
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 13 апреля 2010 г. 23:10, спустя 1 час 42 минуты 33 секунды

    smv, нет, не помогла. Зря не хочешь использовать готовые решения
  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 6 мая 2010 г. 1:35, спустя 22 дня 2 часа 24 минуты

    Добрый день. Смастирили тут нечто похожее на шаблонизатор, но работает он не совсем так как надо. Помогите пожалуйста.

    Суть творения моего в следующем.

    Есть в БД табличка page

    id | url | title | content
    1 |/contacts |Контакты | Адреса, телефоны компании &lt;br> {forma}

    Обращаю внимани на столбец content. Там содержиться весь контент странички. На странице у меня есть форма обратной связи. Для того чтобы в БД не хранить php код, там есть такая строчка {forma}. Нужно это для того, что бы вместо этой записи подключать php скрипт.

    Делаю я это так:

    1. После того как сделал запрос к БД на выбор контента для соответствующей страницы, ищу в результате запроса фигурные скобки ({})

    preg_match_all(&#39;|[{]+[a-z]+[}]|&#39;, $row_page_content[&quot;content&quot;], $script_link);


    Результат такого поиска храниться в масиве $script_link.

    2. Дальше формирую массив в котором будут храниться указатели на скрипт который нужно подгружать, т.е. {forma} только без фигурных скобок

    for ($i=0; $i< count($script_link[0]); $i++) {
    $patterns_content_script[] = $script_link[0][$i];
    $replacements_content_script[] = @file_get_contents(eregi_replace(&quot;[{}]&quot;, &quot;&quot;, $script_link[0][$i]).&quot;.php&quot;);
    }


    $patterns_content_script[], $replacements_content_script[] - Это два массива исползуются позже, при замене указателя {forma} на скрипт Php

    $replacements_content_script[] = @file_get_contents(eregi_replace(&quot;[{}]&quot;, &quot;&quot;, $script_link[0][$i]).&quot;.php&quot;);
    - Вот тут я использую file_get_contents для вывода файла скрпта в строку для последующей замены в тексте. И формируется имя скрипта, т.е. указатель {forma} без скобок + приписываю расширение файла php

    3. Дальше вывожу сам контент с соответсующими заменами в тексте

    switch ($patterns_content_script[0]) {
    case FALSE:
    echo $row_page_content[&quot;content&quot;];
    break;
    case !FALSE:
    echo eregi_replace(&quot;[{}]&quot;, &quot;&quot;, preg_replace($patterns_content_script, $replacements_content_script, $row_page_content[&quot;content&quot;]));
    break;
    }


    Суть в следующем. если массив $patterns_content_script[0] пуст. Т.е. указателей {forma} не найдено, то выводим весь контент имеющийся в БД.
    Если массив $patterns_content_script[0] НЕ пуст, то заменяем указатели на нужный нам скрипт.

    Вот собственно и все. Все работает. И файлы со скриптами подключаются как надо… Но есть одно но. Содержимое этих файлов обрабатывается не так как надо. Т.е. скрипты интерпертируются при загрузке как обычный текст. Т.е. если в скрипте forma.php ,будет написано &lt;? echo &quot;test&quot;;?> то такой скрпт е выполняется… Ну тут то понятно что получаеется следующая конструкция &lt;? &lt;??> ?> . Если если в скрипте forma.php ,будет написано echo &quot;test&quot;;, то воспринимется как обычный текст.

    Можете подсказать как решить такую проблему?
  • Ewg777

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 6 мая 2010 г. 1:39, спустя 3 минуты 49 секунд

    switch ($patterns_content_script[0]) {
    case FALSE:
    echo $row_page_content[&quot;content&quot;];
    break;
    case !FALSE:
    echo eregi_replace(&quot;[{}]&quot;, &quot;&quot;, preg_replace($patterns_content_script, $replacements_content_script, $row_page_content[&quot;content&quot;]));
    break;
    }
    Может некорректно работать. Используйте !!!!!fAlSe и !!!!FaLsE.
  • Ewg777

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 6 мая 2010 г. 1:39, спустя 21 секунду

    switch ($patterns_content_script[0]) {
    case FALSE:
    echo $row_page_content[&quot;content&quot;];
    break;
    case !FALSE:
    echo eregi_replace(&quot;[{}]&quot;, &quot;&quot;, preg_replace($patterns_content_script, $replacements_content_script, $row_page_content[&quot;content&quot;]));
    break;
    }
    Может некорректно работать. Используйте !!!!!fAlSe и !!!!FaLsE.
  • Ewg777

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 6 мая 2010 г. 1:38, спустя 23 часа 58 минут 58 секунд

    switch ($patterns_content_script[0]) {
    case FALSE:
    echo $row_page_content[&quot;content&quot;];
    break;
    case !FALSE:
    echo eregi_replace(&quot;[{}]&quot;, &quot;&quot;, preg_replace($patterns_content_script, $replacements_content_script, $row_page_content[&quot;content&quot;]));
    break;
    }
    Может некорректно работать. Используйте !!!!!fAlSe и !!!!FaLsE.
  • Ewg777

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 6 мая 2010 г. 1:40, спустя 1 минуту 35 секунд

    switch ($patterns_content_script[0]) {
    case FALSE:
    echo $row_page_content[&quot;content&quot;];
    break;
    case !FALSE:
    echo eregi_replace(&quot;[{}]&quot;, &quot;&quot;, preg_replace($patterns_content_script, $replacements_content_script, $row_page_content[&quot;content&quot;]));
    break;
    }
    Может некорректно работать. Используйте !!!!!fAlSe и !!!!FaLsE.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!