KWeb 6.4.x
Backend
nowe elementy
zmiany nazw
Regexp: \b(KWebObjectBase|KWebAttr_|[gs]etDataAttr|setPostData|getFormId|getDataAttributeEntry|getDataAttributeChildItems|setDraftDataAttr)\b
Regexp: \b(isAttrChanged|setAttrChanged|isDataAttrTranslated|isDataAttrTranslateable|unsetDataAttrTranslation|requestSqlUpdate|isSqlUpdateRequested)\b
Regexp: \b(->access|->lang|->sql|->sqlTable|->updateSql|['"]_lang['"]|->changed|getParsedDataAttr|isDataAttr|isPublishedVersion|getStatusCSSClass|sqlUpdate)\b
Regexp: \b(sqlUpdateItems|storeChanges)\b
- KWebObjectBase to teraz KWebObject
- KWebAttr_n* zamienione na KWebAttribute_N*
- getDataAttr -> getDataValue
- setDataAttr -> setDataValue
- KWebItem::setPostData to storePostedFormData()
- KWebAttribute::setPostData to storePostedFormData()
- KWebAttribute::getFormId() zmienione na Form::getFormName
- KWebItem::getDataAttributeEntry to teraz getAttribute
- KWebItem::getDataAttributeChildItems to teraz getChildItemsAttributes
- KWebItem::setDraftDataAttr to teraz copyDataValue
- isAttrChanged to teraz isDataChanged
- setAttrChanged to teraz setDataChanged
- isDataAttrTranslated to teraz isDataTranslated
- isDataAttrTranslateable to teraz isDataTranslateable
- unsetDataAttrTranslation to teraz unsetDataTranslation
- requestSqlUpdate to teraz requestDataUpdate
- isSqlUpdateRequested to teraz isDataUpdateRequested
- KWebItem::access to _access
- KWebItem::lang to _trans
- KWebItem::sql to _update sql['_lang'] to _update[self::DATA_TRANSLATIONS]
- KWebObject::changed to teraz _cacheDirty
- KWebItem::getParsedDataAttr to teraz getParsedDataValue
- KWebItem::isDataAttr to teraz isData
- KWebObject::isPublishedVersion to teraz isPublishedAndVisible
- KWebObject::getStatusCSSClass to teraz getObjectStatus
- KWebAttribute::sqlTable to teraz source
- KWebObject::sqlUpdate to teraz commitUpdates
- KWebCache::sqlUpdateItems to teraz storeUpdates
- KWebCache::storeSqlUpdates to teraz commitUpdates
- KWeb/KWebCache::storeChanges to teraz storeUpdates
- KWebObject::storeChanges to teraz commitUpdates
zmiany zasad
Regexp: \b(getAttributeTable|convertValue|convertSqlValue|->convert|KWebAttribute_Checkbox|->file|->data|['"](__creating|__new|__removed|__setremove)['"])|tmpl/debug|setDebug|getDataTable|getDataQuery|getObjectRating|getUserRating\b
- KWebAttribute::__construct nie przyjmuje już itema
- konstuktor KWebObject i KWebItem nie przyjmuje $row
- KWebAttribute nie używa $item, kontekst musi być przekazywany do poszczególnych funkcji!
- KWebObject_Attributable::getClassAttributes częściowo zastępuje getAttributeTable
- KWebObject_Attributable::getObjectAttributes zastępuje getDataAttributeTable
- KWebAttribute::convert*Value został zastąpiony przez convertData()
- KWebAttribute::$convert oznacza konwersję do STRINGa! $convertForm służy do konwersji na formularz!
- KWebAttribute_Checkbox jest pojedynczym checkboxem, Checkboxes służą do list
- usunięte KWebItem_File::$file - zamiast tego jest getFile()
- KWebItem::DATA_ uporządkowane na CACHE_ - TEMP_
- KWebObject wiele odwolan do data przeniesione do cache/temp
- KWebObject __creating i __new przeniesione do temp
- zamiast tmpl/debug i KWebTemplate::setDebug jest KWeb::setDebugging(). Debugowanie powinno być ustawiane w local.php, albo ready-local.php (dla sesji)
- zupełnie nowe szablony błędów, zamiast sumup i kweb_error jest kweb-sumup i kweb-error * - KWebItem::getItemPaths() zwraca krótkie ścieżki (jednoelementowe), wcześniej było to wykomentowane, ale nie wiem czemu...
- KWebItem::getItemPaths() zwraca krótkie ścieżki (jednoelementowe), wcześniej było to wykomentowane, ale nie wiem czemu...
- Zamiast KWebItem::getDataTable i getDataQuery() trzeba dodać KWebSource_Sql_Record do tablicy w getClassAttributes. Sprawdź KWebItem_Art
- FormItem::isValid wywołuje FormItem::validate. Wynik zapisywany jest jako lista błędów. Można dopisywać się do listy przez FormItem::pushError()
- KWebRating zwraca KWebRating_Entry (zawsze!)
- nowy LESS, nie ma już selektora ^ (jest za to ... &), w wywołaniach zamiast ';' jest ','
usunięte
Regexp: \b(setPostDataAttr|getPostedDataAttr|gotUserValue|prepareAttributePost)\b
- usunięty KWebAttribute::invalid
- usunięty KWebAttribute::isPostingEnabled
- usunięty KWebItem::setPostDataAttr, getPostedDataAttr, isDataAttrPosted
- usunięty KWebAttribute::gotUserValue, prepareAttributePost
- usunięte KWebAttribute::convertValue i convertSQLValue
- usunięte KWebItem::$posted, $postValid, getFormId()
- usunięte KWebAttribute::getFormEnabledId()
Akcje do zrobienia:
- Edytorzy muszą mieć pozwolenie View AJAX na całym drzewie!
KWeb 6.3.x
Backend
RegExp: \b(KWebConfig::load|KDBSettings|getPublishedChildren|getAttrId|edit/structure/(_itembar|_iteminfo|_moreinfo)|edit/bar/_slider)\b
- KWebConfig::load to teraz KWebBootstrap::$config->load
- zestawy KDBSettings powinny być tworzone jako KWebDBSettings_*
- edycja ustawień konfigurowana jest w klasach zestawów, podobnie jak wartości domyślne
- getPublishedChildren zwraca KWebCollection_Objects
- KWebAttribute::getAttrId() zmienione na getAttributeId()
- edit/structure/_itembar, _iteminfo, _moreinfo zamienione na edit/_bricks/object/bar, info i bar/info
- canAddChild, canAddLink, canAssignAsChild itp zawierają parametr $attrId
- zamiast edit/bar/_slider jest edit/menu/editbar
- nowa obsługa struktur (KWebObject::getStructures)
- obiekty menu Menu_Item
KWeb 6.2.x
Backend
Frontend
- Wyszukiwanie działa pod kontrolą Lucene. Dostępny jest nowy język zapytań. Treści mogą potrzebować kilku minut, żeby się odświeżyć.
- Wszystkie listy można filtrować, bardzo długie listy powinny się ładować znacznie szybciej w każdym z widoków
- Bledy ze stosu są przenoszone do kolejnego zapytania przy redirektcie
- Moderatorzy mogą podejrzeć element po faktycznej publikacji (uwzględnia np. podelementy), widok utrzymuje się podczas chodzenia po stronie (o ile szablon używa getUrl)
- Struktura nie pozwala na powtórzenie zapytania POST
- Możliwość pominięcia kosza
- Dodatkowe skróty do czyszczenia cache
KWeb 6.1.x
Backend
- wszystkie ścieżki w konfiguracji z wyjątkiem ścieżek uploadu są teraz absolutne!
- oprócz KWEB_PATH dostępny jest KWEB_PUBLIC_PATH który kieruje do plików publicznie dostępnych.
- podobnie pathLocal ma odpowiednik w postaci pathPublic, oraz f-cję pomocniczą pathSystem
- oprócz tmp_path jest też tmp_public_path
- publicznie dostępne pliki tmp znajdują się teraz w katalogu tmp_public_path (tmpub)
KWeb 6.0.x
Backend
- Global and section prefixes should be postfixed with '/' if they are directory prefixes. There was a bug that allowed it to work without the postfix.
- All classes are now dynamic! All occurences of ClassName::method should be changed to either ClassName::instance()->, ora ClassName::$inst. This applies to following: KWeb, KWebTemplate, KSetting, KWebSession, CacheBlock, Cron, KErrorStack, KScript, KVar, Mirror, MirrorSynch, KWebCache, KWebEdit, KWebLanguage, KWebObjects, KWebSections.
To automate this process use this grep match on all *.php and *.inc in local (syntax from RegExBuddy): And replace:
- KDBSettings uses new KVarBase, so all DB settings must use '_' instead of '/' (done automatically)
- All "pass by reference" for objects was removed. Should be done locally also with this search term: "(=\s*|function\s+|[,(]\s*)&" replace: "$1"
- KWebItem::getSql* są statyczne! z wyjątkiem getSqlDefaultChildOrder (statyczny odpowiednik to getSqlChildOrder)
- all constructors changed to __construct with: "(?si)(class\s+([^ ]+).+function\s+)\2\s*\(" replace: "$1__construct("
- all parent constructors changed to __construct with: "(class\s+([^ ]+)\s+extends\s+([^ {]+) .+?function\s+__construct.+?)(\$this->|self::|parent::)\3\s*\(" replace: "$1parent::__construct(" and search: "(\$this->|self::|parent::)[A-Z][^ (]+\(" replace: "$1parent::__construct("
- static function declarations, search: "(?<!static )function (prepareSearch|fetchObjects|getSql|loadClass|onObject|resolveObjectName|useObjectCache|buildCacheItem|canAssign|loadAllClasses|instance|_install|getDataQuery|getDataTable|isUsingObjectData|isTranslateable)", replace: "public static $0"
- all @ suppresed notices for arrays were changed to array_get with: "@(\$[a-z0-9_]+)\[(['"].+?['"])\]" replace: "array_get($1, $2)"
- all @ suppresed notices for arrays were changed to !empty with:
- all @ suppresed notices for assigned array values were changed to array_get with: ([^=><]=*)@($[a-z0-9_]+[^.;+ *]*)\[(.+?)\] replace: \1array_get(\2, \3)
- all @ suppresed notices for assigned array values were changed to isset search: ([^=><]=[!]*)@(($[a-z0-9_]+[^.;+ *]*)\[(.+?)[ \]]*\]) replace: $1isset($2)
- zapytanie getSqlPublishedChildren zawsze zwraca tablicę, nidgy nie dzieli na ATTR
- getSqlDefaultChildOrder() NIE MOŻE być używane statycznie! Większość getSql* MUSI być używana statycznie!
- Event został zamieniony na EventDispatcher i Event z symfony. Wszystkie zarejestrowane odwołania MUSZĄ być zmienione!
- usunięcie bibliotek WURFL i libcurlemu
- nowe KDB, nie ma już ::evtError
- do obsługi bazy danych używana jest domyślnie klasa KDB_PDO
- definicje baz mają teraz formę KSetting::$inst->get('db_nazwa');
- skrypty aktualizujące zostały przeniesione do /include/upgrades i mogą być porządkowane w podkatalogach, mogą też zawierać spacje i podkreślenia i być krótsze
- CacheBlock::$globalPrefix i $enabled zamienione na wersje dynamiczne
- Z KWeb zniknęły:
- zmienne $times, $cache, $tmpl, $db, $session, $script, $errors, $userOpt, $data
- funkcje getUserOpt()
- Szablony nie powinny używać $this
- KWebScript powinien być wywoływany przez instance()
- attribute, item i object zostały przeniesione do katalogów KWebAttr, KWebItem i KWebObject. Zmieniły się WSZYSTKIE nazwy itemów wg wzoru KWebItem_Typ (Typ z dużej litery). Jeżeli typ jest inny niż taka nazwa klasy trzeba ustawić odpowiedni override w ClassMap, lub w KWebObjects
- Itemy nie powinny się już rejestrować przez KWebObjects::install
- Nie istnieje już KWeb::pathOveride i KWeb::getPath
- prefixy globalne MUSZĄ być zakończone znakiem '/'
- widoki zawsze są katalogami - ścieżki jak view/full__item.inc są już niedozwolone (można zrobić je przez prefix)