Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> замена php кода подскажите идею подробно внутри... 
:(
    Опции темы
Sanchezzz
  Дата 11.9.2008, 13:09 (ссылка)   | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Добрый день есть код в php странице

Код


$MAIN = new Main();

...

$MAIN->initcomponent('menu_l2', array ('template'=> 'default' , 'typemenu' => 'menu1')); 


Делаю интерфей для замены параметров столкнулся на том как заменить в пхп файле параметры компонента получить массив параметров не проблема но как заменить их потом и пересохранить на мои в файле не знаю просто не предусмотрел имя компонента... 
хочется без него все реализовать... 

У кого есть идеи?




--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Sunvas
Дата 11.9.2008, 13:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 8
Всего: 89



Sanchezzz, рекомендую прочесть еще раз, что сам написал и сформирулировать вопрос более грамотно, учитывая морфологию русского языка.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Djinn
Дата 12.9.2008, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 250
Регистрация: 18.5.2007

Репутация: 1
Всего: 1



Цитата(Sunvas @ 11.9.2008,  13:55)
Sanchezzz, рекомендую прочесть еще раз, что сам написал и сформирулировать вопрос более грамотно, учитывая морфологию русского языка.

Та да, не плохая идея... Sanchezzz, ты хочешь сохранить переменную в файл чтоли ? (массив).. или что тебе надо то ?
PM MAIL   Вверх
lukas
Дата 12.9.2008, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Sanchezzz, используй глобальный массив $GLOBALS... 


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Sanchezzz
Дата 12.9.2008, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



я хочю сделать интерфейс для замены параметров в моем комопненте вот только не знаю как отыскать комопнент.

комопоненты идут так 

Код

$MAIN->initcomponent('menu_l2', array ('template'=> 'default' , 'typemenu' => 'menu1'));
 
$MAIN->initcomponent('menu_l2', array ('template'=> 'default2' , 'typemenu' => 'menu1'));
 
$MAIN->initcomponent('menu_l2', array ('template'=> 'default2' , 'typemenu' => 'menu3'));

$MAIN->initcomponent('forum', array ('template'=> 'default' , 'typeforum' => 'forum1')); 


меняются только параметры. 

Дальше я планирую сделать форму для замены параметров компоненты на странице. Вот только проблема с отысканием компонента.
на странице. Не знаю как реализовать, есть идеи насчет уникальности?

Цитата

Sanchezzz, используй глобальный массив $GLOBALS...  


От этого я отказался сразу.
Класс  в глобалс как-то не прикалывает потом цмс много мб жрать будет... 
Все просто один класс подключает другой класс который работает внутри первого класса и только потом выводит данные в готовом шаблоне.







--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
lukas
Дата 12.9.2008, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Sanchezzz, хех... наоборот все известные cms - ки используют $GLOBALS для своих целей (по крайней мере 3-4 основных класса в глобалс храниться), да и тем более я не думаю что ссылки на методы растрачивают так много места... 


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
solenko
Дата 12.9.2008, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



lukas, а вы поняли чего хочет Sanchezzz? Может объясните вы, раз у ж у нег не получается?


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Sanchezzz
  Дата 12.9.2008, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Я хочу идею как найти компонент на странице + идею насчет уникальности. А не решение... 

lukas ну я планирую улажится в 12-15мб. 
Зачем мне глобалс для одного класса который подключает другие классы(n-колич)



--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
solenko
Дата 12.9.2008, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Sanchezzz, начнем с того, что на странице не сушествует компонетов. Страница это html. Так где вам нужно найти этот самый компонент?


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Sanchezzz
  Дата 12.9.2008, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Уж не знаю где конечно в php странице(скрипте). 


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Sunvas
Дата 12.9.2008, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 8
Всего: 89



Цитата(Sanchezzz @  12.9.2008,  11:55 Найти цитируемый пост)
я хочю сделать интерфейс для замены параметров в моем комопненте вот только не знаю как отыскать комопнент.

Что значит "интерфейс"? 
Код

interface MyInterFace
{
    public function Func1();
    public function Func2($var1);

}

Так что-ли?

И все-равно задача как-то не понятна.  smile  Хоть кто-то понял о чем речь?


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Sanchezzz
Дата 12.9.2008, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



 smile
Цитата

interface MyInterFace

Ничего писать не нужно.
Графический интерфейс для смены параметров я и сам сделаю...

Цитата

Я хочу идею как найти компонент на странице + идею насчет уникальности. А не решение... 


Кто как реализовал поиск и замену параметров. (конструкция копмонента выше. ) в php скрипте.



--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
gta4kv
Дата 12.9.2008, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Что нужно автору - понятно. Тока вот как это реализовать...

Я думаю лучше всего будет, как раз таки:

Цитата

не предусмотрел имя компонента... 

править эту часть CMS, и делать что бы имя компонента тоже сохранялось. 
Это единственное не извращённое решение которое я вижу.  smile (хотя.. дада.. interface тоже решение)

К извращениям и моветону отнесу $GLOBALS.

Это сообщение отредактировал(а) gta4kv - 12.9.2008, 14:56
PM MAIL   Вверх
solenko
Дата 12.9.2008, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Цитата(gta4kv @  12.9.2008,  13:38 Найти цитируемый пост)
Что нужно автору - понятно. Тока вот как это реализовать...

А не расскажите что имеенно? А то интерестно же, а сам я понять так и не смог


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
skyboy
Дата 12.9.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Sanchezzz, тебе не надо редактировать PHP файл, чтоб заменить значения параметров вызова другими. НЕ НАДО! 
параметры либо хранятся в БД(как ДО редактирования, так и после), либо в конфигурационном файле - отдельном файле, который даже очистить полностью можно, система работать не перестанет.
Тогда вопрос замены значения параметров сводится либо к работе с базой, либо к работе с текстовым файлом простой структуры. Так же при редактировании РНР-кода РНР-кодом ты вполне можешь получить в итоге неработающую систему.
2ВСЕ: Ребят, ему надо было, чтоб при редактировании параметров через админку менялся РНР-код некоего модуля с учетом изменений.
Sunvas, видишь, он даже не знает, что такое 
Цитата(Sunvas @  12.9.2008,  12:29 Найти цитируемый пост)
interface MyInterFace

Думает, что это GUI. Так что твое предположение слишком крутое smile

M
skyboy
Ничего тут архисложного нет. Тема перенесена из "РНР: Для профи"

PM MAIL   Вверх
lukas
Дата 12.9.2008, 15:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



кажется я понял человека... ))... 

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


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
skyboy
Дата 12.9.2008, 17:31 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(lukas @  12.9.2008,  14:35 Найти цитируемый пост)
а затем они сохраняются в php файле...

зачем? зачем тогда БД и конфигурационные файлы, если можно отредактировать РНР и сохранить? 
PM MAIL   Вверх
Nigel
Дата 14.9.2008, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: 7
Всего: 19



skyboy, ну это зависит от того, как спроектируешь)
пример из битрикса
Код

$APPLICATION->IncludeComponent(
    "bitrix:news",
    ".default",
    Array(
        "SEF_MODE" => "Y", 
        "IBLOCK_TYPE" => "news", 
        "IBLOCK_ID" => "1", 
        "NEWS_COUNT" => "3", 
        "USE_SEARCH" => "N", 
        "USE_RSS" => "Y", 
        "USE_RATING" => "N", 
        "USE_CATEGORIES" => "N", 
        "USE_REVIEW" => "N", 
        "USE_FILTER" => "N", 
        "SORT_BY1" => "ACTIVE_FROM", 
        "SORT_ORDER1" => "DESC", 
        "SORT_BY2" => "SORT", 
        "SORT_ORDER2" => "ASC", 
        "PREVIEW_TRUNCATE_LEN" => "0", 
        "LIST_ACTIVE_DATE_FORMAT" => "d.m.Y", 
        "LIST_FIELD_CODE" => Array("",""), 
        "LIST_PROPERTY_CODE" => Array("",""), 
        "HIDE_LINK_WHEN_NO_DETAIL" => "N", 
        "META_KEYWORDS" => "KEYWORDS", 
        "META_DESCRIPTION" => "DESCRIPTION", 
        "DETAIL_ACTIVE_DATE_FORMAT" => "d.m.Y", 
        "DETAIL_FIELD_CODE" => Array("",""), 
        "DETAIL_PROPERTY_CODE" => Array("SOURCE","",""), 
        "DETAIL_DISPLAY_TOP_PAGER" => "N", 
        "DETAIL_DISPLAY_BOTTOM_PAGER" => "Y", 
        "DETAIL_PAGER_TITLE" => "Страница", 
        "DETAIL_PAGER_TEMPLATE" => "", 
        "DISPLAY_PANEL" => "Y", 
        "SET_TITLE" => "Y", 
        "INCLUDE_IBLOCK_INTO_CHAIN" => "N", 
        "ADD_SECTIONS_CHAIN" => "Y", 
        "USE_PERMISSIONS" => "N", 
        "CACHE_TYPE" => "A", 
        "CACHE_TIME" => "3600", 
        "CACHE_FILTER" => "N", 
        "DISPLAY_TOP_PAGER" => "N", 
        "DISPLAY_BOTTOM_PAGER" => "Y", 
        "PAGER_TITLE" => "Новости", 
        "PAGER_SHOW_ALWAYS" => "N", 
        "PAGER_TEMPLATE" => "", 
        "PAGER_DESC_NUMBERING" => "Y", 
        "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000", 
        "NUM_NEWS" => "20", 
        "NUM_DAYS" => "360", 
        "YANDEX" => "N", 
        "SEF_FOLDER" => "/news/", 
        "SEF_URL_TEMPLATES" => Array(
            "news" => "",
            "section" => "",
            "detail" => "#ELEMENT_ID#/",
            "rss" => "rss/",
            "search" => "search/"
        ),
        "VARIABLE_ALIASES" => Array(
            "news" => Array(),
            "section" => Array(),
            "detail" => Array(),
            "rss" => Array(),
            "search" => Array(),
        )
    )
);

