| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > замена php кода подскажите идею подробно внутри... |
| Автор: Sanchezzz 11.9.2008, 13:09 | ||
Добрый день есть код в php странице
Делаю интерфей для замены параметров столкнулся на том как заменить в пхп файле параметры компонента получить массив параметров не проблема но как заменить их потом и пересохранить на мои в файле не знаю просто не предусмотрел имя компонента... хочется без него все реализовать... У кого есть идеи? |
| Автор: Sunvas 11.9.2008, 13:55 |
| Sanchezzz, рекомендую прочесть еще раз, что сам написал и сформирулировать вопрос более грамотно, учитывая морфологию русского языка. |
| Автор: Djinn 12.9.2008, 08:59 | ||
Та да, не плохая идея... Sanchezzz, ты хочешь сохранить переменную в файл чтоли ? (массив).. или что тебе надо то ? |
| Автор: lukas 12.9.2008, 09:16 |
| Sanchezzz, используй глобальный массив $GLOBALS... |
| Автор: Sanchezzz 12.9.2008, 11:55 | ||||
| я хочю сделать интерфейс для замены параметров в моем комопненте вот только не знаю как отыскать комопнент. комопоненты идут так
меняются только параметры. Дальше я планирую сделать форму для замены параметров компоненты на странице. Вот только проблема с отысканием компонента. на странице. Не знаю как реализовать, есть идеи насчет уникальности?
От этого я отказался сразу. Класс в глобалс как-то не прикалывает потом цмс много мб жрать будет... Все просто один класс подключает другой класс который работает внутри первого класса и только потом выводит данные в готовом шаблоне. |
| Автор: lukas 12.9.2008, 11:58 |
| Sanchezzz, хех... наоборот все известные cms - ки используют $GLOBALS для своих целей (по крайней мере 3-4 основных класса в глобалс храниться), да и тем более я не думаю что ссылки на методы растрачивают так много места... |
| Автор: solenko 12.9.2008, 12:03 |
| lukas, а вы поняли чего хочет Sanchezzz? Может объясните вы, раз у ж у нег не получается? |
| Автор: Sanchezzz 12.9.2008, 12:13 |
| Я хочу идею как найти компонент на странице + идею насчет уникальности. А не решение... lukas ну я планирую улажится в 12-15мб. Зачем мне глобалс для одного класса который подключает другие классы(n-колич) |
| Автор: solenko 12.9.2008, 12:18 |
| Sanchezzz, начнем с того, что на странице не сушествует компонетов. Страница это html. Так где вам нужно найти этот самый компонент? |
| Автор: Sanchezzz 12.9.2008, 12:24 |
| Уж не знаю где конечно в php странице(скрипте). |
| Автор: Sanchezzz 12.9.2008, 14:07 | ||||
Ничего писать не нужно. Графический интерфейс для смены параметров я и сам сделаю...
Кто как реализовал поиск и замену параметров. (конструкция копмонента выше. ) в php скрипте. |
| Автор: gta4kv 12.9.2008, 14:38 | ||
| Что нужно автору - понятно. Тока вот как это реализовать... Я думаю лучше всего будет, как раз таки:
править эту часть CMS, и делать что бы имя компонента тоже сохранялось. Это единственное не извращённое решение которое я вижу. К извращениям и моветону отнесу $GLOBALS. |
| Автор: solenko 12.9.2008, 14:49 |
А не расскажите что имеенно? А то интерестно же, а сам я понять так и не смог |
| Автор: skyboy 12.9.2008, 14:51 | ||
| Sanchezzz, тебе не надо редактировать PHP файл, чтоб заменить значения параметров вызова другими. НЕ НАДО! параметры либо хранятся в БД(как ДО редактирования, так и после), либо в конфигурационном файле - отдельном файле, который даже очистить полностью можно, система работать не перестанет. Тогда вопрос замены значения параметров сводится либо к работе с базой, либо к работе с текстовым файлом простой структуры. Так же при редактировании РНР-кода РНР-кодом ты вполне можешь получить в итоге неработающую систему. 2ВСЕ: Ребят, ему надо было, чтоб при редактировании параметров через админку менялся РНР-код некоего модуля с учетом изменений. Sunvas, видишь, он даже не знает, что такое Думает, что это GUI. Так что твое предположение слишком крутое
|
| Автор: lukas 12.9.2008, 15:35 |
| кажется я понял человека... ))... Это что-то типа, админ заходит на сайт, там где вставленные компоненты есть кнопочки редактирования параметров компонента, если он нажимает на нее открывается окно с редактирование их, а затем они сохраняются в php файле... а как найти в php файле где вставлен этот компонент... ? я не знаю.... но я такое уже видел... это в полне реально... нужно разбираться... |
| Автор: skyboy 12.9.2008, 17:31 |
зачем? зачем тогда БД и конфигурационные файлы, если можно отредактировать РНР и сохранить? |
| Автор: Nigel 14.9.2008, 14:39 | ||
| skyboy, ну это зависит от того, как спроектируешь) пример из битрикса
Как видно, различные настройки прямо в файле, который и выводит соответсвующую инфу, в данном случае новости. |
| Автор: Sanchezzz 15.9.2008, 07:30 | ||||||||
lukas в точку попал.
Nigel тоже попал в точку с примером. Это нечто похоже на компоненты битрикса только без использования Глобалс и до безобразия упрошены. ------------ я думал на выходных насчет такой конструкции: в главном модуле сделать переменную куда будут заносится компоненты которые вызываются на странице (php скрипте). то есть колич вызванных компонентов в саму функцию дописать следующие:
Далее с толкнулся с парсером... нужно найти такую контрукцию
Поможете со скриптом ?
Парсер должен пробежаться по странице() если находит "<?" смотрит детально от и до завершения тега "?>" в нутри тегов ищит "$MAIN->initcomponent(" если нашел то идет дальше находит array ('template'=> выдерет его от и до в отдельную переменную после чего смотрит на наличие 'ID_COMPONENT'=> если есть то вырезает до ) далее проверяем с номером компонента которого мы искали если совпадает то выдаем весь массив параметров. Ну если нечего не находит то идет дальше до конца документа. Парсер должен выдать массив параметров комопнента. C меня + каждому кто поможет. |