А с птичкой знакомы?
Parser _________________ Моя твоя понимать, когда ты понятно писать! *** STARGATE SG1 |
и чо? _________________ Ин дер гросен фамилие нихт клювен клац-клац |
Лано.... Проехали... _________________ Моя твоя понимать, когда ты понятно писать! *** STARGATE SG1 |
_________________ Скажи мне чей Крым, и я скажу кто ты. |
Будем смайлами обмениватись...
Али по теме дискутировать? Цитата Parser — это технология создания сайтов с помощью простого языка. Он немного сложнее HTML, но не требует особенного умения программировать. Parser начал создаваться в Студии Лебедева в 1997 году. Сегодня подавляющее большинство сайтов, создаваемых Студией Лебедева, делаются с его помощью.Цитата Язык специально спроектирован и оптимизирован для того, чтобы было удобно создавать хорошие сайты. Работа с формами, cookies, табличными файлами, базами данных и XML — часть языка, а модульность языка позволяет легко наращивать функциональность.Цитата PHP — это язык программирования, требующий соответствующей подготовки. На Parser могут работать далеко не профессиональные программисты. Parser именно тем и хорош, что позволяет простым смертным создавать и поддерживать сложные динамические сайты без больших затрат времени.Цитата Parser в известном смысле — макроязык, в нём нет оператора print; весь текст, набранный в исходном файле, суть большой оператор print. Конструкции Parser являются погруженными в текст.
Получается, что вы не пишете программу, которая выводит текст — наоборот, в имеющийся текст вы добавляете логику, ^if(условие){действие}, и организацию, блоки(методы), на которые вы разбиваете HTML-код: @header[] ... @footer[] ... @navigation[] ... @body[] ... _________________ Моя твоя понимать, когда ты понятно писать! *** STARGATE SG1 Последний раз редактировалось: Mikhajlo (2007.12.05 22:45.02), всего редактировалось 1 раз |
чуш _________________ накапливаю джедайскую силу http://booking.com/ http://bookingb2b.com/ http://www.aicgroup.biz http://www.gta-travel.com/en/home |
Mikhajlo писал(а): по теме дискутировать? где дискуссия? _________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice писал(а): и чо?междометье, мне каца, не компетентНО... Лано... Тема дискуссии: ЧТО ВЫ ДУМАЕТЕ О ТЕХНОЛОГИИ PARSER. Цитата PHP — это язык программирования, требующий соответствующей подготовки. На Parser могут работать далеко не профессиональные программисты. Parser именно тем и хорош, что позволяет простым смертным создавать и поддерживать сложные динамические сайты без больших затрат времени.В таком варианте моё первое сообщение в теме более понятно? _________________ Моя твоя понимать, когда ты понятно писать! *** STARGATE SG1 |
Цитата PHP — это язык программирования, требующий соответствующей подготовкисам язык - простейший, в нем нет ничего сложного..... возможно у вас возникает проблема в составлении алгоритмов решения задач, ну дак тут уж вам никакие технологии непомогут - читайте книжки, эксперементируйте и т д и т п. _________________ накапливаю джедайскую силу http://booking.com/ http://bookingb2b.com/ http://www.aicgroup.biz http://www.gta-travel.com/en/home |
книжки-то читаю,
а вот от темы уходите... Может она ваще не нужна? _________________ Моя твоя понимать, когда ты понятно писать! *** STARGATE SG1 |
Mikhajlo писал(а): междометье, мне каца, не компетентНО... Mikhajlo писал(а): Может она ваще не нужна?_________________ Ин дер гросен фамилие нихт клювен клац-клац |
а я феб странички писал не на пхп не на празеров а на lua |
xapac
жжош )) если ты про курсовую прошлогоднюю - то видел, нече так ) _________________ накапливаю джедайскую силу http://booking.com/ http://bookingb2b.com/ http://www.aicgroup.biz http://www.gta-travel.com/en/home |
может пример какойнибудь напишите?
типа php vs parser и кто кого забадает... Добавлено спустя 3 часа 2 минуты 44 секунды: Mikhajlo писал(а): книжки-то читаю,
а вот от темы уходите... Может она ваще не нужна? нужна, развивай |
Brain писал(а): и кто кого забадает...как грится "Вернёмся к нашим баранам" то бишь к сути вопр. PHP нельзя противопоставлять Парсеру. У них направленность немного разная. Итак. §1. Содержимое Вся папка с модулями занимает 2,06 МБ (2 162 688 байт) §2. История Parser — это технология создания сайтов с помощью простого языка. Он немного сложнее HTML, но не требует особенного умения программировать. Parser начал создаваться в Студии Лебедева в 1997 году. Сегодня подавляющее большинство сайтов, создаваемых Студией Лебедева, делаются с его помощью. §3. Суть Идея Parser довольно проста. В HTML-страницы внедряются специальные конструкции, обрабатываемые нашей программой перед тем, как страницы увидит пользователь. Программа сама доделывает за вас работу по окончательному формированию и оформлению сложного документа. Это похоже на собирание из конструктора, в котором есть готовые модули для всех обычных целей. Если же вы мыслите нестандартно, просто создайте свои модули, которые будут делать то, что необходимо именно вам. Ничего невозможного нет, при этом все делается просто и быстро. Что дает вам Parser? Вы получаете в свое распоряжение переменные, циклы, условия и т.д., все то, чего так не хватает привычному HTML. Без использования Parser аналогичный по внешнему виду документ будет гораздо больше по объему, а некоторые задачи останутся неразрешенными. С Parser у вас пропадет необходимость повторять одни и те же инструкции по несколько раз, но появится возможность формирования динамических страниц в зависимости от действий пользователя, работать с базами данных и XML, внешними HTTP-серверами, в считанные минуты менять дизайн страниц. И все это без обычного в подобных случаях сложного программирования. Ваши страницы будут формироваться из отдельных законченных объектов, а вы просто скажете Parser какие из них, сколько, куда и в какой последовательности поставить. Если нужно что-то поменять местами или добавить, вы просто указываете это - и все. Остальное будет сделано автоматически. При этом сам проект станет логичным и понятным за счет структуризации. §4. Переменные Переменные могут хранить данные следующих типов: · строка (string); · число (int/double); · истина/ложь; · хеш (ассоциативный массив); · класс объектов; · объект класса (в т.ч. пользовательского); · код; · выражение. Для использования переменных не требуется их заранее объявлять. В зависимости от того, что будет содержать переменная, для присвоения ей значения используются различные типы скобок: $имя_переменной[строка] переменной присваивается строковое значение (объект класса string) или произвольный объект некоторого класса $имя_переменной(выражение) переменной присваивается число или результат математического выражения $имя_переменной{код} переменной присваивается фрагмент кода, который будет выполнен при обращении к переменной Для получения значения переменных используется обращение к имени переменной: $имя_переменной - получение значения переменной §5. Примеры Код Результат
*** В качестве части имени может быть использовано… …значение другой переменной:
Возвратит: value of superman variable
Возвратит строку picture.gif, а не значение поля gif объекта picture. …результат работы кода:
Возвратит значение поля b5 объекта field. *** Меню Создание меню, которое ориентирует пользователя на сайте, не дает ему заблудиться - вот задача, с которой нам хочется начать повествование о Parser. Почему именно это? Прежде всего потому, что большое количество тегов:
трудно контролировать. А если вам понадобится добавить еще один раздел? Придется в каждую страницу вносить изменения, а человеку свойственно делать ошибки. При этом отнюдь не исключено, что после такой «модернизации» ваш ресурс в ответ на запросы пользователей сообщит о том что «данная страница не найдена». Вот где проблема, которую с помощью Parser можно решить очень легко. Решение следующее. Мы создаем некую функцию на Parser, которая будет генерировать нужный нам фрагмент HTML-кода. В терминологии Parser функции называются методами. В тех местах, где этот код понадобится, будем просто давать указание «Вставить меню навигации» и сразу же будет создана страница, содержащая меню. Для этого сделаем несколько простых шагов: 1. Всю информацию о наших ссылках будем хранить в одном файле, что позволит впоследствии вносить необходимые изменения только в нем. В корневом каталоге будущего сайта создаем файл sections.cfg, в который помещаем следующую информацию: Здесь используется так называемый формат tab-delimited. Столбцы разделяются знаком табуляции, а строки - переводом каретки. При копировании этой таблицы в текстовый редактор данное форматирование будет создано автоматически, но если вы будете создавать таблицу вручную, необходимо это учитывать. Для таблиц ВСЕГДА применяется формат tab-delimited. 2. В том же каталоге, где и sections.cfg, создаем файл auto.p В нем мы будем хранить все те кирпичики, из которых впоследствии Parser соберет наш сайт. AUTO означает, что все эти кирпичики будут всегда доступны для Parser в нужный момент, а расширение ".p", как вы, наверное, догадались, это… правильно! Он самый! 3. В файл auto.p вставим следующий код:
Данные из этого файла и будут служить основой для нашего навигационного меню. Вот и все, подготовительные работы закончены. Теперь открываем код страницы, где все это должно появиться (например, index.html), и говорим: «Вставить меню навигации». На Parser это называется «вызов метода» и пишется так:
Осталось только открыть в браузере файл, в который мы вставили вызов метода и посмотреть на готовое меню навигации. Теперь в любом месте на любой странице мы можем написать заветное
Она аналогична строке
Жизненно необходимо давать простые, понятные имена. Они должны точно соответствовать тому, что именуемый объект будет хранить и делать. Сохраните нервы и время себе и всем тем, кому придется разбираться в ваших текстах, отнеситесь, пожалуйста, к именам внимательно. Имена могут быть русские или латинские, главное соблюдать единообразие: или все по-русски, или по-английски. Идем дальше.
Это ключевая строка нашего кода. Она достаточно большая, поэтому давайте разберем ее по частям. Строка начинается символом $ (рубль) и следующим сразу за ним именем sections. Так в Parser обозначаются переменные. Это надо запомнить. Все просто: видим в тексте $var - имеем дело с переменной var. Переменная может содержать любые данные: числа, строки, таблицы, файлы, рисунки и даже часть кода. Присвоение переменной $parser_home_url значения www.parser3.ru на Parser выглядит так:
можем обратиться к переменной по имени, т.е. написать $parser_home_url и получить значение www.parser3.ru. Еще раз тоже самое:
Подробности в разделе «Переменные». В нашем случае переменная $sections будет хранить таблицу из файла sections.cfg. Любую таблицу Parser рассматривает как самостоятельный объект, с которым он умеет производить только вполне определенные действия, например, добавить или удалить из нее строку. Поскольку переменная может хранить любые данные, необходимо указать, что присвоенное нами переменной значение является именно таблицей. Лирическое отступление. Пример из жизни. Всю автомобильную технику можно грубо разделить на несколько классов: легковые автомашины, грузовики, трактора и гусеничная техника. Любой автомобиль является объектом одного из этих классов. Вы легко можете определить, к какому классу относится автомобиль, поскольку их всех объединяют общие характеристики, такие как вес, масса перевозимого груза и т.д. Любой автомобиль может совершать действия: двигаться, стоять или ломаться. Каждый из автомобилей обладает своими собственными свойствами. И самое главное, автомобиль не может появиться сам собой, его нужно создать. Когда конструктор придумывает новую модель автомобиля, он точно знает, автомобиль какого класса он создает, какими свойствами будет наделено его творение и что оно сможет делать. Также и в Parser: каждый объект относится к определенному классу, объект класса создается конструктором этого класса и наделен характеристиками (полями) и методами (действиями), общими для всех подобных объектов. Итог Любой объект в Parser принадлежит конкретному классу, характеризуется полями и методами именно этого класса. Чтобы он появился, его нужно создать. Делает это конструктор данного класса. Разберитесь с этой терминологией, это основа. Отвлеклись? Продолжим. Переменной $sections мы присвоили вот что:
Буквально это означает следующее: мы создали объект класса table при помощи конструктора load. Общее правило для создания объекта записывается так:
Подробности в разделе «Передача параметров». В качестве параметра конструктору мы передали имя файла с таблицей и путь к нему. Теперь переменная $sections содержит таблицу с разделами нашего сайта. Parser считает ее объектом класса table и точно знает, какие действия с ней можно выполнить. Пока нам понадобится только один метод этого класса - menu, который последовательно перебирает все строки таблицы. Также нам потребуются значения из полей самой таблицы. Синтаксис вызова методов объекта:
Получение значений полей объекта (мы ведь имеем дело с вполне определенной таблицей с заданными нами же полями):
Знания, полученные выше, теперь позволяют без труда разобраться в последней части нашего кода:
Мы формируем HTML-таблицу, в каждый столбец которой помещаем значения, содержащиеся в полях нашей таблицы $sections: uri - адрес и name - имя. При помощи метода menu мы автоматически перебираем все строки таблицы. Таким образом, даже если у нас будет несколько десятков разделов, ни один из них не будет потерян или пропущен. Мы можем свободно добавлять разделы, удалять их и даже менять местами. Изменения вносятся только в файл sections.cfg. Логика работы не нарушится. Все просто и красиво. Синтаксис работы с объектами:
*** Компановка страницы Коды файла auto.p:
ХТМЛ:
подробнее http://www.parser.ru/docs/ _________________ Моя твоя понимать, когда ты понятно писать! *** STARGATE SG1
|
это всё понятно, кому интересно было - на сайте прочитали. у меня повторно вопрос - чего хочет автор темы? _________________ Ин дер гросен фамилие нихт клювен клац-клац |
да чувак тугой паходу, парсер ну парсер и ЧЁ ? если он нехочет их сравнивать тада какого хе** он примеры всякие приводит, и вообще - к чему они ?
Mikhajlo ты что то хотел этим сказать или спросить или что ? что тебе вообще от нас нужно ? _________________ накапливаю джедайскую силу http://booking.com/ http://bookingb2b.com/ http://www.aicgroup.biz http://www.gta-travel.com/en/home |
andy ice писал(а): чего хочет автор темы?Ну..., это..., ясна поляна без Толстого не обходится, высказать мнение по энтой технологии. Интяресно знать использует ли кто-нибудь в нашинской деревньке-то её, а если нет - пошто? Добавлено спустя 4 минуты 4 секунды: Slider писал(а): Злой ты, Отморозко, безжалостный! Добавлено спустя 12 минут 4 секунды: Цитата тугой Эт ишо нужно посмотреть кто тугой, а кто не тугой. И вообще какое значение имеется ввиду: крепкий, упорный, стойкий, твердо упругий, неподатливый, противопол. слабый, мягкий, вялый, гибкий, гнуткий. Их нет смысла сравнивать... Добавлено спустя 1 минуту 30 секунд: Раз уж допеткать не есть можно, то удаляйте тему! _________________ Моя твоя понимать, когда ты понятно писать! *** STARGATE SG1 |
Mikhajlo писал(а): высказать мнение по энтой технологииMikhajlo писал(а): Интяресно знать использует ли кто-нибудь Mikhajlo писал(а): в нашинской деревньке-то _________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice писал(а): ты не мнение высказал, а чуть ли не весь фак привелне занимайтесь минимализмом, создание темы - уже мнение andy ice писал(а): мало кто, но используетне фига ( сматерился) себе мало кто - более 200 человек в России-матушке и на Украине, причём люди и компании достаточно компетентные, сам знаком! andy ice писал(а): для инету-то какая разница где сидит вебмастера я не инет спра... ...шиваю, а тех кто делом занят и хотябы немного пробует понять суть темы а то получается как в теме "Perl vs PHP" демагогия одна - каждый о своём, и лишь иногда проглядывает суть прений записываешь в ламеры? у каждого языка скриптования своя суть хоть Перл, хоть пхп, питон, ТиСиЭл, Раби пхп ваще заимствовал часть функций перла и С, и сравнивать после этого, нет смысла ни перл ни пхп ни парсер (кстати создан изолированно от пхп) это эволюция программирования и новый язык будет хоть малость, но лучше предыдущего на этом, тему, может кому-то бессмысленную, можно закрыть _________________ Моя твоя понимать, когда ты понятно писать! *** STARGATE SG1 |
Mikhajlo писал(а): более 200 человек Mikhajlo писал(а): а я не инет спра... ...шиваюMikhajlo писал(а): а тех кто делом занят и хотябы
немного пробует понять суть темы _________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice писал(а): "аж 200 человек"Это только в 1 компании _________________ Моя твоя понимать, когда ты понятно писать! *** STARGATE SG1 |
Mikhajlo
эта компания не считается _________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice писал(а): мы так, примусы починяемтоже дело Добавлено спустя 2 минуты 33 секунды: andy ice писал(а): эта компания не считаетсяИмеется ввиду студия Артемия Лебедева (Яндекс например) Цитата не мешает нам быть самой крупной дизайн-студией в России, иметь самое большое портфолио и совершенно не переживать о том, что в ближайшие десять-двадцать лет кто-то займет наше место_________________ Моя твоя понимать, когда ты понятно писать! *** STARGATE SG1 |
Mikhajlo писал(а): andy ice писал(а):
эта компания не считается Имеется ввиду студия Артемия Лебедева мляя. я знаю кто имеется в виду, если они этот парсер придумали и на нем пишут, потому и не считаются. пипец у тебя с логикой. _________________ Ин дер гросен фамилие нихт клювен клац-клац |
Mikhajlo писал(а): Это только в 1 компании хех. думаю ей это все и оганичивается. насчет парсера. его какие-нить редакторы поддерживают? или настроящие программисты пишут только в far'е? имхо, parser ф топку! ибо есть достаточно много более интересных аналогов Добавлено спустя 3 минуты 17 секунд: я вот что-то сомневаюсь что в яндексе используется этот парсер или он умеет XSLT ? |
andy ice писал(а): пипец у тебя с логикойа нет смысла разглагольствовать все компании ведь всё равно начинающие кодеры больше и больше предпочитают знакомится с парсером а не углубляться в пхп и не надо кантовать к логике радного брата Кандрата. _________________ Моя твоя понимать, когда ты понятно писать! *** STARGATE SG1 |
VolF
ты же в курсе, что яндекс не использует парсер Добавлено спустя 1 минуту 57 секунд: хотя хз чо там сверху навернуто. хоть ssi _________________ Ин дер гросен фамилие нихт клювен клац-клац |
VolF писал(а): я вот что-то сомневаюсь что в яндексе используется этот парсер или он умеет XSLTТипичная проверка - ошибка 404 http://www.yandex.ru/auto.p
auto.p - основной файл с кодами парсера и XML и XSLT!
…но не их форматирование. Подготовкой данных может заняться один человек, а форматированием другой. Им достаточно договориться об используемых тегах и можно приступать к работе… одновременно. Идея эта не нова, существовали многочисленные библиотеки обработки шаблонов, а многие создавали собственные. Библиотеки были несовместимы между собой, зависели от используемых средств скриптования, порождая разобщенность разработчиков и необходимость тратить силы на изучение очередной библиотеки вместо того, чтобы заняться делом. Однако прогресс не стоит на месте, и сейчас мы имеем не зависящие от средства скриптования стандарты XML и XSLT, позволяющие нам реализовать то, что мы только что представляли. А также стандарты DOM и XPath, открывающие для нас еще больше возможностей. Parser полностью поддерживает все эти стандарты. Сейчас откройте выбранную вами вчера в книжном магазине книгу, описывающую XML и XSLT. Используйте ее как справочник. Посмотрим, как можно приведенную статью преобразовать из XML в HTML. Запишем текст из начала статьи в файл article.xml И создадим файл article.xsl, в котором определим выдуманные нами теги:
Данные и шаблон преобразования готовы. Создаем article.html, в который заносим следующий код: # входной xdoc документ $sourceDoc[^xdoc::load[article.xml]] # преобразование xdoc документа шаблоном article.xsl $transformedDoc[^sourceDoc.transform[article.xsl]] # выдача результата в HTML виде ^transformedDoc.string[ $.method[html] ] Первой строкой мы загружаем XML-файл, получая в sourceDoc его DOM-представление. Конструкция похожа на загрузку таблицы, помните ^table::load[…]? Только в этот раз мы загружаем не таблицу (получая объект класса table), а XML-документ (получаем объект класса xdoc). Второй строкой мы преобразуем входной документ по шаблону article.xsl. Из входного документа получаем выходной, применяя XSLT преобразование, описанное в шаблоне. Последней строкой мы выдаем пользователю текст выходного документа в HTML формате (параметр method со значением html). Здесь можно задать все параметры, допустимые для тега <xsl:output … />. Рекомендуем также задать параметр "без отступов" (параметр indent со значением no: $.indent[no]), чтобы избежать известной проблемы с пустым местом перед </td>. Обратившись теперь к этой странице, пользователь получит результат преобразования:
Как вы заметили, тег <author … /> никак не был определен, как следствие, информация об авторе статьи не появилась в выходном HTML. Со временем, когда вы решите где и как будете хранить и показывать данные об авторах, достаточно будет дополнить шаблон - исправлять данные статей не потребуется. Внимание: если вы не хотите, чтобы пользователи вашего сервера имели доступ к .xml и .xsl файлам, храните эти файлы вне веб-пространства (^xdoc::create[/../directory_outside_of_web_space/article.xml]), или запретите к ним доступ средствами веб-сервера (пример запрета доступа к .p файлам здесь: «Установка Parser на веб-сервер Apache. CGI скрипт»). Сам лично пробовал! Вкусно! _________________ Моя твоя понимать, когда ты понятно писать! *** STARGATE SG1 Последний раз редактировалось: Mikhajlo (2007.12.11 00:23.23), всего редактировалось 2 раз(а) |
andy ice
я вообще хз кто это использует.. ну ты же не знаешь, что у них используется в качестве XSLT-процессора о, кстати, посмотрел его офф.сайт - по крайне мере в третьей версии он поддерживает XML, XSL, XPath и DOM. Добавлено спустя 1 минуту 4 секунды: Mikhajlo что это было? |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы |