blueshoes php application framework and cms            packageless
[ class tree: packageless ] [ index: packageless ] [ all elements ]

Todo List

core_util

Bs_Array::arrayToText()

  • deal with boxed arrays

Bs_String

  • see http://www.phpclasses.org/browse.html/file/1366.html

Bs_Array::explode()

  • support the limit param.

Bs_System::getCpuInfo()

  • all

Bs_System::getOs()

  • document the possible return values.

Bs_System::getOsVersion()

  • all

Bs_System::getUptime()

  • all

Bs_System::getVersion()

  • all

Bs_String::hasSpecialChars()

  • i bet this method could be optimized alot using regexp.

Bs_Array::inArray()

  • maybe preg would be faster here than converting. dunno. at the moment i'm happy.

Bs_Array::randVal()

  • maybe make use of the new php function array_rand() internally.

Bs_Array::reindex()

  • implement $startPos feature if needed.

Bs_String::startsWithI()

  • optimize this shit. imagine a really huge $haystack and a small $needle. all $haystack is converted to lowercase. only the strlen($needle) chars would need to be converted. and passed over. same for endsWithI. better use regexp here.

Bs_System::systemCheckup()

  • all

Bs_Finance::toPercent()

  • this function is not tested enough/has some new code. don't use it in a production environment. test it before!

Bs_Finance::toPrice()

  • make use of the param char $thousandsSeparateChar
  • this function is not tested enough/has some new code. don't use it in a production environment. test it before!

core_net

Bs_HttpClient::$acceptCookies

  • implement this, add option to send user-defined cookies

Bs_HttpClient::$acceptType

  • i think the first element here (*) makes it accept everything anyway...

Bs_LittleSister::$blobFormat

  • all

Bs_UrlCache::$excludeMask

  • implement this one

Bs_UrlCache::$ignoreCaseInQuerystring

  • implement options 2 and 3.

Bs_UrlCache::$includeMask

  • implement this one

Bs_HttpClient::$receivedCookies

  • implement this, add option to send them again, and to send user-defined cookies

Bs_Smtp::$_attachment

  • implement this

Bs_Url::addQueryParam()

  • ecg

Bs_Smtp::addTo()

  • support address lists (as specified in the rfc).

Bs_Url::breadCrumb()

  • ecg, docu, modify

Bs_Browscap

  • add HTTP_ACCEPT_ENCODING HTTP_ACCEPT

Bs_HttpClient

  • this is a multiline description:

    • problem: if you connect to a host, then grab a few files, then disconnect, only the 1st fetch will succeed. for the 2nd, 3rd ... you can send your request without errors, but there's no reply (eof or error) from the server => connection is lost somehow?
    • reason: probably this is a windows problem only. the manual for fsockopen() sais param "double timeout" is not available on all systems, but doesn't mention on which it's not. it if's ignored, this would be the reason for my problem.
    • solution: the param $tryReconnect in fetchPage() helps. it reconnects once each time a conn is fucked/lost somehow as in this problem.
    • comments: of course this is not satisfactory, because if you connect, fetch a lot, then close, the connection has to be reopened for each fetch request. but at least the coder doesn't need to worry.
    hint: maybe you are just looking for: $file = fopen("http://www.php.net/", "r");

    if you're looking for information about the http protocol, try these, have fun :) Hypertext Transfer Protocol HTTP/1.1 ftp://ftp.isi.edu/in-notes/rfc2616.txt Obsoletes: 2068 Hypertext Transfer Protocol HTTP/1.1 ftp://ftp.isi.edu/in-notes/rfc2068.txt Hypertext Transfer Protocol HTTP/1.0 ftp://ftp.isi.edu/in-notes/rfc1945.txt Upgrading to TLS Within HTTP/1.1 ftp://ftp.isi.edu/in-notes/rfc2817.txt Updates: 2616

    dependencies: Net/Bs_NetApplication (which uses Net/Bs_SocketClient and Net/Bs_Url)

Bs_NetApplication

  • maybe replace the 2 Bs_SocketClients with an array of 10? was a sugguestion from sam.

