Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Набор классов SoftTime FrameWork
 
 автор: cheops   (15.02.2008 в 18:55)   письмо автору
 
 

В раздел downloads выложен набор классов SoftTime FramWork, позволяющий ускорить разработку Web-приложений и сайтов. Набор классов, а также приёмы его использования детально описываются в нашей новой книге "Объектно-ориентированное программирование на PHP".

PS В ближайшее время будут выложены исходные коды ряда приложений, разработанных с использованием данного набора классов, в том числе форум LiteForum 5.0 и система учёта посещаемости PowerCounter 4.0.

   
 
 автор: Unkind   (16.02.2008 в 00:10)   письмо автору
 
   для: cheops   (15.02.2008 в 18:55)
 

class.pager_dir.php:

<?php
// ...

      // Удаляем последний символ /, если он имеется
      
$this->dirname    trim($dirname"/");

// ...
?>


На мой взгляд, лучше rtrim (chop). Иначе абсолютные пути, начинающиеся со слеша станут неверными.

   
 
 автор: ddhvvn   (16.02.2008 в 14:09)   письмо автору
 
   для: Unkind   (16.02.2008 в 00:10)
 

Дождались все-таки! =)))

   
 
 автор: bronenos   (16.02.2008 в 15:25)   письмо автору
 
   для: ddhvvn   (16.02.2008 в 14:09)
 

Это и самому можно сделать при необходимости, чем ждать N месяцев

   
 
 автор: ddhvvn   (16.02.2008 в 17:10)   письмо автору
 
   для: bronenos   (16.02.2008 в 15:25)
 

Да это понятно, я не в этом смысле =))

   
 
 автор: FireTiger   (17.02.2008 в 09:53)   письмо автору
 
   для: cheops   (15.02.2008 в 18:55)
 

А как работать с классами, Вы на сайте вылаживать не будете?

   
 
 автор: cheops   (18.02.2008 в 00:10)   письмо автору
 
   для: FireTiger   (17.02.2008 в 09:53)
 

Да, к дистрибутиву прикладывается два демонстрационных приложений, в ближайшее время будут выложены форум и система сбора информации, в которых все скрипты будут снабжены комментариями на русском языке.

PS Постепенно будет расширена и статья посвящённая набору классов.

   
 
 автор: FireTiger   (18.02.2008 в 06:08)   письмо автору
 
   для: cheops   (18.02.2008 в 00:10)
 

Спасибо!

   
 
 автор: Panker   (23.02.2008 в 10:48)   письмо автору
 
   для: cheops   (15.02.2008 в 18:55)
 

Ни как не могу понять, какой пароль на архив с демонстрацией? Пользователь root, а пароль?

   
 
 автор: cheops   (23.02.2008 в 14:12)   письмо автору
 
   для: Panker   (23.02.2008 в 10:48)
 

Тоже root

   
 
 автор: Panker   (23.02.2008 в 16:54)   письмо автору
 
   для: cheops   (23.02.2008 в 14:12)
 


    $theme    = new field_text("urltext",
                                 "Тематика",
                                  false,
                                  $_POST['urltext']);


Вы не могли бы подсказать как вместо обычного input сделать select причем в селекте не забиты а берутся из базы из таблицы Theme и в value и просто как показатель пользователю данные из ячейки name, прошу помочь мне, так как очень понравилось работать с framework CMS на него перевожу но не могу понять про селект и вставка данных :)

   
 
 автор: cheops   (24.02.2008 в 14:29)   письмо автору
 
   для: Panker   (23.02.2008 в 16:54)
 

В первую очередь необходимо сформировать массив (пусть $janre) элементов выпадающего списка
<?php
    
// Извлекаем жанры
    
$query "SELECT * FROM $tbl ORDER BY name";
    
$jnr mysql_query($query);
    if(!
$jnr)
    {
      throw new 
ExceptionMySQL(mysql_error(), 
                               
$query,
                              
"Ошибка при извлечении
                               позиций"
);
    }
    
$janre = array();
    if(
mysql_num_rows($jnr))
    {
      while(
$janre_array mysql_fetch_array($jnr))
      {
        
// Название жанра
        
$janre[$janre_array['id_position']] = $janre_array['name'];
      }
    }
?>

Далее можно создать выпадающий список
<?php
    $idjanre 
= new field_select("idjanre",
                          
"Жанры",
                           
$janre,
                           
$_REQUEST['idjanre']);
?>

   
 
 автор: Panker   (19.04.2008 в 10:22)   письмо автору
 
   для: cheops   (24.02.2008 в 14:29)
 