Как видно, различные настройки прямо в файле, который и выводит соответсвующую инфу, в данном случае новости.
PM MAIL   Вверх
Sanchezzz
Дата 15.9.2008, 07:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



lukas в точку попал.  
Цитата

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


Nigel тоже попал в точку с примером. Это нечто похоже на компоненты битрикса только без использования Глобалс и до безобразия упрошены. 

------------

я думал на выходных насчет такой конструкции: в главном модуле сделать переменную куда будут заносится компоненты которые вызываются на странице (php скрипте). то есть колич вызванных компонентов в саму функцию дописать следующие:

Код

class MAIN {
var arrComponent;

function initcomponent($typecomponent, $name , $parms){
$typecomponent = trim($typecomponent,' ');
$this->arrComponent++; //Прибавляем ИД 
$parms['ID_COMPONENT']=$this->arrComponent; //Добавляем его к массиву параметров.
 if(is_string($typecomponent) and $typecomponent!=''){
//... 
 }
}


Далее с толкнулся с парсером... нужно найти такую контрукцию 
Цитата

<? $MAIN->initcomponent('forum', array ('template'=> 'default' , 'typeforum' => 'forum1'),'ID_COMPONENT'=>0 ); ?>

Поможете со скриптом ?

Код

<b>ЭТО тест файл</b><br>Первый комопнент
<? $MAIN->initcomponent('forum', array ('template'=> 'default' , 'typeforum' => 'forum1','ID_COMPONENT'=>0)); ?>
<br>Второй комопнент
<? $MAIN->initcomponent('forum', array ('template'=> 'default' , 'typeforum' => 'forum5','ID_COMPONENT'=>1)); ?>


Парсер должен пробежаться по странице() если находит "<?" смотрит детально от и до завершения тега "?>"
в нутри тегов ищит "$MAIN->initcomponent(" если нашел то идет дальше находит array ('template'=> выдерет его от и до в отдельную переменную после чего смотрит на наличие 'ID_COMPONENT'=> если есть то вырезает до ) далее проверяем с номером компонента которого мы искали если совпадает то выдаем весь массив параметров. Ну если нечего не находит то идет дальше до конца документа.

Парсер должен выдать массив параметров комопнента. C меня + каждому кто поможет.

Это сообщение отредактировал(а) Sanchezzz - 17.9.2008, 07:00


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1158 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.