Bs_SimpleSession

  • Prevent SID hijacking. If we reuse a previously created session by getting the sid from the querystring (and not from a cookie), we have a possible hole. Someone might send his url (with sid included) to someone else, and this person pastes it into the browser. See the problem. So what we do is check the class c network of the ip address (proxies might switch ip's). This still leaves room for ppl trading url's in the same company/using the same isp, but what can we do? Check browser string? hmm maybe. Well this is internal anyway and you shouldn't care.

Bs_Smtp

  • Message-Id: <20010913092203.45C8.SAM@gibtsnicht.xx>
  • MIME-Version: 1.0

Bs_SocketClient

  • check from time to time setBlocking() (if nonblocking is possible on win now)

Bs_Session::destroy()

  • kill the file

Bs_Url::enableUrl()

  • fix the problems listed above
  • ecg

Bs_Url::getLastDir()

  • allow full url's (with http://www.domain.com part)

Bs_HttpClient::getUserAgent()

  • all

Bs_Url::hashArrayToHiddenFields()

  • ecg
  • docu

Bs_UrlCache::isPageCached()

  • all

Bs_LittleSister::logThis()

  • all

Bs_Url::modifyQueryParam()

  • ecg

Bs_HttpClient::randomUserAgent()

  • all

Bs_Url::removeQueryParam()

  • all

Bs_HttpClient::responseCodeInfo()

  • finish the descriptions for all codes, or decide to kick them out.

Bs_FtpClient::rmDir()

  • what happens with dir- and file links?

Bs_FtpClient::rmDirRec()

  • what happens with dir- and file links?
  • test this code

Bs_Smtp::setOrigDate()

  • check the syntax of $param, or offer other formats to be given and convert them.

Bs_EmailValidator::validateHost()

  • check if php's getMxRr() and checkDnsRr() OR exec() are fixed now for win and update the code/manual.

Bs_HttpClient::_readCookie()

  • all

core_gfx

Bs_TextType::$fontAntiAlias

  • use this?

Bs_TextType::$profileName

  • maybe add a profileDir var?

Bs_TextType::$xAlign

  • support 'middle'

Bs_TextType::$yAlign

  • all

Bs_ImageUtil

  • see above

Bs_TextType

  • see above

Bs_Chart::isFirstColLegend()

  • finish implementation

Bs_Chart::isFirstRowTitle()

  • finish implementation

Bs_Chart::prepareData()

  • finish implementation, currently only works with dataCsv.

Bs_IntervalChart::setInterval()

  • code support for all options. currently only 'month' and 'day' are supported. see _groupDataByInterval() and _fillDataGaps().

core_auth

Bs_Cug::$maxNumAttempts

  • implement this feature.

Bs_Cug

  • when the user gets to the login form, include the url he's coming from so after a successful login we can redirect him to where he was. just like we do it in the browscap class.

Bs_Password::createPronounceablePassword()

  • make use of numbers and special characters.

Bs_Password::isBadPassword()

  • write code

Bs_Password::isSilly()

  • write code

Bs_CugDb::resetPasswordByEmail()

  • all

Bs_User::validateLogin()

  • check Bs_Cug->_validateLoginData(), not sure where to implement this functionality.

core_html

Bs_FormField::$additionalCheck

  • add security stuff because of the eval.

Bs_FormField::$bsDataManipulation

  • make use of this or kick it out.

Bs_FormField::$bsDataManipVar

  • make use of this or kick it out.

Bs_HtmlTag::$caseFolding

  • make use of this one.

Bs_FormField::$codePostLoad

  • add security stuff because of the eval.

Bs_FormField::$codePostManipulate

  • add security stuff because of the eval.

Bs_FormField::$codePostReceive

  • add security stuff because of the eval.

Bs_Form::$dbName

  • make use of this var.

Bs_DaFormPageControl::$domApiDefaultOpen

  • implement this

Bs_FormFieldCountryList::$doOrderOnSpit

  • define/code ...

Bs_FormField::$enforce

  • enforce is the wrong name for this. change it to $overlook. update text. 2002/11/10 --andrej

Bs_FormField::$equalTo

  • the gui only supports string, not vector.

Bs_FormFieldFile::$fileSizeUpdateIni

  • all (that won't work, as far as i see it. --andrej)

Bs_Form::$mode

  • rethink the available modes.

Bs_FormField::$mustOneOf

  • not implemented in the gui. difficult.

Bs_FormField::$mustOneOfIf

  • not implemented in the gui. difficult.

Bs_FormField::$notEqualTo

  • the gui only supports string, not vector.

Bs_FormField::$onlyIf

  • not implemented in the gui.

Bs_FormField::$onlyOneOf

  • not implemented in the gui. difficult.

Bs_FormField::$onlyOneOfIf

  • not implemented yet. could be needed somewhen.

Bs_Form::$templatePath

  • i think we should use the $_SERVER['DOCUMENT_ROOT'] or so. at least that var should be used.

Bs_FormField::addEnforceCheckbox()

  • name[] _enforce won't work with arrays.

Bs_FormTemplateParser::apply()

  • not satisfied with the params, how the information is passed.

Bs_FormImage

  • add/recode the style stuff.

Bs_HtmlTag

  • __parseTag() and __parseProperties() are from older code. maybe modify them a bit. i added the __ in front of the function names to make them stand out.

    dependencies: Bs_HtmlUtil

Bs_FormField::getErrorMessage()

  • finish this method, especially implement xml.

Bs_FormFieldRadioJs::getField()

  • use the explodeKey param here. dunno why that's not implemented.

Bs_FormFieldButton::getField()

  • only send the enhanced button html code if the client supports it (ie4+)

Bs_FormFieldRadio::getField()

  • use the explodeKey param here. dunno why that's not implemented.

Bs_FormField::getFieldAsHidden()

  • i'm sure this won't work for select fields with a multiple selection. need to overwrite it. also the value has to be tag-encoded, i bet.

Bs_FormField::getHelp()

  • all

Bs_FormElement::getLanguageDependentValue()

  • i have moved this method to bs_textutil. we should use it instead to avoid double-maintenance.

Bs_HtmlUtil::htmlEntitiesUndo()

  • check from time to time if this method is implemented in php now. php4.3: not yet. --andrej

Bs_HtmlInfo::initByUrl()

  • add fallback code

Bs_FormFieldSelect::inputManipulate()

  • use $paramValue, see Bs_FormField->inputManipulate()

Bs_Form::isMultipart()

  • finish this code

Bs_HnXmlHandler::loadDataByXmlString()

  • implement this

Bs_FormFieldSlider::loadSkin()

  • use ini-files instead of hardcoded php code. makes it much easier to extend.

Bs_FormTemplateParser::loadTemplateFromFullpath()

  • finish this code. it works fine but only if everything's right the first time.

Bs_HtmlUtil::parseAttrStr()

  • It works, but not very efficent.

Bs_HtmlTableWindrose::readByString()

  • why is the inihandler not used here? i think this code could be replaced. i think the inihandler did not exist at that time.

Bs_Form::saveToDb()

  • only works with insert yet, not update.

Bs_Form::seedClearingHouse()

  • this method is called from somewhere when the elementcontainers are not ready yet. maybe fix this, altough it doesn't break the code, it's just unclean.

Bs_Form::setBsFormData()

  • i have to do something with the return if it's false. log, whatever. don't know what's best at the moment, leaving it for later.

Bs_Form::updateDbTableStructure()

  • finish this code. it already adds missing fields, but doesn't alter fields that need to be changed.

Bs_FormField::validateDataType()

  • finish this code

Bs_FormFieldRadio::_prepareOptions()

  • security hole here. we should use the concept of evalWrap(). i want to have it executed here and not there so we're in this object's scope.

Bs_FormFieldSelect::_prepareOptions()

  • security hole here. we should use the concept of evalWrap(). i want to have it executed here and not there so we're in this object's scope.

core_date

Bs_Date::monthNumberToString()

  • maybe we better use the bs_kb.LangMonth table?

core_db

Bs_Odbc::$format

  • update this for odbc

Bs_Db::assertExtension()

  • take care, php's dl() function has been deprecated and is likely to be removed in php 4.1 or 5.

Bs_MsSql::autoCommit()

  • rewrite code for mssql.

Bs_MsSql

  • his class is accurate for MsSQL __version__.
    • please check the following methods to be up to date:
      2do > fieldFlags(), hasFieldFlag(), fieldType(), getTableProperties(), getTableInfo(), getTableType(),
      2do > getIniVar(), getStatusVar() Make sure the existing code doesn't break because of your changes! thanx.
    • recode some functions more down the file for mssql (taken from mysql).
    • code the transaction stuff
    • implement the stored procedures functionality.
    • i wonder if we should move more logic into bs_db.class (that is the same in the mssql and mysql implementation). i don't want to copy the same code blocks over and over again for every db vendor. but then how many impl. will we write?
    dependencies: Bs_Db

Bs_MsSql::commit()

  • rewrite code for mssql.

Bs_Db::countRead()

  • we could optimize this, modifying the query to do "SELECT COUNT(*)".

Bs_MsSql::databaseExists()

  • rewrite code for mssql.

Bs_MsSql::databaseName()

  • rewrite code for mssql.

Bs_MsSql::escapeString()

  • check if that really works. and what about \n etc? see http://www.zend.com/codex.php?id=204&single=1

Bs_MsSql::fetchFieldNames()

  • rewrite code for mssql.

Bs_MsSql::fieldExists()

  • rewrite code for mssql.

Bs_MsSql::fieldFlags()

  • rewrite code for mssql.

Bs_MsSql::fieldLen()

  • rewrite code for mssql.

Bs_MsSql::fieldType()

  • check documentation above and the return values. maybe test a view.

Bs_Oci::freeResult()

  • should we rename this to freeStatement here? think so.

Bs_MsSql::getClientInfo()

  • code and test this as soon as php405 is out.
  • rewrite code for mssql.

Bs_MySql::getClientInfo()

  • code and test this as soon as php405 is out.

Bs_MsSql::getDbStructure()

  • rewrite code for mssql.

Bs_MySql::getHostInfo()

  • code and test this as soon as php405 is out.

Bs_MsSql::getHostInfo()

  • code and test this as soon as php405 is out.
  • rewrite code for mssql.

Bs_MsSql::getIniVar()

  • rewrite code for mssql.

Bs_MsSql::getOpenTables()

  • rewrite code for mssql.

Bs_MsSql::getProtocolInfo()

  • code and test this as soon as php405 is out.
  • rewrite code for mssql.

Bs_MySql::getProtocolInfo()

  • code and test this as soon as php405 is out.

Bs_MsSql::getServerInfo()

  • code and test this as soon as php405 is out.
  • rewrite code for mssql.

Bs_MySql::getServerInfo()

  • code and test this as soon as php405 is out.

Bs_MsSql::getStatusVar()

  • rewrite code for mssql.

Bs_MsSql::getTableInfo()

  • rewrite code for mssql.

Bs_MySql::getTableStructure()

  • i bet there are a few bugs in the way the data array gets built. have to test this one. need to create a few test-db-tables for that to see how mysql returns the values.

Bs_MsSql::getTableType()

  • rewrite code for mssql.

Bs_MsSql::hasFieldFlag()

  • rewrite code for mssql.

Bs_MsSql::insertId()

  • decide about return value 0/false/null/exception.

Bs_Oci::insertId()

  • implement this. currently returns a not-capable exception.

Bs_MsSql::isReservedWord()

  • rewrite code for mssql.

Bs_MySql::isValidName()

  • add regexp for syntax check.

Bs_Oci::isValidName()

  • add regexp for syntax check.

Bs_MsSql::isValidName()

  • add regexp for syntax check.
  • rewrite code for mssql.

Bs_MsSql::listDatabases()

  • test this code.

Bs_MsSql::listFields()

  • rewrite code for mssql.

Bs_Odbc::listTables()

  • all

Bs_Oci::numRows()

  • implement this. currently returns a not-capable exception.

Bs_Db::parseDsn()

  • all

Bs_MsSql::rollback()

  • rewrite code for mssql.

Bs_MsSql::serverSupportsTableType()

  • rewrite code for mssql.

Bs_MsSql::startTransaction()

  • rewrite code for mssql.

Bs_MsSql::tableExists()

  • rewrite code for mssql.

Bs_MsSql::tableHasTransactions()

  • rewrite code for mssql.

Bs_MsSql::tableName()

  • rewrite code for mssql.

Bs_MsSql::tableName2()

  • rewrite code for mssql.

Bs_MySql::updateTableStructure()

  • code is not done, see yourself. currently only adds fields. maybe we should also create the table if it does not exist at all.

applications_debedoo

Bs_Debedoo::$overviewSettings

  • it's not really an overview setting, it's used for everything. rename it? recode stuff? i leave it by now. --andrej

Bs_Debedoo::$searchSettings

  • all (not sure if this one gets used at all in the future.)

core_file

Bs_File

  • Things like open, close, readLine, read, create, write, append
  • Slash-handling (espacilly the '/' and '\' distinction)

Bs_Dir::emptyDir()

  • remove empty subdirs afterwards? a prune() method would be neat (that dives into a dir and removes empty subdirs).

Bs_FileSystem::isValidFilename()

  • all

Bs_FileSystem::isValidFullPath()

  • all

Bs_FileSystem::isValidPath()

  • all

Bs_File::readAll()

  • finish code

Bs_FileConverterPdf::toHtmlFile()

  • all

Bs_FileConverter::wordVersion()

  • should we return '6' instead of 'word6', the number only?

core_lang

Bs_Is_Index::create()

  • add transactions

Bs_IndexServer::createIndex()

  • add transactions

Bs_IndexServer::dropIndex()

  • add transactions

Bs_Is_Index::dropIndex()

  • add transactions

evalWrap()

  • make use of the $security param.
  • return a bs_exception if the security check complains or a parse error occures while evaluating $phpCode.
  • add something to disallow output (echo, print, escaping code).

redirect()

  • if we get a relative url we have to make it absolute, otherwise some clients may not understand it.

rewriteUrlSession()

  • write main code

Bs_Exception::seedGlobals()

  • finish the code...

Bs_Exception::stackDump()

  • finish the 'alert' case.

plugins_instanthelp

Bs_Ih_InstantHelp::getText()

  • implement language handling

Bs_Ih_InstantHelp::setText()

  • change the default lang handling, i think.

applications_imagearchive

Bs_ImageArchive::$allowedTypes

  • accepte png

Bs_ImageArchive::treatUploadedFile()

  • allow multiple file uploads at once as defined in getFileUploadForm().

plugins_indexserver

Bs_Is_WebSearchEngine::$ignoreUrlsWithPass

  • implement this

Bs_Is_WebSearchEngine::$ignoreUrlsWithUser

  • implement this

Bs_Is_WebSearchEngine::$limitDomains

  • support "*.domain.com" (or is this supported using "domain.com"?)

Bs_Is_WebSearchEngine::$reindexIfUnchanged

  • code that functionality

Bs_Is_Profile::$_indexNumbers

  • code that feature.

Bs_Is_Profile::checkDbTables()

  • all

Bs_Is_Index::create()

  • add transactions

Bs_Is_Index::dropIndex()

  • add transactions

Bs_Is_Indexer::indexBySqlWhere()

  • all

Bs_Is_IndexServer::isStopWord()

  • implement code.

Bs_Is_Searcher::listCollocations()

  • all (not coded yet)

Bs_Is_Profile::load()

  • finish code.

Bs_Is_Profile::prune()

  • check if profile exists, and return FALSE if it does not instead of throwing an exception.

Bs_Is_Indexer::_assignLanguage()

  • if $lang is an array then decide which to use, or assign more than one. do something.

applications_cms

addSessionID()

  • write code

Bs_Navigation::getBreadcrumbNavigation()

  • make use of the $highlightCurrent param
  • implement language dependency somehow
  • add the language code to each fucking url. 3rd level domains would be easier like fr.domain.com/ so you could just link to /someshit/ instead of /fr/someshit/ ...

Bs_Navigation::getNavigationData_old()

  • implement cache (make use of $useCache param)
  • finish code

Bs_XAtom::matchFeature()

  • add support to check versions like for javascript 1.2+

Bs_XAtom::matchPlugin()

  • add support to check versions like for pdf5+

core_text

Bs_LanguageDetector::$wordDict

  • document this data structure

Bs_LanguageDetector::$wordDictDe

  • remove dublicates

Bs_LanguageDetector::$wordDictEn

  • remove dublicates

Bs_LanguageDetector::$wordDictFr

  • remove dublicates

Bs_LanguageDetector::$wordDictNl

  • remove dublicates

Bs_LanguageHandler

  • currently only reads the languages, should be able to write also. (implement in Bs_IniHandler)

Bs_LanguageDetector::detectText()

  • finish code with char replacements.

Bs_TextUtil::ordinal()

  • what about zero '0'?

core_storage

Bs_ObjPersisterForFile

  • finish this code. does not work yet, i think. or use the mysql implementation instead.

Bs_ObjPersisterForMySql::updateTableStructure()

  • finish this code. it already adds missing fields, but doesn't alter fields that need to be changed.

plugins_onomastics

Bs_Om_OnomasticsServer::getNicknames()

  • code

Bs_Om_OnomasticsServer::getTranslations()

  • code

Bs_Om_OnomasticsServer::getVariations()

  • code

Bs_Om_OnomasticsServer::translateFirstname()

  • code

applications_simplequiz

Bs_SimpleQuiz::$dontKnow

  • ?

Bs_SimpleQuiz::$giveNegativePoints

  • all

applications_smartshop

Bs_Ss_SmartShop::getProductFormatted()

  • implement $format support.

applications_websearchengine

Bs_Wse_Profile::$ignoreUrlsWithPass

  • implement this

Bs_Wse_Profile::$ignoreUrlsWithUser

  • implement this

Bs_Wse_Profile::$limitDomains

  • support "*.domain.com" (or is this supported using "domain.com"?)

Bs_Wse_Profile::$reindexIfUnchanged

  • code that functionality

Bs_Wse_Profile::$waitAfterIndex

  • this seems to not work. check this.

Bs_Wse_Profile::checkDbTables()

  • all

Bs_Wse_Profile::getCategoryForUrl()

  • finish code with 'preg' and 'ereg'

Bs_Wse_Profile::load()

  • finish code.

Bs_Wse_Profile::prune()

  • check if profile exists, and return FALSE if it does not instead of throwing an exception.

Documentation generated on Mon, 29 Dec 2003 21:16:42 +0100 by phpDocumentor 1.2.3