Простите, как я понял ИМЯ ФОРМЫ задавать нельзя?
Или я не нашел как и что? Просто мне нужно 3 и больше форм на одной страницы, а у них по стандарту название form :( а мне разные имена нуны :(

   
 
 автор: cheops   (19.04.2008 в 15:12)   письмо автору
 
   для: Panker   (19.04.2008 в 10:22)
 

Под именем подразумевается имя объекта или атрибут name?

   
 
 автор: dmtrfoxerr   (01.09.2008 в 23:35)   письмо автору
 
   для: cheops   (24.02.2008 в 14:29)
 

Доброго здравствия!
Подскажите, а возможно реализовать двойной зависимый выпадающий список с помощью класса.

   
 
 автор: Eugene77   (03.09.2008 в 19:24)   письмо автору
 
   для: cheops   (15.02.2008 в 18:55)
 

Так теперь можно никакой Drupal не изучать?
Всё делать на основе ваших классов?
Или классов пока хватает лишь на форум и счётчик?
Подробнее можете сказать как вы видите место своей разработки в мире PHP программирования?

   
 
 автор: Proger   (04.09.2008 в 08:40)   письмо автору
 
   для: Eugene77   (03.09.2008 в 19:24)
 

Я пологаю этот framework лишь для некоторого облегчения работы с занесением данных в бд и выводом их же в различной форме. Писать что-то на основе этого фреймворка = писать с нуля. Это не база для написания чего либо, а лишь инструмент "с хорошей ручкой" :))

ИМХО

   
 
 автор: cheops   (04.09.2008 в 13:11)   письмо автору
 
   для: Eugene77   (03.09.2008 в 19:24)
 

>Всё делать на основе ваших классов?
Да, абсолютно все, для чего этот набор предназначен.

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

Объектно-ориентированное программирование создавалось для создания расширяемых библиотек. Это означает, что ни один из наборов классов не является статическим (если только все конечные ветви не финализированы (final) - но в этом случае это просто классическая библиотека). Если возможностей существующего класса не хаватает - от него наследуется новый класс, который автоматически встраивается в систему. Например, нужно мне текстовое поле, которое будет автоматически проверять существует ли в базе данных город, если не существует - вносить его туда, если существует, выдавать в качестве результата уникальный номер этого города. Я наследую от класса обычного текстового поля field_text класс field_text_city - реализуя нужную функциональность, а проверки, представления и т.п. уже реализованы в классе field_text - об этом даже не думаю. Захочу изменить какие-то фундаментальные свойства всех полей - буду дергать feild, если текстовых filed_text, если только тех, которые города обрабатывают field_text_city.

Ещё раз: наборы классов (framework), любых, в любых языках программирования - это не готовая кормушка - это заготовка, которую программист расширяет по мере надобности за счет наследования новых классов. Это не панацея - это инструмент и не самый легкий в использовании. Он эффективен и экономит время, но чтобы он заработал, его изучать нужно.

>Подробнее можете сказать как вы видите место своей разработки в мире PHP
>программирования?
Это демонстрация того, как следует использовать ООП, не классы гостевых книг создавать, которые заведомо уже использоваться не будут - а расширяемые среды, позволяющие повторно использовать код.

PS В книге верхушечка айсберга - в студии мы используем сотни классов унаследованных от исходных классов FrameWork-а. Мы не можем заранее предусмотреть все возможные случаи - для этого и нужен ООП. Не нравится вам как форма выглядит - наследуете новый класс и переопределяете метод представления. Захотелось, чтобы перед текстовой областью выводились графические кнопки для bbCode - наследуете новый класс. Не копаетесь в старом классе, а наследуете новый. В результате и старые и новые приложения прекрасно работают с FrameWork любой версии. В этом и суть ООП.

   
 
 автор: dmtrfoxerr   (04.09.2008 в 13:59)   письмо автору
 
   для: cheops   (04.09.2008 в 13:11)
 

Хотел попробывать реализовать двойной динамический выпадающий список с помощь JS. Но как то не получилось. Подскажите как....
Заранее благодарен!

   
 
 автор: dmtrfoxerr   (24.10.2008 в 20:33)   письмо автору
 
   для: cheops   (15.02.2008 в 18:55)
 

Интересная ошибочка!!!!
Если в классе переменная содержит "_", то поле не обрабатывается и выдает ошибку что поле пустое.


<?
 $product_type         
= new field_select("product_type",
                                     
"Продукт",
                                      
$idproduct,
                                     
$_REQUEST['product_type']);
?>

   
 
 автор: cheops   (27.10.2008 в 11:36)   письмо автору
 
   для: dmtrfoxerr   (24.10.2008 в 20:33)
 

Это ошибка PHP (которая мне всю плешь проела) - при наследовании символ _ заменяется на i - эта ошибка кочует с 5.0.0 по текущие версии. Когда ругают PHP за глюкавость имеют в виду именно такие ошибки, которые годами не исправляются.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования