| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182 |
- <div id="checkboxes">
- <script>
- $("#table_list td").click(function() {
- var one = $(this).html();
- var two = $(this).parent().children("td").html();
- if ( one != two ) {
- var str = one;
- var res = str.split('name="');
- str = res[1];
- res = str.split('"');
- str = res[0];
- //alert(str);
- // editKnowledgebaseEntry(str);
- showDetails(str);
- }
- });
- </script>
- <style>
- .tags_normal {
- padding: 2px 4px;
- font-size: 10px;
- border-radius: 4px;
- font-weight: 600;
- background-color: lightslategray;
- color: white;
- }
- </style>
- <table class="table table-striped" id="table_list">
- <thead>
- <tr>
- <th class="cb_table_first_row"></th>
- <th>Eintrag</th>
- <th></th>
- </tr>
- </thead>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="157"></span>
- <span style="float:right;"><span class="tags_normal">WEBSTORM</span> <span class="tags_normal">PHPSTORM</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realtobi_UT240506113321057679700.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Tobias Rosenke" /> </div><strong>Web- & PhpStorm | Warnung beim Überschreiben von Dateien</strong> <span class="small">(02.04.2025)</span><br>Da es leider öfters vorkommt, dass aktuellere Dateien mit den lokalen Dateien überschrieben werden, gibt es in Web- und PhpStorm eine nützliche Einstellung. Dies sollte am besten jeder bei sich umstellen, damit wir es so gut wie möglich minimieren können :)<br />
- <br />
- 1. Für bestehende Projekte muss man einmal in den Settings -> Build, Execution, Deployment -> Warn when uploading over newer file auf "Compare content" setzen.<br />
- <br />
- 2. Für neue Projekte kann man allgemein die Option anpassen. Dies kann man unter File ->New Projects Setup -> Settings for New Projects… und dort wie bei 1. die Einstellung vornehmen.<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:157')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="156"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">JS</span> <span class="tags_normal">CSS</span> <span class="tags_normal">MOBILE-BROWSER</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Berechnung des Titelbildes unter Berücksichtigung des Browserchromes</strong> <span class="small">(24.03.2025)</span><br>Wenn man mobil eine Fullscreensection erstellen will, die nicht vom Chrome beschnitten oder verdeckt werden soll, habe ich eine Möglichkeit herausgefunden, wie man diese dynamisch berechnen kann. Hierzu reicht ein kleines Javascript und eine CSS-Anpassung des betreffenden Elementes.<br />
- <br />
- // CSS-Anpassung des betreffenden Elementes:<br />
- .entsprechender-container {<br />
- height: 100vh;<br />
- height: calc(var(--vh, 1vh) * 100);<br />
- }<br><div style="position:relative; width:100"><pre class="language-javascript" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-javascript" style="white-space: pre-wrap;">// Browser-Heightcalculating for mobile// First we get the viewport height and we multiple it by 1% to get a value for a vh unitlet vh = window.innerHeight * 0.01;// Then we set the value in the --vh custom property to the root of the documentdocument.documentElement.style.setProperty('--vh', `${vh}px`);// We listen to the resize eventwindow.addEventListener('resize', () => { // We execute the same script as before let vh = window.innerHeight * 0.01; document.documentElement.style.setProperty('--vh', `${vh}px`);});<br></code></pre></div><a href="https://codepen.io/team/css-tricks/pen/WKdJaB" target="_blank" "><i class="bi bi-link-45deg"></i>https://codepen.io/team/css-tricks/pen/WKdJaB</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:156')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="155"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">SWIPER</span> <span class="tags_normal">JS</span> <span class="tags_normal">DESIGN</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Swiper-Slide Konfiguration</strong> <span class="small">(21.03.2025)</span><br>Falls ihr mal einen Swiper einsetzt, der Elemente anschneidet, interpretiert der Swiper dieses Element als „angeschnitten“ und slicet es bei Klick vollständig in den sichtbaren Bereich. Wenn ihr das unterbinden wollt und der Slider immer auf Klick reagieren soll, habe ich ein Snippet erstellt, was initial ein Autoplay mit Pause on MouseEnter und Mousescroll in Kombination mit dem schoon angesprochenen Klickverhalten beinhaltet.<br><div style="position:relative; width:100"><pre class="language-javascript" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-javascript" style="white-space: pre-wrap;">var facilitiesSwiperDetailEquipment = new Swiper('.facilitiesSwiperDetailEquipment', { pagination: { el: ".swiper-pagination-equipment", type: "fraction", }, speed: 5000, watchSlidesProgress: true, autoplay: { delay: 2500, disableOnInteraction: false, pauseOnMouseEnter: true, }, mousewheel: { releaseOnEdges: true, direction: "horizontal", followFinger: true, }, breakpoints: { 320: { slidesPerView: 1, spaceBetween: 60 }, 768: { slidesPerView: 1.8, spaceBetween: 60 }, 992: { slidesPerView: 1.8, spaceBetween: 60 }, 1200: { slidesPerView: 1.8, spaceBetween: 60 } }});<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:155')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="154"></span>
- <span style="float:right;"><span class="tags_normal">ARBEITSZEITEN</span> <span class="tags_normal">REGELUNGEN</span> <span class="tags_normal">AGENTUR</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realjens_UT240506112951007818100.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Jens Bextermüller" /> </div><strong>Aktualisierte Regelungen ab 01.03.2025: Arbeitszeit, Gleitzeit, FlexTime, Remote, Krankheit, Payback & Co.</strong> <span class="small">(28.02.2025)</span><br><br />
- Ab dem 01.03.2025 gelten folgende Regeln, bis auf Widerruf. <br />
- Besonders die flexiblen Arbeitszeitmodelle und angepassten Öffnungszeiten können bei Nichteinhaltung der Regeln widerrufen werden. <br />
- <br />
- Bitte tragt alle dazu bei, dass dies nicht geschehen muss.<br />
- Danke, David & Jens<br />
- <br />
- 1. Büro- und Kernarbeitszeiten<br />
- <br />
- Bürozeiten:<br />
- • Mo–Do: 08:00–17:00 Uhr, Fr: 08:00–15:00 Uhr<br />
- • Die Zentrale ist telefonisch besetzt, und aus jedem Bereich ist stets mindestens ein ausgelernter Mitarbeiter vor Ort. Besonders zwischen 08:00 und 10:00 Uhr muss volle Erreichbarkeit gewährleistet sein.<br />
- <br />
- Kernarbeitszeit:<br />
- • Mo–Do: 10:00–17:00 Uhr, Fr: 10:00–15:00 Uhr<br />
- • Alle Mitarbeiter müssen in dieser Zeit regulär anwesend sein.<br />
- <br />
- 2. Arbeitszeitvorgaben und Mittagspause<br />
- <br />
- Arbeitszeitvorgaben:<br />
- • Mindestarbeitszeit: 36 Stunden pro Woche bzw. 160 Stunden pro Monat.<br />
- • Wird in einer Woche weniger als 40 Stunden gearbeitet, erfolgt der Ausgleich im selben Monat.<br />
- <br />
- Mittagspause:<br />
- • Wahl zwischen 30 oder 60 Minuten, Start jeweils um 12:00 oder 13:00 Uhr.<br />
- <br />
- 3. Flexibles Zeitmanagement<br />
- <br />
- Flexible Arbeitszeiten (Gleitzeit):<br />
- • Arbeitsbeginn: Mo–Fr flexibel zwischen 07:00 und 10:00 Uhr.<br />
- • Arbeitsende: Mo–Do auch nach 17:00 Uhr, Fr auch nach 15:00 Uhr (zunächst max. bis 19:00 Uhr bzw. bis 17:00 Uhr oder nach Absprache/Genehmigung) <br />
- <br />
- Verkürzter Arbeitstag (Flextime):<br />
- • Ermöglicht, die tägliche Kernarbeitszeit um bis zu 2 Stunden (in 30-Minuten-Schritten) zu verkürzen, sodass ein früherer Feierabend möglich ist (Mo–Do ab 15:00 Uhr, Fr ab 13:00 Uhr).<br />
- • Diese Option darf nicht unmittelbar an die Mittagspause anschließen.<br />
- • Vorab erfolgt eine Abstimmung im jeweiligen Team; der Antrag ist frühzeitig über „projects“ einzureichen und wird von David oder Jens genehmigt/abgelehnt.<br />
- • Für Auszubildende gilt zusätzlich, dass diese Option maximal 2× pro Monat in Absprache mit dem zuständigen Ausbilder genutzt werden darf.<br />
- • Die Einhaltung der Monatsarbeitszeit muss durch Vor- oder Nacharbeit gewährleistet werden.<br />
- <br />
- 4. Agenturschlüssel, Fahrstuhl/Treppenhaus & Alarmanlage<br />
- • Um sowohl den Festangestellten als auch den Auszubildenden Zugang zum flexiblen Arbeitszeitmodell zu gewähren, bekommen ab sofort auch Auszubildende ab dem 2. Lehrjahr einen Agenturschlüssel für die Agenturräume (300er Schlüssel).<br />
- • Der Zugang zu den Agenturräumen ist ausdrücklich nur Mitarbeitern während der offiziellen Öffnungszeiten bzw. im Rahmen der Gleitzeitregeln gestattet.<br />
- • Ein Zugang außerhalb der Öffnungszeiten oder mit betriebsfremden Personen ist ausdrücklich untersagt und führt zur sofortigen Rückgabe der Schlüssel. Es gibt keine Ausnahmen.<br />
- • Die Alarmanlag in der Agentur ist bis 07:00 Uhr und ab 19:00 Uhr aktiviert.<br />
- • Die Zwischentür im Treppenhaus ist zwischen 06:30 Uhr und 19:00 Uhr geöffnet. Ebenso ist der Fahrstuhl nur in dieser Zeit in Betrieb. Außerhalb dieser Zeit ist der Zugang nur mit dem 1000er-Schlüssel (Tür unten) möglich und somit nicht mit dem 300er „Azubi-Schlüssel“ für die Agentur-Tür.<br />
- • Der Verlust eines Schlüssels muss unverzüglich gemeldet werden.<br />
- <br />
- 5. Remote-Arbeit<br />
- • Remote darf für die application und creation maximal 2× pro Woche und für die communication 1× pro Woche genutzt werden.<br />
- • Remote muss frühzeitig über „projects“ beantragt und von David oder Jens freigegeben werden.<br />
- • Die maximale Arbeitszeit im Remote beträgt 8 Stunden.<br />
- • Die Remote-Möglichkeit gilt zunächst nur für Festangestellte.<br />
- • Zudem muss immer mindestens ein festangestellter Mitarbeiter aus jedem Bereich vor Ort sein.<br />
- <br />
- 6. Urlaub<br />
- • Es gibt ganze und halbe Urlaubstage (4 oder 8 Stunden), die rechtzeitig über „projects“ zu beantragen und durch David oder Jens freizugeben sind.<br />
- • Resturlaub aus dem Vorjahr muss bis zum 31.03. des Folgejahres genommen werden, ansonsten verfällt dieser.<br />
- <br />
- 7. Krankheit<br />
- • Bei Krankheit bitte umgehend telefonisch mit David oder Jens abstimmen, damit notwendige Vertretungen organisiert werden können.<br />
- • Die voraussichtliche Dauer sollte kommuniziert werden.<br />
- • Eine ärztliche Krankmeldung (gelber Schein) ist ab dem 1. Krankheitstag erforderlich. Dieser wird automatisch vom Arzt an die Krankenkasse übermittelt und muss nicht mehr physisch in der Agentur vorgelegt werden.<br />
- • Bei Kindkrank-Tagen ist die entsprechend ausgefüllte Bescheinigung weiterhin digital bei David oder Jens vorzulegen.<br />
- <br />
- 8. Arztbesuch<br />
- • Akute Arztbesuche bitte vorher mit David oder Jens absprechen.<br />
- • Andere Arztbesuche sollten möglichst außerhalb der Arbeitszeit erfolgen (Gleitzeit und Flextime nutzen) oder innerhalb der Kernarbeitszeit abgesprochen werden.<br />
- • Arztbesuche sind keine Arbeitszeit und müssen nicht in der Zeiterfassung erfasst werden.<br />
- • Kalendereinträge sollten aus Datenschutzgründen allgemein gehalten werden.<br />
- <br />
- 9. Verspätungen durch externe Umstände<br />
- • Verspätungen, die die Kernarbeitszeit betreffen (z. B. durch Stau, ÖPNV, Wetterbedingungen), sind schnellstmöglich David oder Jens mitzuteilen.<br />
- • Die Arbeitszeit ist innerhalb der Woche oder durch Gleitzeit innerhalb des Monats nachzuholen.<br />
- <br />
- 10. Zeiterfassung<br />
- • Die Zeiterfassung sollte umgehend erfolgen und einem Kunden zugewiesen werden.<br />
- • Die Zeiten sollten möglichst präzise dem korrekten Kundenprojekt zugeordnet werden.<br />
- • Pauschales Buchen auf interne Zeiten für mehr als 4 Stunden am Tag gilt es zu vermeiden.<br />
- <br />
- 11. Payback-Modell<br />
- • Das Payback-Modell gilt für alle Vollzeit-Mitarbeiter oder nach Vereinbarung anteilig.<br />
- • Azubis steigen ab dem 2. Lehrjahr mit 50 % Payback ein.<br />
- • Die Stufen werden regelmäßig an die Teamstärke angeglichen.<br />
- <br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:154')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="153"></span>
- <span style="float:right;"><span class="tags_normal">APP</span> <span class="tags_normal">TYPO3</span> <span class="tags_normal">BUG</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realoezkan_UT240506113052011917100.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Özkan Karakas" /> </div><strong>TYPO3 v12 auf v13 Update: FlexForm-Fehler in DCE lösen</strong> <span class="small">(10.01.2025)</span><br>Fehlerbeschreibung : „ Invalid flex form data structure on field name "image" with element "settings.akkordeon" in section container "container_akkordeon":<br />
- Nesting elements that have database relations in flex form sections is not allowed.“<br />
- <br />
- Ursache des Problems : In TYPO3 13 und DCE 3.2.4 ist es nicht mehr erlaubt, Datenbank-Beziehungen (z. B. FAL für Bilder) innerhalb von FlexForm-Sections zu verschachteln. Das führt zu einem Fehler, wenn "image"-Felder (mit FAL) in einer Section als wiederholbare Elemente verwendet werden.<br />
- <br />
- Lösungsschritte<br />
- - Fehlerhafte Felder finden : Zuerst müssen die betroffenen Felder gefunden werden, die noch die alte TCA-Struktur nutzen.<br />
- <br />
- - TCA-Felder aktualisieren : Die gefundenen Felder werden mit der neuen TCA-Struktur ersetzt.<br />
- <br />
- - Cache löschen : Nach dem Update muss der Cache im Ordner var/cache manuell gelöscht werden, damit die Änderungen wirksam werden.<br />
- <br />
- - Update Wizard abschließen : Führen Sie anschließend im Backend den TYPO3 Update Wizard erneut aus, um das Update abzuschließen.<br><div style="position:relative; width:100"><pre class="language-javascript" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-javascript" style="white-space: pre-wrap;">Alte TCA-Struktur für das "image“-Feld
- <config>
- <type>group</type>
- <internal_type>db</internal_type>
- <appearance>
- <elementBrowserType>file</elementBrowserType>
- <elementBrowserAllowed>jpg,jpeg,png,gif,svg</elementBrowserAllowed>
- </appearance>
- <allowed>sys_file</allowed>
- <size>1</size>
- <minitems>0</minitems>
- <maxitems>1</maxitems>
- <show_thumbs>1</show_thumbs>
- </config>
- Neue TCA-Struktur für das "image“-Feld
- <config>
- <type>input</type>
- <renderType>inputLink</renderType>
- <size>30</size>
- <eval>trim</eval>
- <softref>typolink,typolink_tag,images,url</softref>
- <fieldControl>
- <linkPopup>
- <options>
- <!--<blindLinkOptions>file,mail,page,spec,url</blindLinkOptions>-->
- <!--<blindLinkFields>class,params,target,title</blindLinkFields>-->
- </options>
- </linkPopup>
- </fieldControl>
- </config>
- Beispiel-SQL-Abfrage:
- SELECT * FROM tx_dce_domain_model_dcefield WHERE configuration LIKE "%jpg,jpeg%“
- Beispiel-SQL-Abfrage:
- UPDATE tx_dce_domain_model_dcefield
- SET configuration = '<config>
- <type>input</type>
- <renderType>inputLink</renderType>
- <size>30</size>
- <eval>trim</eval>
- <softref>typolink,typolink_tag,images,url</softref>
- <fieldControl>
- <linkPopup>
- <options>
- <!--<blindLinkOptions>file,mail,page,spec,url</blindLinkOptions>-->
- <!--<blindLinkFields>class,params,target,title</blindLinkFields>-->
- </options>
- </linkPopup>
- </fieldControl>
- </config>'
- WHERE configuration LIKE "%jpg,jpeg%"
- <br></code></pre></div><a href="https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/Administration/Upgrade/Major/Index.html" target="_blank" "><i class="bi bi-link-45deg"></i>https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/Administration/Upgrade/Major/Index.html</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:153')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="152"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">TYPO3</span> <span class="tags_normal">FORMS</span> <span class="tags_normal">YAML</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Formularanpassungen via yaml-Dateien</strong> <span class="small">(03.12.2024)</span><br>Falls ihr mal Formulare (wie bei BvL) individuell im Hinblick auf Breiten der Felder bearbeiten müsst, macht es Sinn diese via .yaml-Daten zu bearbeiten.<br />
- Hierzu müsste ihr einmal in den betreffenden Ordner mit Namen „form_definitions“ gehen.<br />
- Am Beispiel von BvL wäre es wie folgt:<br />
- <br />
- Pfad zur den Formularen:<br />
- group_2023 > typo3_11 > public > fileadmin > form_definitions<br />
- <br />
- Pfad zu einer Beispiel yaml:<br />
- group_2023 > typo3_11 > public > fileadmin > form_definitions > anfrageBvLFibreCut.form.yaml<br />
- <br />
- Wenn ihr nun die Breite eines einzelnen Elementes anpassen wollt, müsst ihr in der yaml darauf achten, dass ihr den Bereich innerhalb der „renderables“ erwischt. Diesen Abschnitt seht ihr beispielhaft im untenstehenden Snippet. Hier ist die zusätzliche Klasse in den Properties des fieldset-1 (elementClassAttribute: w33)<br />
- <br />
- renderables:<br />
- -<br />
- renderingOptions:<br />
- previousButtonLabel: 'Previous step'<br />
- nextButtonLabel: 'Next step'<br />
- type: Page<br />
- identifier: page-1<br />
- label: ''<br />
- renderables:<br />
- -<br />
- type: Fieldset<br />
- identifier: fieldset-1<br />
- label: 'Ihre Kontaktdaten'<br />
- renderables:<br />
- -<br />
- properties:<br />
- elementClassAttribute: w33<br><div style="position:relative; width:100"><pre class="language-xml" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-xml" style="white-space: pre-wrap;">renderables: - renderingOptions: previousButtonLabel: 'Previous step' nextButtonLabel: 'Next step' type: Page identifier: page-1 label: '' renderables: - type: Fieldset identifier: fieldset-1 label: 'Ihre Kontaktdaten' renderables: - properties: elementClassAttribute: w33<br></code></pre></div><a href="http://dummy.cybob.com//_dummy/yaml-forms/lokalisierung-formulare.jpg | dummy.cybob.com//_dummy/yaml-forms/anpassung-formulardatensatz.jpg" target="_blank" "><i class="bi bi-link-45deg"></i>http://dummy.cybob.com//_dummy/yaml-forms/lokalisierung-formulare.jpg | dummy.cybob.com//_dummy/yaml-forms/anpassung-formulardatensatz.jpg</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:152')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="151"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">APP</span> <span class="tags_normal">TYPO3</span> <span class="tags_normal">SERVER</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realoezkan_UT240506113052011917100.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Özkan Karakas" /> </div><strong>TYPO3 Update von v11 auf v12: Voraussetzungen und Tipps</strong> <span class="small">(14.11.2024)</span><br>TYPO3 von Version 11 auf Version 12 aktualisieren: Vorbereitungen und Mindestanforderungen<br />
- <br />
- Voraussetzungen:<br />
- - PHP-Version: 8.1 oder höher<br />
- - MySQL-Version: 8 oder höher<br />
- - Subdomain-Erstellung: Richten Sie eine Subdomain ein, um die neue Version während der Aktualisierung zu testen.<br />
- - Ausreichender Speicherplatz: Stellen Sie sicher, dass genug Speicherplatz für Backups und die neue Installation vorhanden ist.<br />
- - Server-/Hosting-Kompatibilität: Falls der aktuelle Server diese Anforderungen nicht erfüllt, sollte ein alternativer Server oder ein neues Hosting in Betracht gezogen werden.<br />
- <br />
- Weitere Informationen zu den Anforderungen für TYPO3 v12 finden Sie hier:<br><a href=" https://typo3.org/article/new-system-requirements-for-upcoming-typo3-v12" target="_blank" "><i class="bi bi-link-45deg"></i> https://typo3.org/article/new-system-requirements-for-upcoming-typo3-v12</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:151')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="150"></span>
- <span style="float:right;"><span class="tags_normal">HTML</span> <span class="tags_normal">CSS</span> <span class="tags_normal">DESIGN</span> <span class="tags_normal">TYPOGRAFIE</span> <span class="tags_normal">TYPO</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsarah_UT240508154433006691200.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sarah Dettmeyer" /> </div><strong>CSS Text-Ausgleich</strong> <span class="small">(06.11.2024)</span><br>Wir alle kennen diese Überschriften, bei denen das letzte Wort in eine neue Zeile umbricht und dort allein steht, was total doof aussieht. <br />
- Die Lösung: text-wrap: balance<br />
- <br />
- Durch Anwendung der Eigenschaft text-wrap: balance berechnet der Browser automatisch die Anzahl der Wörter und teilt sie gleichmäßig auf zwei Zeilen auf. Dies ist nicht nur für Überschriften nützlich, sondern auch für Seitentitel, Kartentitel, Tooltipps, Modals und FAQs. -> Funktioniert tatsächlich in den meisten Browsern :)<br />
- <br />
- Bei größeren Textblöcken, wie z. B. Absätzen, ist text-wrap: pretty eine systemeigene CSS-Lösung zur Vermeidung von Waisen (alleinstehende Wörter) in der letzten Zeile. Es werden sogar die Silbentrennung und die vorherigen Zeilen angepasst, um Platz zu schaffen. Die Eigenschaft wird allerdings derzeit leider nur vom Chrome und Edge unterstützt. <br />
- <br />
- Probiert es einfach mal aus!<br><div style="position:relative; width:100"><pre class="language-css" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-css" style="white-space: pre-wrap;">text-wrap: balance;
- text-wrap: pretty;<br></code></pre></div><a href="https://ishadeed.com/article/css-text-wrap-balance/" target="_blank" "><i class="bi bi-link-45deg"></i>https://ishadeed.com/article/css-text-wrap-balance/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:150')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="149"></span>
- <span style="float:right;"><span class="tags_normal">SEO</span> <span class="tags_normal">WEB</span> <span class="tags_normal">WEBOPTIMIERT</span> <span class="tags_normal">BILDER</span> <span class="tags_normal">IMAGES</span> <span class="tags_normal">JPG</span> <span class="tags_normal">PNG</span> <span class="tags_normal">GIF</span> <span class="tags_normal">SVG</span> <span class="tags_normal">LADEGESCHWINDIGKEIT</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsarah_UT240508154433006691200.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sarah Dettmeyer" /> </div><strong>Bilder weboptimiert abspeichern // Suchmaschinenoptimierte Bildbenennungen</strong> <span class="small">(30.10.2024)</span><br>Für die Ladegeschwindigkeit einer Website oder auch App ist es wichtig Bilder weboptimiert anzulegen und abzuspeichern. Der richtige Einsatz von Bildgrößen und auch Dateiformaten spielt für die Sichtbarkeit bei Google eine wichtige Rolle. Außerdem halten wir mit optimierten Bildern den Server schlank, was sich auch wieder auf die Ladegeschwindigkeit auswirkt<br />
- <br />
- DATEIFORMATE (s. auch den Eintrag „Dateiformate im Bezug auf Einsatzbereiche“ von Sascha)<br />
- JPG: Standardformat für sämtliche Bilder im Web, benötigt verhältnismäßig wenig Speicherplatz<br />
- PNG: Einsatz AUSSCHLIESSLICH wenn Transparenzen dargestellt werden müssen, benötigt wesentlich mehr Speicherplatz als ein JPG<br />
- GIF: für ganz einfache Animationen (z.B. Werbebanner), für Grafiken/Icons mit wenig Farben, kann Transparenzen darstellen<br />
- SVG: Einsatz für Icons, Logos, Grafiken -> ACHTUNG: auch eine SVG kann sehr viel Speicherplatz benötigen! Große und umfangreiche Bilder daher ggf. besser als JPG oder GIF anlegen, Beispiel Weltkarten, Anfahrtskizzen <br />
- <br />
- WEBOPTIMIERT SPEICHERN<br />
- Auch wenn Bilder bei richtigem Templating automatisch auf die richtige Größe je Bildschirmbreite gebracht wird, ist es essenziell wichtig, dass wir die Bilder in der richtigen Größe bereitsstellen. Dafür sollten wir uns die Seite auch responsiv ansehen. Grade Teaserbilder oder Thumbbilder neben dem Text die in der Desktopansicht vielleicht ? der Bildschirmbreite einnehmen, werden für Tablets oder Smartphones über die ganze Breite dargestellt wodurch sie responsive dann größer benötigt werden. Ein Bild sollte generell nicht größer abgespeichert werden als benötigt. Bilder daher in Photoshop entweder über die Arbeitsfläche (Bild -> Arbeitsfläche) oder die Bildgröße (Bild -> Bildgröße) Pixelgenau anlegen.<br />
- Auch wie wir das Bild speichern ist wichtig. <br />
- Photoshop: Datei -> Exportieren -> Für Web speichern (Legacy) // Qualität „Hoch“ mit ca. 60%<br />
- Illustrator: Datei -> Exportieren -> Exportieren als -> SVG // Haken bei Responsive deaktivieren (einheitlichere Darstellung in unterschiedlichen Browsern)<br />
- <br />
- Nach dem Speichern sollten wir alles Bilder vorm Hochladen auf den Server nochmals über ImageOptim (oder ein vergleichbares Tool) nochmals komprimieren. Das spart meistens noch ein paar Prozente in der Dateigröße. <br />
- <br />
- BILDBENENNUNGEN<br />
- Damit Bilder vom Kunden und uns auch im Nachhinein leichter zugewiesen werden können, aber auch für die Bildersuche von Suchmaschinen spielt die Benennung der Bilder eine wichtige Rolle.<br />
- Zur besseren Orientierung und Sichtbarkeit sollten Bilder daher immer je Einsatz benannt werden. Für eine optimale Bewertung von Google sollten Bildbezeichnungen außerdem keine Leerzeichen, Sonderzeichen (wie z. B. ? ; & #), Unterstriche oder Umlaute (wie z. B. ö, ä, ü, ß) beinhalten.? Für eine bestmögliche Dateiübersicht, sollten Dateiordner sinnvoll und gleichartig strukturiert werden. Empfehlenswert sind z. B. Ordner auf Basis der Bildnutzung (titelimages, teaser, content, etc.) oder Ordner auf Basis der Websitestruktur (startseite, impressionen, etc.). <br />
- Beispiele:<br />
- teaser-bereich-firmenname.jpg (-> teaser-referenzhagemeinster-cybob.jpg)<br />
- produktabbildung-produktkaregorie-produktname-firmenname.jpg ( -> produkt-isolierkanne-samba-emsa.jpg // produkt-farbe-innen-hartwachsoel-original-osmo.jpg)<br />
- slider-bereich-fimenname.jpg (-> slider-refenenzen-muenster-thieme-stadtmobiliar.jpg)<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:149')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="148"></span>
- <span style="float:right;"><span class="tags_normal">NEWSLETTER</span> <span class="tags_normal">EMAIL</span> <span class="tags_normal">CLEVERREACH</span> <span class="tags_normal">ANLEITUNG</span> <span class="tags_normal">SCHULUNGSUNTERLAGEN</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsarah_UT240508154433006691200.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sarah Dettmeyer" /> </div><strong>Newsletterversand per CleverReach</strong> <span class="small">(30.10.2024)</span><br>Für diverse Kunden aber auch für cybob selbst verschicken wir Newsletter über das Tool CleverReach. <br />
- Die Erstellung der Newsletter sollte idealerweise über Typo3 erfolgen, sodass wir uns tatsächlich nur um den reinen Versand kümmern müssen.<br />
- <br />
- Eine Anleitung zum Versand findet ihr bei uns auf dem Dummy-Server.<br><a href="http://dummy.cybob.com/_dummy/newsletter/202408_cleverreach_anleitung_volage_anlegen_versand.pdf" target="_blank" "><i class="bi bi-link-45deg"></i>http://dummy.cybob.com/_dummy/newsletter/202408_cleverreach_anleitung_volage_anlegen_versand.pdf</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:148')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="147"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realtobi_UT240506113321057679700.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Tobias Rosenke" /> </div><strong>Fluid to inline converter</strong> <span class="small">(24.10.2024)</span><br>Da man ja öfters mal eine inline Schreibweise eines fluid tags benötigt, gibt es hier ein kleines Tool um sich diese aus einem fluid tag konvertieren zu lassen.<br><a href="https://fluid-to-inline-converter.com/" target="_blank" "><i class="bi bi-link-45deg"></i>https://fluid-to-inline-converter.com/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:147')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="146"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realholger_UT240506112908038257900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Holger Middelberg" /> </div><strong>TYPO3 Strukturbaum (Tree) einfärben und IDs anzeigen</strong> <span class="small">(17.10.2024)</span><br>Um einen Teilbereich in der Struktur einzufärben oder IDs anzuzeigen kann man mein jeweiligen Benutzer in den Einstellungen unter Optionen im Feld TSconfig folgendes eintragen:<br />
- <br />
- Die Zahl nach backgroundColor (in diesem Fall 2) ist die Page-ID, der Wert #c7dfb6 die anzuzeigende Farbe.<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">options.pageTree{
- showPageIdWithTitle = 1
- }
- options.pageTree{
- backgroundColor.2 = #c7dfb6
- }<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:146')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="145"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">APP</span> <span class="tags_normal">JS</span> <span class="tags_normal">CODE</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realoezkan_UT240506113052011917100.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Özkan Karakas" /> </div><strong>Google Maps FitBounds Funktion</strong> <span class="small">(15.10.2024)</span><br>Die Funktion nimmt die Grenzen eines Kreises, der mit einem bestimmten Mittelpunkt und einem Radius erstellt wurde. Diese Grenzen werden verwendet, um die Karte automatisch so einzustellen, dass der gesamte Bereich des Kreises sichtbar ist. Die Funktion zoomt die Karte entsprechend, sodass der Benutzer alle Punkte innerhalb des Kreises sehen kann.<br><div style="position:relative; width:100"><pre class="language-javascript" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-javascript" style="white-space: pre-wrap;">function adjustMapToFitCircle(center, radius) {
- const bounds = new google.maps.LatLngBounds();
- // Calculate the circle's NE and SW bounds
- const northEast = google.maps.geometry.spherical.computeOffset(center, radius * 1000, 45);
- const southWest = google.maps.geometry.spherical.computeOffset(center, radius * 1000, 225);
- // Extend bounds to include these points
- bounds.extend(northEast); bounds.extend(southWest);
- // Fit the map to the bounds of the
- circle map.fitBounds(bounds);
- }<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:145')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="144"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">JS</span> <span class="tags_normal">APP</span> <span class="tags_normal">CODE</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realoezkan_UT240506113052011917100.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Özkan Karakas" /> </div><strong>Google Maps Autocomplete</strong> <span class="small">(15.10.2024)</span><br>Google Maps Autocomplete ist eine Funktion, die dem Nutzer während der Eingabe einer Adresse oder eines Ortsnamen automatisch Vorschläge anzeigt. Während der Eingabe erscheinen Vorschläge aus der Google-Datenbank, und wenn ein Ort ausgewählt wird, werden die genauen Informationen (Koordinaten, formatierte Adresse) automatisch übernommen. Dadurch wird die Eingabe von Adressen schnell und präzise.<br />
- <br><div style="position:relative; width:100"><pre class="language-javascript" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-javascript" style="white-space: pre-wrap;"><!-- Input field for element autocomplete -->
- <input id="placeInput" type="text" placeholder="Enter a location" style="width: 300px;“>
- <script>
- const $placeInput = $('#placeInput'); // Select the input element using jQuery (make sure jQuery is included)
- function initAutocomplete() {
- const autocompleteOptions = {
- fields: ['geometry', 'formatted_address'], // Request only the geometry and formatted address
- };
- const autocomplete = new google.maps.places.Autocomplete($placeInput.get(0), autocompleteOptions);
- autocomplete.addListener('place_changed', () => {
- const place = autocomplete.getPlace();
- if (!place.geometry || !place.geometry.location) {
- console.log(`No details available for input: ${place.name}`);
- return;
- } // Do something with the selected place's geometry or address
- console.log(place.geometry.location);
- console.log(place.formatted_address);
- });
- }
- // Initialize autocomplete once the page is loaded
- window.onload = initAutocomplete;
- </script>
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:144')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="143"></span>
- <span style="float:right;"><span class="tags_normal">SERVER</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realholger_UT240506112908038257900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Holger Middelberg" /> </div><strong>E-Mail Zustellung (SPF und DKIM)</strong> <span class="small">(14.10.2024)</span><br>SPF: Es muss in den DNS-Einstellungen einer Domain erlaubt werden, dass der Server im Namen der Domain E-Mails versenden darf. Dazu ist ein SPF-Eintrag als TXT-Eintrag nötig. <br />
- <br />
- Beispiel (in einer Zeile):<br />
- <br />
- v=spf1 a mx a:cybob-one.com a:cybob-three.com a:cybob-four.com a:cybob-five.com -all <br />
- <br />
- Bei Mittwald heißt der zu erlaubende Server agenturserver.de, wenn zusätzlich Mittwald erlaubt werden soll ergibt sich z. B.<br />
- v=spf1 include:agenturserver.de a mx a:cybob-one.com a:cybob-three.com a:cybob-four.com a:cybob-five.com -all<br />
- <br />
- Siehe auch Doku von Mittwald:<br />
- https://www.mittwald.de/faq/e-mail/faq/spf-records<br />
- <br />
- <br />
- DKIM: Seit 2024 gibt es bei Google und Co. erhöhte Sicherheitseinstellungen. Bei den Domains muss ein bzw. zwei DKIM Einträge gesetzt werden, damit ein Mailserver auch Mails an Google etc. zustellt.<br />
- <br />
- Mittwald erfodert daher zwei Einträge als TXT-Eintrag:<br />
- <br />
- 1. Für die Subdomain agenturserver._domainkey.domain.tld<br />
- <br />
- v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3U8kqa4SiUlO5WBe8DwVPhhLNooNNe8VLEJ+9PbDHVeEw0O6mY2O6AvcqbnSeBO5Ac9Ix0RQzxe9krqSgWDR84IvROW/u4kMxELn+Q+Jy2QXYASbVWnYs4T6p1yIqBEgRfWDFnNtmRDvNFCAcRv2VkA0ykkRMq3u9E6FZTLMnGQIDAQAB<br />
- <br />
- 2. Für die Subdomain agenturserver2048._domainkey.domain.tld<br />
- <br />
- v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1BM9Prf00dhyP0i/fH0/k01oMSafqpl7biZMPjz/zxRJn+1YgSdeXt84NR3wZ5w+HWhtR27p1IEjchu179VOOyZ+xOte4owM+6FO7BVGnr/5IAlmRnC4fMvSeePdwun9fBExfkOroxwdEM4Y1+BqaSnpMT2xV6a2hRklymFzDkNQdmKrtm2AWSqg44iiMt3buEtZ0/y5SSBNd41zJYsp7UdPO2fgzF+C5gJrpyKhTWGB9ELLK83cd2Vdb8N+CC1Oh62eybgsMt2iBmxgnYAwp1LdTuxxNFYT2gEOFGL5KE01WM0L0+KALhwDQBcGcSC7Eup855OI/v8F4YDTZ3NCgQIDAQAB<br />
- <br />
- Siehe auch Doku von Mittwald:<br />
- https://www.mittwald.de/faq/e-mail/faq/was-ist-dkim-und-dmarc<br />
- <br />
- <br />
- <br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:143')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="142"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">HTML</span> <span class="tags_normal">CSS</span> <span class="tags_normal">SCSS</span> <span class="tags_normal">GRUNDLAGE</span> <span class="tags_normal">DUMMY</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsarah_UT240508154433006691200.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sarah Dettmeyer" /> </div><strong>Dummyerstellung einer Website</strong> <span class="small">(09.10.2024)</span><br>Wenn ein neuer Dummy für eine Website erstellt werden soll, sollten wir einheitlich den cybob Dummy auf dummy.cybob.com als Vorlage nutzen. Der Dummy basiert auf Bootstrap und enthält bereits ein paar Grundelemente die häufig auf unseren Websites vorkommen.<br />
- Dafür den kompletten Ordner kopieren und in einen entsprechenden Kundenordner (idealerweise mit Kundennummer) schieben.<br />
- <br />
- Hierbei sollten einige Dinge beachtet werden:<br />
- - nach Möglichkeit viele Bootstrap-Eigenschaften verwenden. So halten wir unsere eigenen SCSS schlank und Elemente lassen sich leicht auf andere Kunden adaptieren.<br />
- - Die Datenstruktur basiert auf den aktuellen Strukturen in Typo3 (default wird durch den Kundennamen ausgetauscht, Bsp. krone_styles, krone_site_package)<br />
- - Die SCSS Daten sollten wie folgt aufgeteilt bleiben :<br />
- default_global.scss (generelle Angaben wie Schriftgrößen, Mixins, Aufteilungen)<br />
- default_navigation.scss (sämtliche Angaben zur Navigation, vorallem beim Megamenü wie kröne-trailer.com)<br />
- default_formular.scss (Angaben zu Formularen)<br />
- default_styles.scss (enthält kundenspeziefische Styles und überschreibt die andern Angaben für z.B. Farben und Schriften, kundenspezifische Elemente)<br />
- <br />
- Es empfielt sich SCSS Dateien für größere Bereiche wie z.B. für eine Händlersuche o.ä. auszulagern. So werden die Daten schlanker gehalten und können ggf. für andere Kunden leichter mitgenutzt werden. Außerdem können einzelne Dateien/Scripte später beim Templating explizit für einzelne Templates eingebunden werden.<br><a href="http://dummy.cybob.com/_dummy/clean_dummy_bs-5-2_bs-icons/" target="_blank" "><i class="bi bi-link-45deg"></i>http://dummy.cybob.com/_dummy/clean_dummy_bs-5-2_bs-icons/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:142')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="141"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>PHP Storm - jQuery erkennen</strong> <span class="small">(12.09.2024)</span><br>In den Einstellungen kann man jQuery nachladen und erkennen<br><a href="https://medium.com/@zacbanas27/phpstorm-isnt-recognizing-jquery-easy-fix-d79f2f950314#:~:text=Click%20on%20preferences%20in%20the,jQuery%20buried%20in%20that%20list." target="_blank" "><i class="bi bi-link-45deg"></i>https://medium.com/@zacbanas27/phpstorm-isnt-recognizing-jquery-easy-fix-d79f2f950314#:~:text=Click%20on%20preferences%20in%20the,jQuery%20buried%20in%20that%20list.</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:141')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="140"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">HTML</span> <span class="tags_normal">TEMPLATING</span> <span class="tags_normal">COOKIES</span> <span class="tags_normal">OPTIN/OPTOUT</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Templates mit YouTube-iFrames</strong> <span class="small">(30.08.2024)</span><br>Denkt bitte beim Templating daran, dass ihr bei Templates mit iFrames von YouTube auch die Optin und Optout-Möglichkeiten verwendet und berücksichtigt. Im Snippet ist hierzu ein Beispiel.<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;"><div class="container"> <div class="analytics_youtube-optout col-12"> <div class="no-external-media" style="background-image:url(/typo3conf/ext/site_package/Resources/Public/Images/cookie-video-placeholder.jpg);"> <div class="notice"> <div class="noticetext"> <p> <f:translate key="label.youtubeOverlayText" extensionName="site_package"/> <f:link.page pageUid="17" class="cookie_link" target="_blank"> <f:translate key="label.privacypolicylink" extensionName="site_package"/></f:link.page>. </p> <a href="#" class="reset-cookies"> <button class="button"> <f:translate key="label.youtubeOvelayPrivacySettings" extensionName="site_package"/> </button> </a> </div> </div> </div> </div> <div class="analytics_youtube-optin col-12"> <iframe width="1200" height="550" src="" data-category="marketing" data-src="https://www.youtube.com/embed/{field.embedcode}" title="YouTube video player" loading="lazy" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe></div><br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:140')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="139"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">CODE</span> <span class="tags_normal">SERVER</span> <span class="tags_normal">PHP</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/freisteller-elias-24_UT240830160118046957200.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Elias Bergmann" /> </div><strong>Google Maps snapshot PNG erstellen</strong> <span class="small">(29.08.2024)</span><br>Diese PHP Funktion generiert mithilfe der Google Maps static api einen Screenshot von einer Map, die man z.B. in eine PDF einbinden kann.<br />
- <br />
- Die Werte, die in Caps geschrieben sind müssen dementsprechend ausgefüllt werden<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">function downloadMapSnapshot($saveLocation) {
- global $arrOutput; //Geocoordinate list
- $url = 'https://maps.googleapis.com/maps/api/staticmap';
- $url .= '?center=51.19487336190002,10.430072483469583';
- $url .= '&zoom=5';
- $counter = 0;
- foreach ($arrOutput as $key => $entry) {
- if ($counter >= WERT_ZUM_AUSSTEIGEN) {
- break; //Exit when all markers are loaded (Max =15)
- }
- $url .= '&markers=color:black%7Clabel:'.$entry["reference_id"].'%7C';
- $url .= $entry["data_geocoordinates"];
- $url .= '&markers=size:tiny%7Ccolor:green%7CDelta+Junction,AK';
- $counter++;
- //set Markers and increment for loop
- }
- $url .= '&size=640x275';
- $url .= '&scale=2';
- $url .= '&key=API_KEY';
- $fixedUrl = str_replace(' ', '', $url); // remove spaces in URL, because Curl wont load with them
- //echo "<pre>"; print_r($fixedUrl); echo "</pre>";exit;
- // Initialize cURL session
- $ch = curl_init($fixedUrl);
- // Set cURL options
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
- // Verify SSL certificate
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
- // Execute cURL request
- $response = curl_exec($ch);
- //echo "<pre>"; print_r($response); echo "</pre>";exit;
- // Check for cURL errors
- if (curl_errno($ch)) {
- echo 'cURL Error: ' . curl_error($ch);
- curl_close($ch);
- return false;
- }
- // Get HTTP response code
- $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
- // Close cURL session
- curl_close($ch);
- // Check if the request was successful
- if ($httpCode == 200) {
- $uploadDir = $saveLocation;
- // Create upload directory if it doesn't exist
- if (!is_dir($uploadDir)) {
- if (!mkdir($uploadDir, 0755, true)) {
- echo 'Failed to create directories...';
- return false;
- }
- }
- $filePath = $uploadDir . '/map.png'; // Save the image to the specified path
- if (file_put_contents($filePath, $response)) {
- //echo 'Map snapshot saved successfully to ' . $filePath;
- return true;
- } else {
- echo 'Failed to save the map snapshot.';
- return false;
- }
- } else {
- echo 'HTTP Error: ' . $httpCode;
- return false;
- }
- }<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:139')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="138"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">JS</span> <span class="tags_normal">YOUTUBE</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Stoppen eines YouTube-Videos beim Schließen einer Modal</strong> <span class="small">(15.08.2024)</span><br>Wenn ihr beim Schließen einer Modal möchtet, dass euer Youtub-Video stoppt, fügt folgendes JS in eure general mit ein (Natürlich dann mit den richtigen Klassen bzw. IDs)<br><div style="position:relative; width:100"><pre class="language-javascript" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-javascript" style="white-space: pre-wrap;">$('#exampleModal').on('hide.bs.modal', function() { var memory = $(this).html(); $(this).html(memory); })<br></code></pre></div><a href="https://stackoverflow.com/questions/22613303/youtube-video-still-playing-when-bootstrap-modal-closes" target="_blank" "><i class="bi bi-link-45deg"></i>https://stackoverflow.com/questions/22613303/youtube-video-still-playing-when-bootstrap-modal-closes</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:138')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="137"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">HTML</span> <span class="tags_normal">CSS</span> <span class="tags_normal">CODE</span> <span class="tags_normal">SUPPORT</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsarah_UT240508154433006691200.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sarah Dettmeyer" /> </div><strong>HTML Einstieg für Azubis / Praktikanten</strong> <span class="small">(09.08.2024)</span><br>Auf dieser Seite gibt es tolle Beispiele für den Einstieg in HTML, CSS und Bootstrap. Habe mal ein paar schöne Aufgaben rausgesucht:<br />
- <br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;">https://linz.coderdojo.net/uebungsanleitungen/programmieren/web/html-meine-erste-webseite/
- https://linz.coderdojo.net/uebungsanleitungen/programmieren/web/erste-schritte-mit-css/
- https://linz.coderdojo.net/uebungsanleitungen/programmieren/web/css-advanced-styles/
- https://linz.coderdojo.net/uebungsanleitungen/programmieren/web/html-css-hands-on/
- https://linz.coderdojo.net/uebungsanleitungen/programmieren/web/erste-schritte-mit-bootstrap/<br></code></pre></div><a href="https://linz.coderdojo.net/uebungsanleitungen/programmieren/web/" target="_blank" "><i class="bi bi-link-45deg"></i>https://linz.coderdojo.net/uebungsanleitungen/programmieren/web/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:137')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="136"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">JS</span> <span class="tags_normal">ANIMATIONEN</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Scrollbare Pfadanimation</strong> <span class="small">(10.07.2024)</span><br>Es ist möglich via JS einen Pfad zu animieren. Hierzu benötigt man einen Pfad als SVG (mit Viewbox) und das folgende Snippet. Via Scrollverhalten bekommt ihr dann einen animierten Pfad.<br />
- <br />
- Alternativ dazu können wir auch Scripte von GSAP nutzen, die diese Optionen ebenfalls anbieten.<br><div style="position:relative; width:100"><pre class="language-javascript" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-javascript" style="white-space: pre-wrap;">const bodyWidth= $(document).width();const bodyHeight = $(document).height();var svgQuery = document.querySelector('svg'); svgQuery.setAttribute('viewBox', "0 0 "+bodyWidth+" "+bodyHeight); svgQuery.setAttribute('width',bodyWidth); const svg = document.getElementById("star-path"); const length = svg.getTotalLength(); // start positioning of svg drawing svg.style.strokeDasharray = length; // hide svg before scrolling starts svg.style.strokeDashoffset = length; window.addEventListener("scroll", function () { const scrollpercent = (document.body.scrollTop + document.documentElement.scrollTop) / (document.documentElement.scrollHeight - document.documentElement.clientHeight); console.log(scrollpercent); const draw = length * 1.7 * scrollpercent; // Reverse the drawing when scroll upwards svg.style.strokeDashoffset = length - draw; });<br></code></pre></div><a href="https://codepen.io/w3programmings/pen/MMBxMV" target="_blank" "><i class="bi bi-link-45deg"></i>https://codepen.io/w3programmings/pen/MMBxMV</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:136')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="135"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">TYPO3</span> <span class="tags_normal">HTML</span> <span class="tags_normal">TEMPLATING</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsarah_UT240508154433006691200.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sarah Dettmeyer" /> </div><strong>Title-Tag eines Links per Fluid ausgeben</strong> <span class="small">(15.05.2024)</span><br>In Fluid kann der Title-Tag der über das Linkmenü gepflegt werden kann ganz einfach ausgegeben werden. <br />
- So spart man sich ein extra Textfeld und es muss auch nicht (mehr) über Pseudoklassen getrickst werden.<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;"><f:link.typolink parameter="{image.link}" parts-as="parts" class="mt-4 col-12 col-md-8 offset-md-2 col-lg-4 offset-lg-4 btn btn-link outline text-light arrow">
- <f:if condition="{parts.title}">
- <f:then>
- {parts.title}
- </f:then>
- <f:else>
- Mehr erfahren
- </f:else>
- </f:if>
- </f:link.typolink><br></code></pre></div><a href="https://stackoverflow.com/questions/59428167/how-to-set-the-link-title-as-linktext-with-flink-typolink-viewhelper-in-typo3-9" target="_blank" "><i class="bi bi-link-45deg"></i>https://stackoverflow.com/questions/59428167/how-to-set-the-link-title-as-linktext-with-flink-typolink-viewhelper-in-typo3-9</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:135')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="134"></span>
- <span style="float:right;"><span class="tags_normal">INTERN</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realholger_UT240506112908038257900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Holger Middelberg" /> </div><strong>Bußgelder</strong> <span class="small">(13.03.2024)</span><br>Bußgelder jeder Art (Blitzer, falsch Parken, Kunde verprügeln, usw.) werden nicht von der Firma übernommen werden, da diese vermeidbar sind.<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:134')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="133"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realholger_UT240506112908038257900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Holger Middelberg" /> </div><strong>TYPO3 Installation</strong> <span class="small">(13.03.2024)</span><br>Für eine TYPO3-Installation sind bestimmte Zugänge und Informationen nötig. Für die Anforderungen lässt sich (auch vom Projektmanager) das Tool TYPO3 Helper nutzen. Daraus lässt sich ein Skript generieren, welches bei der Installation genutzt werden kann.<br />
- <br />
- Vom Projektmanager zu organisieren:<br />
- - Hosting (Webspace) ink. geeigner PHP- und MySQL Versionen<br />
- - Domain (URL)<br />
- - SFTP Zugang<br />
- - Datenbank Name<br />
- - Datenbank Benutzer<br />
- - Datenbank Passwort<br />
- - benötigte Frontend Sprachen<br />
- - Klickdummy (für Mastertemplate)<br />
- <br />
- Vom Entwickler mindestens zu berücksichtigen:<br />
- - Basisinstallation (inkl. site package)<br />
- - WS-SCSS Kompilierung<br />
- - Template-Erweiterung (DCE)<br />
- - Mastertemplate<br />
- - Backendsprachen (mind. DE und EN)<br />
- - Formularerweiterung (TYPO3 oder PowerMail) <br />
- - htaccess Schutz für das Frontend (während Entwicklung)<br />
- <br />
- Typo3 Installations Schritte:<br />
- Ereitstellung der Zugangsdaten für den Hosting-Dienst zur Einrichtung einer Domain-Weiterleitung und Erstellung einer neuen Datenbank.<br />
- Erstellen der FTP/SFTP-Zugangsdaten für die SSH-Verbindung (Domain, Benutzername, Passwort)<br />
- Erstellen der Zugangsdaten zur Datenbank (DB-Hostname, DB-Benutzername, DB-Passwort)<br />
- Installation externer (z. B. DCE) und interner (Template-Site-Pakete, Site-Pakete) Extentions<br />
- Einstellung der Systemsprache als Standardsprache auf Deutsch<br />
- Übertragung des Dummy-Templates in Typo3.<br />
- <br><a href="https://apps.cybob.com/typo3_helper/" target="_blank" "><i class="bi bi-link-45deg"></i>https://apps.cybob.com/typo3_helper/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:133')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="132"></span>
- <span style="float:right;"><span class="tags_normal">INTERN</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realholger_UT240506112908038257900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Holger Middelberg" /> </div><strong>Abrechnungen Kunden</strong> <span class="small">(09.02.2024)</span><br>Nachfolgende Infos gelten für Abrechnungen diverser Kunden (alphabetisch sortiert):<br />
- <br />
- animonda<br />
- Zustellung: digital<br />
- Adresse: eingangsrechnungen@animonda.de<br />
- Anforderungen: Fester Betreff "cybob communication GmbH - RE xxxxx", Ansprechpartner in CC, kein Text in der E-Mail<br />
- <br />
- ARI Armaturen<br />
- Zustellung: digital<br />
- Adresse: invoice@ari-armaturen.com<br />
- Anforderungen: Für getrennte Plattformen und Länder separate Rechnungen erstellen<br />
- <br />
- Beate Hagedorn<br />
- Zustellung: digital<br />
- Adresse: info@beate-hagedorn.de<br />
- Anforderungen: keine<br />
- <br />
- Bopla<br />
- Zustellung: digital<br />
- Adresse: jochen.limberg@bopla.de<br />
- <br />
- Brillux<br />
- Zustellung: digital<br />
- Adresse: pdf-invoices@brillux.de<br />
- Anforderungen: Rechnung immer unter Angabe der Bestellnummer und nur 1 PDF pro E-Mail, ohne Ansprechpartner in der RE, kein Text in der E-Mail<br />
- <br />
- BvL Landmaschinentechnik<br />
- Zustellung: digital<br />
- Adresse: pi-atec@bvl-group.de<br />
- Anforderungen: keine<br />
- <br />
- BvL Oberflächentechnik<br />
- Zustellung: digital<br />
- Adresse: einkauf-otec@bvl-group.de<br />
- Anforderungen: keine<br />
- <br />
- EMSA<br />
- Zustellung: digital<br />
- Adresse: finance-emsa@groupeseb.com<br />
- Anforderungen: Rechnung immer unter Angabe der PO-Nummer (Bestellung) und ohne Ansprechpartner in der RE, mit 60 Tagen Zahlungsziel<br />
- <br />
- Fördertechnik Kentzler<br />
- Zustellung: digital<br />
- Adresse: eingangsrechnungen@kentzler-foerdertechnik.de<br />
- Anforderungen: keine<br />
- <br />
- Groupe SEB WMF Consumer<br />
- Zustellung: digital<br />
- Adresse: plgs.083-de-invoice@groupeseb.com<br />
- Anforderungen: Rechnung immer unter Angabe der PO-Nummer (Bestellung) und ohne Ansprechpartner in der RE, mit 60 Tagen Zahlungsziel<br />
- <br />
- Hagemeister<br />
- Zustellung: digital<br />
- Adresse: rechnung@hagemeister.de<br />
- Anforderungen: keine<br />
- <br />
- Hotel Höpke<br />
- Zustellung: digital<br />
- Adresse: rechnungen@hotel-hoepke.de<br />
- Anforderungen: ohne Ansprechpartner in der RE<br />
- <br />
- Kindermann<br />
- Zustellung: digital<br />
- Adresse: marks@kindermann-wellpappen.de<br />
- Anforderungen: keine<br />
- <br />
- KRONE Maschinenfabrik<br />
- Zustellung: digital<br />
- Adresse: rechnungseingang.mbk@krone.de<br />
- Anforderungen: Für getrennte Plattformen und Länder separate Rechnungen erstellen<br />
- <br />
- Landhotel Annelie<br />
- Zustellung: digital<br />
- Adresse: rechnungen@landhotel-annelie.de<br />
- Anforderungen: keine<br />
- <br />
- Lippe (Konsequent)<br />
- Zustellung: digital<br />
- Adresse: sutthoff@konsequent-pr.de<br />
- Anforderungen: keine<br />
- <br />
- OSMO<br />
- Zustellung: per Post<br />
- <br />
- PTR HARTMAN (Werne):<br />
- Zustellung: digital<br />
- Adresse: rechnung@ptr-hartmann.com und christina.gennat@ptr-hartmann.com<br />
- <br />
- PTR HARTMAN (Baiersdorf):<br />
- Zustellung: digital<br />
- Adresse: rechnung@ptr-hartmann.com<br />
- <br />
- R+R Maschinenbau<br />
- Zustellung digital<br />
- Adresse: einkauf@rr-maschinenbau.de<br />
- <br />
- RK Rose + Krieger<br />
- Zustellung: digital<br />
- Adresse: bernd.kloepper@rk-online.de<br />
- Anforderungen: Für getrennte Plattformen und Länder separate Rechnungen erstellen<br />
- <br />
- Sommer Maschinenbau<br />
- Zustellung: digital<br />
- Adresse: einkauf@sommer-maschinenbau.de<br />
- <br />
- Thieme<br />
- Zustellung: digital<br />
- Adresse: info@thieme-stadtmobiliar.com<br />
- Anforderungen: keine<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:132')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="131"></span>
- <span style="float:right;"><span class="tags_normal">INTERN</span> <span class="tags_normal">KICKOFF2024</span> <span class="tags_normal">CKI-AWARD</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realjens_UT240506112951007818100.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Jens Bextermüller" /> </div><strong>Kickoff 2024 & CKI-Award</strong> <span class="small">(06.02.2024)</span><br>Hier könnt ihr die PDF-Version der Keynote vom Kickoff am 05.02.2024 einsehen. Diese beinhaltet unsere Strategie für das Jahr 2024 sowie sämtliche Informationen und Rahmenbedingungen zum CKI Award 2024. Für Fragen stehen wir jederzeit gerne zur Verfügung.<br />
- <br />
- /Volumes/creation/10001 cybob/02 projekte/xxxxxx_kick-off-2024<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:131')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="130"></span>
- <span style="float:right;"><span class="tags_normal">INTERN</span> <span class="tags_normal">EMAILS</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realjens_UT240506112951007818100.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Jens Bextermüller" /> </div><strong>Autoresponder für E-Mails anlegen (Webmail)</strong> <span class="small">(23.01.2024)</span><br>Über die neue Mittwald Webmail Oberfläche unter https://webmail.mittwald.de/ können wir nun einen Autoresponder für den Fall unserer Abwesenheit (Urlaub, Krankheit etc.) einrichten: Einstellungen/Autoresponder<br />
- <br />
- Hierfür haben wir einen einheitlichen Text definiert, bitte hinterlegt diesen und aktivieren den Autoresponder nur bei Abwesenheit unter Angabe des entsprechenden Zeitraums. Für die korrekte Einstellung des Autoresponders ist jeder selbst verantwortlich.<br />
- <br />
- Bitte folgenden Standardtext hinterlegen und im Text (DE+EN) nur jeweils das Datum der Rückkehr anpassen. Alles Weitere bitte unverändert lassen, damit wir hier einheitlich auftreten.<br />
- <br />
- Wir verzichten zunächst bewusst auf die Nennung der info@cybob.com (in dringenden Fällen soll der Kunde anrufen) und in der Signatur auf die Nennung der Position und der Durchwahl (da der Autoresponder auch bei Werbemails greift und diese Infos nicht jeder kennen muss).<br />
- <br />
- TEXTVORLAGE:<br />
- <br />
- Sehr geehrte Damen und Herren,<br />
- <br />
- vielen Dank für Ihre E-Mail. Ich bin ab dem 23.01.2024 wieder für Sie erreichbar. Ihre E-Mail wird nicht automatisch weitergeleitet. In dringenden Fällen wenden Sie sich bitte telefonisch an unsere Zentrale: +49 (0) 541 91189 0.<br />
- <br />
- <br />
- Dear Sir or Madam,<br />
- <br />
- Thank you for your e-mail. I am currently out of office and will be available again on 23 January 2024. Your e-mail will not be forwarded automatically. In urgent cases, please call our office: +49 (0) 541 91189 0.<br />
- <br />
- Viele Grüße / Kind regards,<br />
- <br />
- Jens Bextermüller<br />
- <br />
- +49 (0) 541 91189 0<br />
- <br />
- cybob communication GmbH<br />
- Große Hamkenstr. 30, 49074 Osnabrück<br />
- <br />
- www.cybob.com<br />
- <br />
- Amtsgericht Osnabrück, HRB 21041<br />
- Geschäftsführung: Robert Heuer, Holger Middelberg, Jens Bextermüller, David Juber<br />
- <br><a href="https://webmail.mittwald.de/" target="_blank" "><i class="bi bi-link-45deg"></i>https://webmail.mittwald.de/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:130')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="129"></span>
- <span style="float:right;"><span class="tags_normal">INTERN</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realholger_UT240506112908038257900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Holger Middelberg" /> </div><strong>cybob E-Mails</strong> <span class="small">(18.01.2024)</span><br>Die cybob E-Mails werden von Mittwald verwaltet:<br />
- <br />
- - E-Mails sind grundsätzlich vorname.nachname@cybob.com<br />
- - die Passwörter werden wieterhin zentral vergeben<br />
- - die E-Mails können auch über einen Browser eingesehen werden, dazu bitte als User die Mailadresse mit Passwort eingeben: https://webmail.mittwald.de<br />
- - über den Webmail Account lassen sich z. B. auch Autoresponder konfigurieren<br />
- <br />
- Bitte darauf achten, dass<br />
- - Spam E-Mails regelmäßig gelöscht werden<br />
- - der Papierkorb regelmäßig gelscht wird<br />
- <br />
- Die Einrichtung am Mac oder anderen Rechnern ist hier beschrieben:<br><a href="https://www.mittwald.de/faq/e-mail/grundeinstellungen/e-mail-client-einrichten" target="_blank" "><i class="bi bi-link-45deg"></i>https://www.mittwald.de/faq/e-mail/grundeinstellungen/e-mail-client-einrichten</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:129')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="128"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">CSS</span> <span class="tags_normal">DESIGN</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Worttrennungen mit Hyphens</strong> <span class="small">(11.01.2024)</span><br>Es gibt Neuerdings Optionen zur genaueren Definierung von Hyphens. Wenn ihr diese nutzt, kann es sein, dass diese hier und da unschön umbrechen. Damit ist nun Schluss. Mit folgendem Snippet könnt ihr die Umbrüche genauer steuern. Werte können hierbei angepasst werden. Je nach Bedarf.<br><div style="position:relative; width:100"><pre class="language-css" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-css" style="white-space: pre-wrap;">hyphens: auto;
- hyphenate-limit-chars: auto 5;
- hyphenate-limit-lines: 2;
- -webkit-hyphens: auto;
- -webkit-hyphenate-limit-chars: auto 3;
- -webkit-hyphenate-limit-lines: -17;
- -ms-hyphens: auto;
- -ms-hyphenate-limit-chars: auto 3;
- -ms-hyphenate-limit-lines: 4;<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:128')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="127"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>Mit Tabulator getrennte CSV in Numbers öffnen</strong> <span class="small">(12.12.2023)</span><br>Ganz Apple-like gibt es tatsächlich eine Möglichkeit auch in Numbers eine CSV zu öffnen, die mit Tabulkatoren (Tabs) getrennt ist.<br />
- Dazu das Werkzeug „Format“ oben rechts anklicken.<br />
- Gfs. eine Zelle anwählen, sodass sich die Kontextfläche unterhalb des Werkzeugs „Format“ ändert.<br />
- Dort den Tab „Tabelle“ auswählen.<br />
- Ganz unten gibt es nun die Schaltfläche „Einstellungen für den Import anpassen“.<br />
- Dort Tab auswählen und da Komma deaktivieren und „Tabelle aktualisieren“ klicken.<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:127')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="126"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">PRINT</span> <span class="tags_normal">LOGO</span> <span class="tags_normal">DATEIFORMATE</span> <span class="tags_normal">FARBRäUME</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Dateiformate im Bezug auf Einsatzbereiche</strong> <span class="small">(26.10.2023)</span><br>Hier findet ihr eine kleine Übersicht der gängigsten Dateiformate für unsere Einsätze.<br />
- <br />
- -------------<br />
- Digital (RGB)<br />
- -------------<br />
- <br />
- .jpg<br />
- -> komprimierte Bilddatei, unterstützt keine Transparenzen<br />
- <br />
- .png<br />
- -> leicht komprimierte Bilddatei, unterstützt Transparenzen<br />
- <br />
- .gif<br />
- -> Bilddatei mit geringer Speichermenge zur Darstellung von pixelhaften / animierten Grafiken <br />
- <br />
- .ai<br />
- -> Vektorbasierte Datei (RGB und CMYK Format für eine Weiterverarbeitung in anderen Medien)<br />
- <br />
- .svg<br />
- -> Vektorbasierte Datei (optimal für Nutzung von Icons oder Logos in digialen Medien)<br />
- <br />
- .pdf<br />
- -> Kann aber auch für Logodaten/Zeichnungen o.ä. eingesetzt werden, da Vektorinformationen und Farbräume mitgespeichert werden. (RGB/CMYK)<br />
- <br />
- -------------------------<br />
- Print (CYMK/Sonderfarben)<br />
- -------------------------<br />
- <br />
- .psd<br />
- -> unkomprimierte Bilddatei (Ursprüngliche Photoshopdatei. Kann von InDesign ebenfalls eingesetzt werden)<br />
- <br />
- .tiff<br />
- -> unkomprimierte Bilddatei (Große Bilddaten mit Bildinformationen)<br />
- <br />
- .jpg<br />
- -> komprimierte Bilddatei (RGB/CMYK)<br />
- <br />
- .ai<br />
- -> Vektorbasierte Datei (RGB und CMYK Format für eine Weiterverarbeitung in anderen Medien. Optimal für die Weiterentwicklung von Logos/Icons.)<br />
- <br />
- .eps<br />
- -> Vektorbasierte Datei, komprimiert (RGB und CMYK Format für eine Weiterverarbeitung in anderen Medien. Optimal für Logos/Icons.)<br />
- <br />
- .pdf<br />
- -> auch bekannt als Druckdatei (Dann im CYMK-Format, da eine Umwandlung von RGB in CYMK [für den Druck notwendig] Farbveränderungen mit sich bringt). Kann aber auch für Logodaten/Zeichnungen o.ä. eingesetzt werden, da Vektorinformationen und Farbräume mitgespeichert werden. (RGB/CMYK)<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:126')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="125"></span>
- <span style="float:right;"><span class="tags_normal">AGENTUR</span> <span class="tags_normal">CYBOB</span> <span class="tags_normal">FLEXTIME</span> <span class="tags_normal">REMOTE</span> <span class="tags_normal">PAYBACK</span> <span class="tags_normal">KRANKHEIT</span> <span class="tags_normal">GLEITZEIT</span> <span class="tags_normal">ARBEITSZEITEN</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realjens_UT240506112951007818100.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Jens Bextermüller" /> </div><strong>Aktualisierte Regelungen: Arbeitszeit, Gleitzeit, FlexTime, Remote, Krankheit, Payback & Co. (bis 28.02.2025)</strong> <span class="small">(06.09.2023)</span><br>Wie bereits heute mit allen anwesenden Kollegen vor Ort besprochen, haben wir an den Rahmenbedingungen etwas geschraubt. Alle Änderungen gelten ab dem 01.09.2023 und wir werden wie immer auf Sicht fahren und die Neuerungen testen. Anmerkungen oder Fragen immer gerne an David und Jens.<br />
- <br />
- Bürozeiten:<br />
- -----------------<br />
- Die offiziellen Bürozeiten sind von 8 - 18 Uhr. <br />
- In dieser Zeit muss das Telefon besetzt sein, d. h. mindestens ein PM ist anwesend.<br />
- Während der offiziellen Bürozeit muss mindestens eine Fachkraft anwesend sein, nicht zur Auszubildende („Azubidienst“)<br />
- <br />
- Kernarbeitszeit:<br />
- -----------------<br />
- Mo-Do von 10.00 Uhr bis 17.00 Uhr.<br />
- Fr von 10.00 Uhr bis 16.00 Uhr.<br />
- <br />
- Die Wochenarbeitszeit beträgt 40 h, das entspricht im Mittel 160 h je Monat.<br />
- 1 h Mittagspause - entweder um 12.00 oder um 13.00 Uhr.<br />
- <br />
- FlexTime:<br />
- -----------------<br />
- Neu: Bei Bedarf und nach Absprache kann die Kernarbeitszeit eines Tages um max. 2 Stunden vorschoben werden (in beide Richtungen).<br />
- z. B. an einem Dienstag bereits um 15.00 Uhr oder zum Ausgleich an einem Dienstag um 07.00 Uhr. Die FlexTime muss im Vorfeld mit den Kollegen abgestimmt und im Kalender als „FlexTime“ dokumentiert sein. Die „FlexTime" darf nicht an die Mittagspause grenzen und die Flextime somit verlängern.<br />
- <br />
- Die minimale Wochenarbeitszeit beträgt 36 h, die monatliche Arbeitszeit beträgt 160 h.<br />
- <br />
- Neu: Azubi FlexTime:<br />
- -----------------<br />
- Zunächst einmal im Monat kann der Arbeitsbeginn von 08:30 Uhr auf max 10:00 Uhr oder das Arbeitszeitende von 18:00 auf max. 17:00 Uhr verlegt werden.<br />
- Die FlexTime muss im Vorfeld mit dem Ausbilder abgestimmt und im Kalender als „FlexTime“ dokumentiert sein. <br />
- <br />
- Die Zeit muss im gleichen Monat ausgeglichen werden, z. B. nach Absprache um 08:00 Uhr starten oder nach der Schule reinkommen.<br />
- <br />
- Gleitarbeitszeit:<br />
- -----------------<br />
- Mo-Fr von 8.00 Uhr bis 19.00 Uhr mit Beginn jeweils zur vollen oder halben Stunde<br />
- Die Gleitarbeitszeit gilt zunächst nicht für Auszubildende.<br />
- <br />
- <br />
- Urlaub:<br />
- -----------------<br />
- Es gibt ganze und halbe Urlaubstage.<br />
- Diese sind rechtzeitig zu beantragen und müssen freigegeben werden.<br />
- Diese sind mit 4 oder 8 h in der Zeiterfassung einzutragen.<br />
- Resturlaub aus dem Vorjahr muss bis zum 31.03. genommen werden, ansonsten verfällt dieser.<br />
- <br />
- Krankheit:<br />
- -----------------<br />
- Wer krank ist, bitte unbedingt zum Arzt gehen. :)<br />
- Krankmeldung bitte umgehend telefonisch mit Holger, Jens oder David besprechen,<br />
- da wir ja ggf. Vertretungen usw. organisieren müssen und auch zur Planung wissen müssen, wie lange die Krankheit voraussichtlich dauert.<br />
- <br />
- Wie vertraglich vereinbart, muss eine Krankheit und die Dauer ab dem 1. Tag vom Arzt attestiert werden (gelber Schein).<br />
- <br />
- Arztbesuch:<br />
- -----------------<br />
- Akute Arztbesuche bitte kurz mit Holger, Jens oder David absprechen.<br />
- Andere Arztbesuche sind möglichst außerhalb der Arbeitszeit zu legen (Gleitzeit nutzen)<br />
- oder wenn es nur innerhalb der Kernarbeitszeit möglich mit Holger, Jens oder David abzusprechen.<br />
- <br />
- Wie allgemein üblich, sind Arztbesuche auch bei uns keine Arbeitszeit.<br />
- Deshalb ist dazu auch kein Eintrag in der Zeiterfassung notwendig.<br />
- <br />
- Aus Datenschutzgründen sollte auch der Kalendereintrag entsprechend allgemein gehalten sein.<br />
- Einzige Ausnahme: Schwangere ;-)<br />
- <br />
- Stau / Bus / Wetter / Meteoriten / Deutsche Bahn:<br />
- -----------------<br />
- Verspätungen, welche die Kernarbeitszeit betreffen, sind schnellstmöglich Holger, Jens oder David mitzuteilen.<br />
- Die Arbeitszeit ist innerhalb der Woche (FlexTime: innerhalb des Monats) nachzuholen.<br />
- <br />
- <br />
- Zeiterfassung:<br />
- -----------------<br />
- Die Zeiterfassung sollte umgehend erfolgen und einem Kunden zugewiesen werden.<br />
- Die Zeiten sollten möglichste präzise dem korrekten Kundenprojekt zugewiesen werden.<br />
- <br />
- Payback:<br />
- -----------------<br />
- Das Payback-Modell gilt für alle Vollzeit-Mitarbeiter oder nach Vereinbarung anteilig.<br />
- Neu: Azubis steigen ab dem 2. Lehrjahr mit 50% Payback ein.<br />
- <br />
- Die Stufen werden regelmäßig der Teamstärke angepasst.<br />
- <br />
- Remote creation und application:<br />
- -----------------<br />
- Neu: Jeder Mitarbeiter (keine Azubis) kann bis zu 8x im Monat „Remote“ beantragen.<br />
- Hierzu muss aus jedem Bereich aber mind. 1 Mitarbeiter vor Ort sein.<br />
- <br />
- Remote communication:<br />
- -----------------<br />
- Jeder Mitarbeiter (keine Azubis) kann weitehrin zunächst bis zu 4x im Monat „Remote“ beantragen.<br />
- Hierzu muss aus jedem Bereich aber mind. 1 Mitarbeiter vor Ort sein.<br />
- <br />
- Hintergrund: Erreichbarkeit in der Agentur für Kunden, Koordination, Verfügbarkeit für interne Absprachen, Besetzung Zentrale etc. bei dem Projektmanagern essentiell, dies liegt in der Verantwortung der communication. Zudem wollen wir die direkte Kommunikation wieder mehr stärken/ausbauen und Projektmeetings durch die communictaion initiieren. Ausnahmen nach Absprache möglich.<br />
- <br />
- Remote-Ausweitung für Azubis weiterhin denkbar und nicht ausgeschlossen. ;)<br />
- <br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:125')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="124"></span>
- <span style="float:right;"><span class="tags_normal">JS</span> <span class="tags_normal">SWIPER</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Swiper-Slide in Swiper beim Touchdrag hindern zu verspringen</strong> <span class="small">(24.08.2023)</span><br>Es gibt die Möglichkeit den Swiper-Slide so einzustellen, dass er bei Klick oder Drag nicht an die „Akvitposition“ springt, sondern direkt das Event auslöst.<br />
- <br />
- Dazu das Snippet enfach in der JS im entsprechenden Breakpoint ergänzen.<br><div style="position:relative; width:100"><pre class="language-javascript" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-javascript" style="white-space: pre-wrap;">a11y: false,<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:124')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="123"></span>
- <span style="float:right;"><span class="tags_normal">INTERN</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Systeme aufgeräumt halten</strong> <span class="small">(16.08.2023)</span><br>Bitte immer, wenn Dinge auffallen, die nicht mehr benötigt werden, den PM informieren oder löschen.<br />
- <br />
- - „_BAK_“/„_OLD“-Verzeichnisse und -Dateien<br />
- - Benutzer von Kunden/Kollegen, die nicht mehr da sind<br />
- - Testseiten, die nicht mehr benötigt werden<br />
- - Assets (JS/CSS/Bild), die nicht mehr benötigt werden (bspw. wenn die Einbindung im TypoScript entfernt wird)<br />
- - Bei Facelifts/Updates/Upgrades können die nicht mehr verwendeten Dateien gelöscht werden<br />
- - Virtual Host Einträge, die nicht mehr auf den Server zeigen<br />
- - temporäre (Sub)domains<br />
- - alte Datensicherungen<br />
- - nicht mehr verwendete Datenbanken<br />
- - nicht mehr verwendete Webspaces<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:123')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="122"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/laura_spilker3_UT230808173756043269600.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Laura Spilker" /> </div><strong>CSS</strong> <span class="small">(09.08.2023)</span><br><br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:122')"></span>
- <br><br><span class="bi bi-filetype-pdf" style="" onclick="generatePDF('community_content_id:122')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="121"></span>
- <span style="float:right;"><span class="tags_normal">INTERN</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realholger_UT240506112908038257900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Holger Middelberg" /> </div><strong>Projects: Wochenplan & Workflow </strong> <span class="small">(09.08.2023)</span><br>"Regelwerk" und Best Practice für die Arbeit mit Projetcs hinsichtlich Arbeitsworkflow. Dieses wird regelmäßig verfeinert und aktualisiert.<br />
- <br />
- Wichtig: Bitte gebt zum Wochenende für Eure bearbeiteten Todos dem jeweiligen PM eine Rückmeldung, falls das Todo noch nicht fertig ist.<br />
- <br />
- A) Wochenplan<br />
- Im Wochenplan werden von den PMs die Aufgaben für die Woche vorgeplant (Zeiten, Prios, etc.)<br />
- - PMs: es werden keine Zeiten geblockt, d. h. es werden nur Aufgaben geplant, für die Infos vorliegen<br />
- - PMs: für jede im Wochenplan vorgesehene Aufgabe wird ein Briefing bzw. Aufgabenbeschreibung eingetragen<br />
- - PMs: Dazu werden vorab die Kollegen NICHT mit @ markiert, um unnötige Notifications zu vermeiden<br />
- <br />
- <br />
- B) Workflow<br />
- In den Themen wird die Bearbeitung der Aufgaben entsprechend koordiniert und kommuniziert. Wichtig: Notifications werden durch @ ausgelöst. Bitte unnötige Nofifactions vermeiden.<br />
- <br />
- Ablauf:<br />
- 1. ein PM oder Kunde legt unter "neu" ein neues Todo an<br />
- <br />
- 2. erst nach Freigabe für die Umsetzung schiebt der PM das in "bestätigt"<br />
- -> der PM weist den passenden Bearbeiter zu<br />
- -> der PM trägt Zeiten im Wochenplan ein<br />
- -> der PM setzt ggf. die Prioriät<br />
- -> der PM sorgt für eine Aussagekräftige Beschreibung der Aufgabe<br />
- <br />
- 3. der Bearbeiter schiebt die Karte auf "in Bearbeitung" sobald er mit der Aufgabe beginnt. So können PMs erkennen, woran gerade gearbeitet wird<br />
- -> wenn der Bearbeiter das Todo erledigt hat, schiebt er die Karte auf "Prüfung intern" und setzt den Haken "erledigt". Bitte hier eine Notication (mit @) an den PM<br />
- -> wenn der Bearbeiter das Todo abbricht, schiebt er es zurück auf "bestätigt"<br />
- -> wenn der Bearbeiter das Todo nicht fertigstellen kann, z. B. bei fehlenden Infos, schiebt er es auf "Info / Hilfe"<br />
- -> wenn der Bearbeiter feststellt, dass ein Todo viel mehr Zeit benötigt, informiert er den PM<br />
- -> wenn der Bearbeiter feststellt, dass ein Todo aus dem Wochenplan nicht (mehr) bearbeitet werden kann, informiert er den PM<br />
- <br />
- 4. der PM prüft das Todo<br />
- -> wenn es erledigt ist, schiebt er es auf "Prüfung extern", damit der Kunde das prüfen kann<br />
- -> wenn es nach Prüfung nicht erledigt ist, schiebt der PM es zurück auf "besätigt" und weist den Bearbeiter zu<br />
- <br />
- 5. der Kunde prüft das Todo<br />
- -> wenn es auch vom Kunden als erledigt markiert ist, schiebt der PM es auf „erledigt"<br />
- <br />
- <br />
- C) Sonstiges<br />
- Rückfragen:<br />
- Grundsätzlich sollten bei Rückfragen ohne unmittelbares Todo auf intern die Karten auf Info/Hilfe geschoben werden und dem Adressaten zugewiesen werden<br />
- <br />
- Support:<br />
- Ungeplante Aufgaben können beim Wochenplan als "support" markiert werden, damit diese entsprechend bearbeitet<br />
- <br />
- Aquise:<br />
- Aufgaben ohne Auftrag können als "aquise" markiert werden<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:121')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="120"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">BASIC</span> <span class="tags_normal">ROBOTS</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>GPT-Versionen hindern die Website zu durchforsten</strong> <span class="small">(09.08.2023)</span><br>Es gibt eine Möglichkeitg GPT-Versionen daran zu hindern die eigene Website zu durchsuchen und an ihr zu triainieren. Dazu gebt ihr einfach folgende Zeilen in die robots.txt ein.<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">User-agent: GPTBot
- Disallow: /<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:120')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="119"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>Autocomplete OFF / Vorschlagsliste bei Browsern verhindern</strong> <span class="small">(25.07.2023)</span><br>Autocomplete OFF / Vorschlagsliste bei Browsern zu verhindern ist wohl Standard beim Team.<br />
- Wohl aber nicht, dass der Edge und wohl auch irgendwelche Chrome-Versionen andere Attribute brauchen.<br />
- Ach ja, und für Safari bin ich immer noch nicht fündig geworden - seufz.<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;">aria-autocomplete="none" list="autocompleteOff" autocomplete="off"<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:119')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="118"></span>
- <span style="float:right;"><span class="tags_normal">COMPOSER</span> <span class="tags_normal">SITORIX</span> <span class="tags_normal">BASH</span> <span class="tags_normal">SH</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Composer auf Sitorix Servern installieren</strong> <span class="small">(21.07.2023)</span><br>PHP ggf. durch absoluten Pfad mit Version (z. B. /usr/bin/php7.4) ersetzen.<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">COMPOSER_HOME=/home/webXX/htdocs php composer-setup.php<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:118')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="117"></span>
- <span style="float:right;"><span class="tags_normal">JS</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>Javascript JS onload wird nur einmal ausgeführt</strong> <span class="small">(18.07.2023)</span><br><br><div style="position:relative; width:100"><pre class="language-javascript" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-javascript" style="white-space: pre-wrap;">if (document.readyState !== 'loading') {
- console.log('document is already ready, just execute code here');
- setTimeout(() => {
- showCalendarHome();
- }, 1000);
- } else {
- document.addEventListener('DOMContentLoaded', function () {
- console.log('document was not ready, place code here');
- setTimeout(() => {
- showCalendarHome();
- }, 1000);
- });
- }<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:117')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="116"></span>
- <span style="float:right;"><span class="tags_normal">SICHERHEIT</span> <span class="tags_normal">SECURITY</span> <span class="tags_normal">HTACCESS</span> <span class="tags_normal">APACHE</span> <span class="tags_normal">HEADER</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Security-Header über die .htaccess</strong> <span class="small">(10.07.2023)</span><br>Hier einmal ein guter Ausgangspunkt für die Security-Header am Beispiel einer Goliath-Instanz.<br />
- (X-)Content-Security-Policy und Permissions-/Feature-Policy haben in dem meisten Systemen unterschiedliche Werte, je nachdem von wo Ressourcen geladen werden.<br />
- Alle anderen Header können im Normalfall 1:1 übernommen werden.<br />
- <br />
- https://www.permissionspolicy.com/ hilft beim Erstellen des Headers.<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;"><IfModule mod_headers.c>
- # Security
- Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
- Header set X-Frame-Options "SAMEORIGIN"
- Header set X-Content-Type-Options "nosniff"
- Header set Referrer-Policy "strict-origin-when-cross-origin"
- Header set Content-Security-Policy "default-src 'self' https://*.goliathserver.com; script-src 'self' 'unsafe-inline' https://*.goliathserver.com; style-src 'self' 'unsafe-inline' https://*.goliathserver.com"
- Header set X-Content-Security-Policy "default-src 'self' https://*.goliathserver.com; script-src 'self' 'unsafe-inline' https://*.goliathserver.com; style-src 'self' 'unsafe-inline' https://*.goliathserver.com"
- Header set Permissions-Policy "accelerometer=(), ambient-light-sensor=(), autoplay=(self), battery=(), camera=(), cross-origin-isolated=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), geolocation=(), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), navigation-override=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=(), xr-spatial-tracking=()"
- Header set Feature-Policy "accelerometer 'none'; ambient-light-sensor 'none'; autoplay 'self'; battery 'none'; camera 'none'; cross-origin-isolated 'none'; display-capture 'none'; document-domain 'none'; encrypted-media 'none'; execution-while-not-rendered 'none'; execution-while-out-of-viewport 'none'; fullscreen 'none'; geolocation 'none'; gyroscope 'none'; keyboard-map 'none'; magnetometer 'none'; microphone 'none'; midi 'none'; navigation-override 'none'; payment 'none'; picture-in-picture 'none'; publickey-credentials-get 'none'; screen-wake-lock 'none'; sync-xhr 'none'; usb 'none'; web-share 'none'; xr-spatial-tracking 'none'"
- </IfModule><br></code></pre></div><a href="https://securityheaders.com/" target="_blank" "><i class="bi bi-link-45deg"></i>https://securityheaders.com/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:116')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="115"></span>
- <span style="float:right;"><span class="tags_normal">BASIC</span> <span class="tags_normal">SICHERHEIT</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realjens_UT240506112951007818100.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Jens Bextermüller" /> </div><strong>Basis-Infos: Security-Header</strong> <span class="small">(03.07.2023)</span><br>Folgend für den Austausch mit den Kunden einige Basis-Infos zum aktuellen Thema der Security Header.<br />
- <br />
- Generell: Ein Security-Header für eine Website ist wichtig, da er zusätzliche Schutzmaßnahmen bietet, um die Sicherheit und Integrität der Website zu gewährleisten. Durch das Setzen spezifischer Sicherheitsheader können potenzielle Angriffe wie Cross-Site Scripting (XSS), Clickjacking oder Inhaltsinjektion verhindert werden. Ein korrekt konfigurierter Sicherheitsheader kann auch dazu beitragen, sensible Informationen zu schützen und das Vertrauen der Benutzer in die Website zu stärken.<br />
- <br />
- Erklärung zu den verschiedenen Sicherheitsheadern:<br />
- <br />
- - Strict-Transport-Security (HSTS): Dieser Header sorgt dafür, dass die Kommunikation zwischen dem Webbrowser und der Website ausschließlich über eine sichere Verbindung (HTTPS) erfolgt. Dadurch wird das Risiko von Angriffen wie Man-in-the-Middle reduziert.<br />
- <br />
- - X-Frame-Options: Dieser Header legt fest, wie die Website in einem iFrame eingebettet werden kann. Er schützt vor Clickjacking-Angriffen, indem er steuert, ob die Website in einem Frame angezeigt werden darf oder nicht.<br />
- <br />
- - Content-Security-Policy (CSP): Dieser Header definiert, welche Inhalte auf einer Website geladen werden dürfen und woher sie stammen dürfen. Er hilft, Cross-Site Scripting (XSS) und ähnliche Angriffe zu verhindern, indem er die Ausführung unsicherer Skripte oder das Laden von bösartigen Inhalten einschränkt.<br />
- <br />
- - Permissions-Policy: Dieser Header ermöglicht die Kontrolle über verschiedene Berechtigungen, die eine Website auf Geräten oder im Browser des Benutzers haben darf. Dadurch können bestimmte Funktionen, wie zum Beispiel die Kamera oder das Mikrofon, nur mit Zustimmung des Benutzers verwendet werden.<br />
- <br />
- - Referrer-Policy: Dieser Header legt fest, welche Informationen über den Verweis (Referrer) einer Website beim Navigieren auf andere Websites übermittelt werden. Dadurch kann die Privatsphäre des Benutzers geschützt werden, indem sensible Informationen nicht weitergegeben werden.<br />
- <br />
- - X-Content-Type-Options: Dieser Header kontrolliert, wie der Browser mit der Content-Type-Kennzeichnung einer Website umgeht. Er hilft, MIME-Sniffing-Angriffe zu verhindern, indem er sicherstellt, dass der Browser den angegebenen Content-Type akzeptiert und nicht versucht, den Inhalt selbst zu interpretieren.<br />
- <br />
- Weitere Begriffserklärungen:<br />
- <br />
- Clickjacking: <br />
- <br />
- Clickjacking ist eine betrügerische Methode, bei der ein unsichtbares Element oder eine falsche Oberfläche über eine vertrauenswürdige Webseite gelegt wird. Dadurch werden ahnungslose Benutzer dazu verleitet, auf vermeintlich harmlose Elemente zu klicken, die in Wirklichkeit jedoch bösartige Aktionen ausführen. Dies kann dazu führen, dass Benutzer ungewollt persönliche Informationen preisgeben, schädliche Programme herunterladen oder unautorisierte Aktionen durchführen, ohne dass sie es bemerken. Clickjacking zielt darauf ab, die Nutzer zu täuschen und ihre Aktionen auszunutzen, um den Angreifern Vorteile zu verschaffen.betrügerische Methode, bei der ein unsichtbares Element oder eine falsche Oberfläche über eine vertrauenswürdige Webseite gelegt wird.<br />
- <br />
- Cross-Site Scripting (XSS):<br />
- <br />
- Cross-Site Scripting (XSS) ist eine Art von Angriff auf Webanwendungen, bei dem ein Angreifer schädlichen Code in eine Website einschleust, der dann von anderen Benutzern im Browser ausgeführt wird. Dadurch kann der Angreifer die Kontrolle über die betroffene Website erlangen, sensible Daten stehlen oder betrügerische Aktionen im Namen des Benutzers durchführen. XSS-Angriffe sind möglich, wenn eine Website unzureichende Sicherheitsmaßnahmen zum Filtern oder Validieren von Benutzereingaben hat und es dem Angreifer ermöglicht, bösartigen Code einzufügen, der dann von anderen Benutzern ausgeführt wird.<br />
- <br />
- MIME-Sniffing-Angriffe:<br />
- <br />
- MIME-Sniffing-Angriffe beziehen sich auf eine Sicherheitslücke, bei der ein Angreifer den MIME-Typ (Multipurpose Internet Mail Extensions) einer Datei manipuliert, um den Webbrowser dazu zu bringen, sie auf eine unerwartete Weise zu interpretieren. Diese Angriffe nutzen aus, dass einige Webbrowser unsichere MIME-Typ-Überprüfungen durchführen und versuchen, den tatsächlichen Inhalt einer Datei zu erraten, anstatt sich strikt an den vom Server bereitgestellten MIME-Typ zu halten. Dadurch können bösartige Dateien als harmlos interpretiert werden, was zu Sicherheitsrisiken führen kann, z. B. das Ausführen von schädlichem Code oder das Anzeigen gefälschter Inhalte. Durch das korrekte Setzen des X-Content-Type-Options-Headers kann dieses Risiko minimiert werden, indem der Browser angewiesen wird, den angegebenen MIME-Typ zu respektieren und nicht auf eine Interpretation des Inhalts zu spekulieren.<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:115')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="114"></span>
- <span style="float:right;"><span class="tags_normal">SEO</span> <span class="tags_normal">ANALYTICS</span> <span class="tags_normal">BASIC</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realjens_UT240506112951007818100.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Jens Bextermüller" /> </div><strong>Basis-Einstellungen für Google Analytics 4 (GA 4)</strong> <span class="small">(29.06.2023)</span><br>Nach der Migration auf GA4 können/sollten folgende Einstellungen für die Property vorgenommen werden:<br />
- <br />
- 1. Verwaltung —> Dateneinstellungen —> Datenaufbewahrung: Auf 14 Monate setzen (für Ereignisse, noch zu prüfen: Auskunftspflich unter „Datenschutz“?)<br />
- <br />
- 2. Verwaltung —> Datenstream —>Klick auf vorhandenen Stream —> Optimierte Analyse —> Einstellungs-Rädchen —> Alle Analyse optimieren (Manuelle Erweiterungen durch Application für Suche & Videos notwendig)<br />
- <br />
- 3. Verwaltung —> Einrichtungsassistent —> Alle 7 Schritte prüfen / als erledigt markieren (Hinweis: Signale lasse ich zunächst aus, hier müssen wir ebenfalls Auswirkungen auf den Datenschutz recherchieren)<br />
- <br />
- Einrichtung weiterer individueller Ereignisse/Conversions sind abhängig von der vorherigen Einstellungen/Anforderungen.<br />
- <br />
- Unter Expl. Datenanalysen können individuelle Analysen erstellt werden. Siehe z. B. Property der thieme-stadtmobiliar.com. Hier gibt es eine expl. Datenanalyse die die Namen der Dateien ausgibt, die aufgerufen wurden.<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:114')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="113"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">SEO</span> <span class="tags_normal">SEARCHCONSOLE</span> <span class="tags_normal">BASIC</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realjens_UT240506112951007818100.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Jens Bextermüller" /> </div><strong>Basis-Infos: Core Web Vitals (Google Search Console)</strong> <span class="small">(26.06.2023)</span><br>Die folgende Auflistung gibt einen kurzen Wissensüberblick über die Core Web Vitals in der Google Search Console. Es gibt immer wieder Kundenanfragen zu diesem Thema, so dass wir hier alle zumindest im Kern aussagekräftig sein sollten. Für die Projektmanager: Hieraus lassen sich gut kleinere SEO-Aufträge für die Prüfung und Optimierung o. auch kleinere Pauschalen generieren. Alle Werte sollten aber immer kritisch hinterfragt werden.<br />
- <br />
- Die Core Web Vitals bilden eine wichtige Metrik in der Google Search Console. Die Core Web Vitals sind eine Reihe von Messwerten, die die Benutzerfreundlichkeit und Leistung Ihrer Website bewerten. Sie geben Ihnen wichtige Einblicke darüber, wie gut Ihre Webseite lädt und wie schnell sie reagiert.<br />
- <br />
- Die Core Web Vitals umfassen drei Hauptmetriken:<br />
- <br />
- 1. LCP (Largest Contentful Paint): Dieser Wert misst die Zeit, die Ihre Webseite benötigt, um das größte sichtbare Element für den Nutzer zu laden. Ein gutes Ziel für den LCP ist eine Ladezeit von unter 2,5 Sekunden. <br />
- <br />
- Beispiel: Wenn Sie eine E-Commerce-Website haben und es länger als 2,5 Sekunden dauert, bis das Produktbild auf der Startseite vollständig geladen wird, kann dies potenzielle Kunden abschrecken.<br />
- <br />
- 2. FID (First Input Delay): Diese Metrik misst die Zeit, die eine Webseite benötigt, um auf die erste Interaktion des Nutzers zu reagieren, beispielsweise auf einen Klick oder eine Berührung. Ein guter FID-Wert liegt unter 100 Millisekunden. Wenn die Webseite langsam auf Benutzereingaben reagiert, kann dies zu einer negativen Erfahrung führen.<br />
- <br />
- Beispiel: Wenn Sie einen Blog haben und es zu lange dauert, bis ein Leser auf einen Artikel klicken kann, um ihn zu öffnen, kann dies die Nutzerfrustration erhöhen und sie dazu bringen, Ihre Website zu verlassen.<br />
- <br />
- 3. CLS (Cumulative Layout Shift): Diese Metrik bewertet, wie stabil die Darstellung einer Webseite ist. Ein hoher CLS-Wert bedeutet, dass sich die Elemente auf der Seite während des Ladens oft verschieben. Ein guter CLS-Wert liegt unter 0,1. Ein unvorhergesehenes Verschieben von Inhalten kann zu unbeabsichtigten Klicks oder zur Verwirrung der Nutzer führen.<br />
- <br />
- Beispiel: Wenn Sie eine Nachrichten-Website haben und sich die Anzeigen plötzlich verschieben, während ein Nutzer gerade einen Artikel liest, kann dies zu ungewollten Klicks auf Anzeigen führen und die Benutzererfahrung beeinträchtigen.<br />
- <br />
- Generell ist es wichtig, die Core Web Vitals zu beobachten und, wenn sinnvoll, einzelne Punkte zu optimieren, da sie sich auch auf das Ranking der Website in den Suchergebnissen von Google auswirken können. Durch die Überprüfung und Verbesserung dieser Metriken können Sie sicherstellen, dass Ihre Webseite eine positive Benutzererfahrung bietet und für Ihre Besucher schnell und benutzerfreundlich ist.<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:113')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="112"></span>
- <span style="float:right;"><span class="tags_normal">WEBSTORM</span> <span class="tags_normal">VERSIONSKONTROLLE</span> <span class="tags_normal">BACKUP</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Versionskontrolle im WebStorm</strong> <span class="small">(24.05.2023)</span><br>WebStorm hat im Programm selbst eine kleine Versionskontrolle, die manche Änderungen leicht rückgängig machen lässt. <br />
- <br />
- Aufruf der Versionen:<br />
- 1. Rechtklick auf die entsprechende Datei<br />
- 2. Hover auf „Local History“<br />
- 3. Klick auf „Show History“<br />
- 4. Vergleich/Durchsicht nach gewünschter Datei <br />
- 5. Klick auf „Revert“ (Erstes Icon unter dem Closebutton)<br><a href="https://blog.jetbrains.com/idea/2020/02/local-history-in-intellij-idea-may-save-your-life-code/" target="_blank" "><i class="bi bi-link-45deg"></i>https://blog.jetbrains.com/idea/2020/02/local-history-in-intellij-idea-may-save-your-life-code/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:112')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="111"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">CK-EDITOR</span> <span class="tags_normal">CODE</span> <span class="tags_normal">DESIGN</span> <span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Buttonstyle im CK-Editor</strong> <span class="small">(17.05.2023)</span><br>Wenn man im CK-Editor einen Button mit mehreren Styles ansteuerbar machen will, ist es hier wichtig in der Config die Styleklassen alphabetisch zu sortieren, da sonst kein Style ausgegeben wird.<br />
- <br />
- Die Setupdatei hierfür liegt im Configurationordner -> RTE -> preset.yaml<br />
- <br />
- Ein Beispiel hierfür findet ihr im Snippet.<br />
- <br />
- Quelle:<br />
- https://stackoverflow.com/questions/54213690/typo3-8-ckeditor-stylesset-multiple-classes-start-classname-with-bg-does-not-w<br />
- <br />
- <br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;">stylesSet: - { name: "Button", element: "a", attributes: { class: "align-items-center d-flex primary-button" } }<br></code></pre></div><a href="https://stackoverflow.com/questions/54213690/typo3-8-ckeditor-stylesset-multiple-classes-start-classname-with-bg-does-not-w" target="_blank" "><i class="bi bi-link-45deg"></i>https://stackoverflow.com/questions/54213690/typo3-8-ckeditor-stylesset-multiple-classes-start-classname-with-bg-does-not-w</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:111')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="110"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">WEB</span> <span class="tags_normal">HTACCESS</span> <span class="tags_normal">APACHE</span> <span class="tags_normal">SVG</span> <span class="tags_normal">SECURITY</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>SVGs im TYPO3 Frontend sind schwarz</strong> <span class="small">(16.05.2023)</span><br>Ab Version 11 legt TYPO3 im fileadmin-Verzeichnis eine .htaccess-Datei ab, um die Sicherheit zu erhöhen.<br />
- Die verbietet leider auch Inline-Styles bei SVGs, so dass die im Frontend alle schwarz sind.<br />
- <br />
- Idealerweise werden die in einer entsprechenden Extension abgelegt, da das typo3conf-Verzeichnis nicht betroffen ist.<br />
- In Systemen ohne Site Package kann man den Inhalt von fileadmin/.htaccess durch den folgenden Snippet ersetzen:<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;"># This file applies Content-Security-Policy (CSP) HTTP headers
- # to directories containing (user uploaded) resources like
- # /fileadmin/ or /uploads/
- <IfModule mod_headers.c>
- # matching requested *.pdf files only (strict rules block Safari showing PDF documents)
- <FilesMatch ".pdf$">
- Header set Content-Security-Policy "default-src 'self' 'unsafe-inline'; script-src 'none'; object-src 'self'; plugin-types application/pdf;"
- </FilesMatch>
- # matching requested *.svg files only (allows using inline styles when serving SVG files)
- <FilesMatch ".svg">
- Header set Content-Security-Policy "default-src 'self'; script-src 'none'; style-src 'unsafe-inline'; object-src 'none';"
- </FilesMatch>
- # matching anything else, using negative lookbehind pattern
- <FilesMatch "(?<!.(?:pdf|svg))$">
- Header set Content-Security-Policy "default-src 'self'; script-src 'none'; style-src 'none'; object-src 'none';"
- </FilesMatch>
- # =================================================================
- # Variations to send CSP header only when it has not be set before.
- # Adjust all `Header set` instructions above
- # Header set Content-Security-Policy "<directives>"
- # with substitutes shown below
- #
- # -----------------------------------------------------------------
- # a) for Apache 2.4 (having `setifempty`)
- # -----------------------------------------------------------------
- # Header setifempty Content-Security-Policy "<directives>"
- #
- # -----------------------------------------------------------------
- # b) for Apache 2.2 (using fallbacks)
- # -----------------------------------------------------------------
- # Header append Content-Security-Policy ""
- # Header edit Content-Security-Policy "^$" "<directives>"
- #
- # =================================================================
- </IfModule>
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:110')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="109"></span>
- <span style="float:right;"><span class="tags_normal">WEBP</span> <span class="tags_normal">PERFORMANCE</span> <span class="tags_normal">BILDER</span> <span class="tags_normal">FRONTEND</span> <span class="tags_normal">FARBRAUM</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>WebP Bilder mit veränderter Farbe</strong> <span class="small">(13.03.2023)</span><br>Wenn beim Skalieren von Bildern die generierten WebP Versionen plötzlich eine andere Farbe haben, sollte der Farbraum des Originalbildes mit der Angabe unter $GLOBALS[’TYPO3_CONF_VARS’][‚GFX‘][‚processor_colorspace‘] abgeglichen werden.<br />
- <br />
- Bisher bekannt ist ein Problem von CMYK (Original) zu sRGB (Konfiguration)<br><a href="https://extensions.typo3.org/extension/webp" target="_blank" "><i class="bi bi-link-45deg"></i>https://extensions.typo3.org/extension/webp</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:109')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="108"></span>
- <span style="float:right;"><span class="tags_normal">SERVER</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>Eine Textdatei in mehrere Dateien aufteilen</strong> <span class="small">(09.03.2023)</span><br>Um CSV oder SQl Dateien aufzuteilen und dann einfacher zu importieren, kann man über die Shell das relativ einfach erledigen.<br />
- Dafür muss brew und coreutils installiert sein (siehe Link zu SO)<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">gsplit -l 5000 -d --additional-suffix=.txt $FileName file<br></code></pre></div><a href="https://stackoverflow.com/questions/25249516/split-text-file-into-smaller-multiple-text-file-using-command-line" target="_blank" "><i class="bi bi-link-45deg"></i>https://stackoverflow.com/questions/25249516/split-text-file-into-smaller-multiple-text-file-using-command-line</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:108')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="107"></span>
- <span style="float:right;"><span class="tags_normal">INTERN</span> <span class="tags_normal">MITEINANDER</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realjens_UT240506112951007818100.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Jens Bextermüller" /> </div><strong>„Regelwerk" für ein gutes Miteinander in der Agentur</strong> <span class="small">(13.02.2023)</span><br>Hiermit soll einmal an die aktuellen Absprachen erinnert werden. <br />
- Anmerkungen oder Ergänzungen gerne jederzeit zu mir. <br />
- <br />
- 1. Küche<br />
- <br />
- - jeder ist für den ordentlichen Abwasch seiner benutzten Sachen selbst verantwortlich, das ist keine Azubi-Aufgabe<br />
- - nach Kundenterminen organisiert der jeweilige PM den Abwasch<br />
- - Geschirr bitte sofort nach Gebrauch und Tassen nach Arbeitsende spülen<br />
- - die Spüle ist keine Sammelstelle für schmutziges Geschirr<br />
- - die Mikrowelle bitte nur mit der dafür vorgesehenen Abdeckung benutzen und nach jedem Gebrauch kurz abwischen<br />
- - der Besteckkasten ist kein Handgranatenwurfplatz, bitte das Besteck in die dafür vorgesehenen Fächer sortieren<br />
- - wenn etwas fehlt, defekt ist oder nachbestellt werden muss, bitte Malin informieren<br />
- - die Reinigung der Kaffeemaschine wird von den Auszubildenden übernommen, für das Auffüllen und Entleeren ist jeder selbst verantwortlich<br />
- - Müll mit Essensresten bitte nur in den Mülleimer unter der Spüle werfen<br />
- <br />
- 2. Toiletten<br />
- <br />
- - bitte die Toilette so verlassen, wie man sie vorfinden möchte (Schulterblick)<br />
- - den Papierhandtucheimer auch treffen, wenn man etwas hineinwirft<br />
- - Toilettenpapier, Desinfektionsmittel und Seife bitte nachfüllen oder Malin Bescheid geben, wenn etwas fehlt<br />
- - leere Rollen gehören in den Mülleimer und sonst nirgendwohin <br />
- - die Toilette ist kein Aufenthaltsort und darf gerne schnell wieder verlassen werden<br />
- <br />
- 3. Essecke<br />
- <br />
- - nach jeder „Schicht“, d.h. um 13:00 und um 14:00 Uhr bitte die Tische reinigen (Desinfektionsmittel ist vorhanden)<br />
- - bitte verhaltet euch so (Lautstärke), dass die Arbeitenden auch arbeiten können <br />
- <br />
- 4. Gesprächskultur<br />
- <br />
- - Projektgespräche, die länger als 5-10 Minuten dauern, sollten möglichst im Konferenzraum stattfinden, bitte vorher in den Kalender schauen<br />
- - alle sollen Spaß an der Arbeit haben, aber bitte immer kurz nachschauen, ob jemand telefoniert und generell dadurch gestört wird und die Lautstärke entsprechend anpassen<br />
- <br />
- 5. Arbeitsplatz<br />
- <br />
- - bitte immer die Arbeitsplätze für das Wochenende aufräumen und alle Kisten in den Schrank stellen, damit die Putzfrau die Arbeitsplätze reinigen kann<br />
- - Jacken bitte immer an die Garderobe hängen und nicht über die Stuhllehne<br />
- - auch wenn der Bürostuhl die Möglichkeit zum „Rollen“ bietet, sollte damit nicht durch die ganze Agentur gerollt werden.<br />
- - jeder prüft bitte nach Feierabend, ob seine Heizung noch an ist, ggf. (im Winter nach Absprache) über Nacht laufen lassen (max. Stufe 3).<br />
- <br />
- 6. Konferenzraum<br />
- <br />
- - nach Kundenterminen und internen Besprechungen bitte das benutzte Geschirr (Gläser) sowie leere Flaschen in die Küche bringen bzw. spülen und Flaschen in die Kiste oder (je nach Wetter) in die Küche stellen<br />
- - bitte immer kurz prüfen, ob der Tisch einmal kurz abgewischt werden sollte<br />
- - nach längeren Terminen bitte ggf. die Maus und die Tastatur laden<br />
- <br />
- 7. Leergut<br />
- <br />
- - leere Flaschen bitte selbst in die dafür vorgesehenen Kisten auf die Terrasse bringen (bitte in die richtige Kiste sortieren) und dabei die frische Luft genießen<br />
- - bei Dauerregen und Blitzeis können die Flaschen in der Küche geparkt werden, der Azubi-Dienst übernimmt dann den Weg nach draußen<br />
- - wenn ein Kasten sichtbar voll ist, bitte einen neuen mit Platz suchen und die Flasche dort abstellen, ggf. auch gerne einen leeren Kasten nach oben und einen vollen nach unten stellen.<br />
- <br />
- Noch einmal zur Übersicht, zu den Aufgaben der Auszubildenden gehören:<br />
- <br />
- - Kaffeemaschine laut Plan reinigen (hängt an der Geschirrschranktür)<br />
- - Müll rausbringen (Küche, Schredder, Toiletten, kleiner Mülleimer Damen-WC)<br />
- - Blumen gießen (mind. 1x wöchentlich)<br />
- - Papierstand des Druckers prüfen, Papier nachlegen<br />
- - Beamer für AWP vorbereiten<br />
- - Konferenzraum an- und ausschalten (Licht und Technik)<br />
- - Bürobedarf einkaufen<br />
- - Licht prüfen bzw. ausschalten (der Letzte, der die Agentur verlässt, macht das Licht aus)<br />
- - Getränke bestellen/auffüllen<br />
- - Kühlschrank morgens ein- und abends ausschalten (Stecker ziehen)<br />
- <br />
- Besonderheiten im Winter:<br />
- <br />
- - Heizung kontrollieren<br />
- <br />
- Besonderheiten im Sommer:<br />
- <br />
- - Sonnenschirm aufspannen<br />
- - morgens einmal die Tische auf der Terrasse abwischen<br />
- - Klimaanlage ausschalten<br />
- - Sitzbezücke auslegen<br />
- - Liegestühle auf- und abbauen<br />
- - Brunnen an- und ausschalten<br />
- - regelmäßig Unkraut jäten<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:107')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="106"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">BASIC</span> <span class="tags_normal">LOKAISIERUNG</span> <span class="tags_normal">REDAKTIONELLEPFLEGE</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Auslagerungen in Languagedateien</strong> <span class="small">(03.02.2023)</span><br>Für Lokalisierungen von mehrsprachigen Elementen:<br />
- <br />
- Tag:<br />
- {f:translate(key: 'LLL:EXT:krone_site_package/Resources/Private/Language/locallang.xlf:title.close‘)}<br />
- <br />
- Übersetzungsdatei:<br />
- Die Übersetzungsdateien findet ihr meist hier: KUNDE_site_package > Resources > Private > Language > locallang.xlf (zusätzlich die jeweilige Sprache)<br />
- <br />
- in der Datei:<br />
- <br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;"><trans-unit id=„title.close" xml:space="preserve">
- <source>close</source> —> Rootlanguage
- <target>schließen</target> —> Targetlanguage
- </trans-unit>
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:106')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="105"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">HTML</span> <span class="tags_normal">CSS</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>ID-Ergänzung Body-Tag</strong> <span class="small">(03.02.2023)</span><br>Man kann via TS dem Body-Tag eine ID mitgeben, um der jeweiligen Seite eine bestimmte Optik zu verpassen.<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;">[page["uid"] == 1]
- page.bodyTag = <body id="home">
- [global]<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:105')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="104"></span>
- <span style="float:right;"><span class="tags_normal">DOCKER</span> <span class="tags_normal">DDEV</span> <span class="tags_normal">DOCKER-COMPOSE</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Kopieren von Dateien auf dem Rechner in Docker/DDEV Container</strong> <span class="small">(02.02.2023)</span><br>Bis zum Neustart das Containers:<br />
- Container Namen finden: docker ps --format "{{.Names}}“<br />
- Datei kopieren: docker cp /pfad/zur/quelldatei container_name:/zielpfad/im/container/<br />
- <br />
- Dauerhaft:<br />
- Erstellen eines Volumes (am besten mit docker-compose)<br />
- https://docs.docker.com/storage/volumes/#use-a-volume-with-docker-compose<br />
- <br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">docker ps --format "{{.Names}}"
- docker cp /pfad/zur/quelldatei container_name:/zielpfad/im/container/<br></code></pre></div><a href="https://docs.docker.com/storage/volumes/" target="_blank" "><i class="bi bi-link-45deg"></i>https://docs.docker.com/storage/volumes/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:104')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="103"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">DESIGN</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realscholle_UT240506113241082868800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="David Scholle" /> </div><strong>Facebook-Logo Guidelines</strong> <span class="small">(31.01.2023)</span><br>Hier einmal die Guidelines zu dem Facebook-Logo<br><a href="https://about.meta.com/de/brand/resources/facebookapp/logo" target="_blank" "><i class="bi bi-link-45deg"></i>https://about.meta.com/de/brand/resources/facebookapp/logo</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:103')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="102"></span>
- <span style="float:right;"><span class="tags_normal">INTERN</span> <span class="tags_normal">PROJECTS</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realjens_UT240506112951007818100.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Jens Bextermüller" /> </div><strong>Jobstatus in Projects</strong> <span class="small">(27.01.2023)</span><br>Für eine transparente Arbeitsweise, besonders auch wenn jemand Remote arbeitet, ist es wichtig, dass bei der Bearbeitung einer Kachel von allen im Team immer der korrekte Job-Status berücksichtigt wird. So weiß jeder (PM, Kunde, Kollege), wer gerade an welcher Kachel arbeitet und muss nicht immer nach dem Status fragen. <br />
- <br />
- Daher bitte:<br />
- <br />
- - sobald ihr mit der Bearbeitung startet, die Kachel auch von „bestätigt“ weiter „in Bearbeitung“ ziehen<br />
- - wenn ihr die Arbeit unterbrechen müsst aber die Aufgabe noch nicht abgeschlossen habt (Feierabend, Pause o. anderer Job), bitte die Kachel wieder auf „bestätigt“ zurückschieben<br />
- - wenn es Fragen gibt oder ihr ohne Rücksprache nicht weiterkommt, bitte die Kachel „in Prüfung intern“ schieben<br />
- - sobald wir etwas an den Kunden kommuniziert haben, schieben wir die Kachel auf „in Prüfung extern“ und bei Bedarf auf „erledigt“ oder zurück auf „bestätigt“<br />
- <br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:102')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="101"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realholger_UT240506112908038257900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Holger Middelberg" /> </div><strong>TYPO3 Cache Löschen für Redakteure</strong> <span class="small">(17.01.2023)</span><br>Mit diesem Zusatz unter Optionen (TSconfig) kann einem Nutzer oder einer Nutzergruppe das Löschen des Fronted- oder Komplett-Cache ermöglicht werden:<br />
- options.clearCache.pages = 1<br />
- options.clearCache.all = 1<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">options.clearCache.pages = 1<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:101')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="100"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realholger_UT240506112908038257900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Holger Middelberg" /> </div><strong>TYPO3 Formular mit Link zu Datenschutzbestimmungen</strong> <span class="small">(16.01.2023)</span><br>Das Formular kann man über die Extension form_element_linked_checkbox so erweitern, dass ein verlinkbares Label „Linked checkbox“ ausgewählt werden kann. Damit kann man vor allem die Datenschutz-Bestimmungen verlinken, die in vielen Fällen aktzeptiert werden müssen.<br><a href="https://github.com/tritum/form_element_linked_checkbox/blob/master/README.md#usage" target="_blank" "><i class="bi bi-link-45deg"></i>https://github.com/tritum/form_element_linked_checkbox/blob/master/README.md#usage</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:100')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="99"></span>
- <span style="float:right;"><span class="tags_normal">SERVER</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>mySQL Snippets</strong> <span class="small">(12.01.2023)</span><br>verschiedene Snippets / kleine Code-Fragment für mySQL<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;"># search and replace
- UPDATE capps_media SET path = REPLACE(path, '/home/www/p632963/websecure/', '/home/www/p632963/files/websecure/');
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:99')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="98"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>CORS bei Schriften in Chrome</strong> <span class="small">(10.01.2023)</span><br>Man kann den Header über die htaccess einstellen - und zum Beispiel alles erlauben.<br />
- Ob das dann einen Security Check übersteht ist eine andere Frage ;-)<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;"><IfModule mod_headers.c>
- Header set Access-Control-Allow-Origin "*"
- </IfModule><br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:98')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="97"></span>
- <span style="float:right;"><span class="tags_normal">HTML</span> <span class="tags_normal">WEB</span> <span class="tags_normal">CSS</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Kindelemente in Navigationen (Count)</strong> <span class="small">(06.01.2023)</span><br>Mit diesem Snippet lassen sich Kindelemente einer Navigationsebene zählen und als Klasse ausgeben.<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;">$(this).find('.yamm-content').addClass(function() {
- return 'parents-' + $(this).find("li.yamm-toggle").length;
- });<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:97')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="96"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">HTML</span> <span class="tags_normal">CODE</span> <span class="tags_normal">DESIGN</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Mouse-Over Simulation via Konsole</strong> <span class="small">(06.01.2023)</span><br>Zur Prüfung eines Hovers o.ä. kann man mit diesem Snippet eine Simulation über die Konsole auslösen.<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;">$('.shared-partial.uptime-90-days-wrapper svg rect').trigger('mouseover');<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:96')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="95"></span>
- <span style="float:right;"><span class="tags_normal">SUPPORT</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realholger_UT240506112908038257900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Holger Middelberg" /> </div><strong>First Level Support</strong> <span class="small">(05.01.2023)</span><br>Insbesondere bei Anruf eines Kunden (aber auch per Mail) sollen von den PMs oder Vertretung im sogenannten First Level Support folgende Infos abgefragt werden:<br />
- <br />
- 1. Um welchen Kunden/System geht es genau? ( Domain, Kunde, Ansprechpartner)<br />
- <br />
- 2. Was genau ist das Problem? ( wo und wodurch entsteht der Fehler)<br />
- <br />
- 3. Kann der PM das Problem selbst reproduzieren? (z. B. Login testen, auch verschiedene Browser nutzen)<br />
- <br />
- 4. Wenn das Problem nicht reproduzierbar ist weitere Infos einholen: Browserversion, Benutzer, etc.<br><a href="http://www.supportdetails.net/" target="_blank" "><i class="bi bi-link-45deg"></i>http://www.supportdetails.net/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:95')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="94"></span>
- <span style="float:right;"><span class="tags_normal">HTML</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>Dokumentation HTML</strong> <span class="small">(05.01.2023)</span><br><br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:94')"></span>
- <br><br><span class="bi bi-filetype-pdf" style="" onclick="generatePDF('community_content_id:94')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="90"></span>
- <span style="float:right;"><span class="tags_normal">BASIC</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>Dokumentation PHP</strong> <span class="small">(05.01.2023)</span><br><br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:90')"></span>
- <br><br><span class="bi bi-filetype-pdf" style="" onclick="generatePDF('community_content_id:90')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="88"></span>
- <span style="float:right;"><span class="tags_normal">SERVER</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>PHP mail bei Mittwald</strong> <span class="small">(02.01.2023)</span><br>Bei Mittwald muss bei mail für PHP unbedingt der Header mit angegeben werden. Ansonsten wird die E-Mail nicht versendet.<br />
- Das tagesaktuelle Mail-Log für den Versand von Mails über die Webumgebung (PHP/sendmail) findet man unter /tmp/mail.log<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;"><?php
- $to = 'nobody@example.com';
- $subject = 'the subject';
- $message = 'hello';
- $headers = 'From: webmaster@example.com' . "rn" .
- 'Reply-To: webmaster@example.com' . "rn" .
- 'X-Mailer: PHP/' . phpversion();
- mail($to, $subject, $message, $headers);
- ?><br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:88')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="87"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>htaccess security Einstellungen</strong> <span class="small">(30.11.2022)</span><br>cross site<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">#https://julia-vicentini.de/blog/http-security-header-fuer-die-htaccess-datei/
- #https://htaccessbook.com/important-security-headers/
- #https://www.elastic2ls.com/blog/apache-entfernen-x-powered-by-header/
- <IfModule mod_headers.c>
- Header set X-XSS-Protection "1; mode=block"
- Header set X-Content-Type-Options: nosniff
- Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
- Header always set X-Frame-Options "SAMEORIGIN"
- Header always unset "X-Powered-By"
- Header unset "X-Powered-By"
- Header set Referrer-Policy: strict-origin-when-cross-origin
- Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=strict
- Header set Content-Security-Policy "default-src 'self';script-src 'self' 'unsafe-inline' https://www.diosna.de https://www.googletagmanager.com https://www.google-analytics.com https://maps.googleapis.com https://*.cookiebot.com;style-src 'self' 'unsafe-inline' https://www.diosna.de https://fonts.googleapis.com;img-src 'self' data: https://www.diosna.de https://www.google-analytics.com https://*.doubleclick.net https://maps.gstatic.com https://*.googleapis.com https://*.ggpht.com;font-src 'self' data: https://www.diosna.de https://fonts.gstatic.com;connect-src 'self' https://www.diosna.de https://www.google-analytics.com https://*.doubleclick.net https://maps.googleapis.com https://*.cookiebot.com;frame-src 'self' https://www.diosna.de https://www.google.de https://www.google.com https://*.youtube.com https://*.youtube-nocookie.com https://*.cookiebot.com;"
- Header set x-content-security-policy "frame-ancestors 'self'; base-uri 'self'; default-src 'none'; form-action 'self'; img-src 'self' https://www.diosna.com data:; font-src 'self' data:; object-src 'none'; script-src 'self' '; style-src 'self';"
- Header set Content-Security-Policy "default-src 'self';script-src 'self' 'unsafe-inline' https://www.diosna.de https://www.googletagmanager.com https://www.google-analytics.com https://maps.googleapis.com https://*.cookiebot.com;style-src 'self' 'unsafe-inline' https://www.diosna.de https://fonts.googleapis.com;img-src 'self' data: https://www.diosna.de https://www.google-analytics.com https://*.doubleclick.net https://maps.gstatic.com https://*.googleapis.com https://*.ggpht.com;font-src 'self' data: https://www.diosna.de https://fonts.gstatic.com;connect-src 'self' https://www.diosna.de https://www.google-analytics.com https://*.doubleclick.net https://maps.googleapis.com https://*.cookiebot.com;frame-src 'self' https://www.diosna.de https://www.google.de https://www.google.com https://*.youtube.com https://*.youtube-nocookie.com https://*.cookiebot.com;"
- Header always set Permissions-Policy "geolocation=(self 'https://www.diosna.com' ), microphone=()"
- </IfModule>
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:87')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="86"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>jquery $ not found - mehrfache document.ready zuweisung</strong> <span class="small">(28.11.2022)</span><br>jquery $ not found - mehrfache document.ready zuweisung irgenwo auf der Seite<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:86')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="85"></span>
- <span style="float:right;"><span class="tags_normal">PHP</span> <span class="tags_normal">WEB</span> <span class="tags_normal">TYPO3</span> <span class="tags_normal">EXTBASE</span> <span class="tags_normal">QUERY</span> <span class="tags_normal">SQL</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Extbase Query mit nicht unterstütztem SQL anreichern</strong> <span class="small">(18.11.2022)</span><br>Extbase Queries bieten für simple Abfragen bereits viele Möglichkeiten und mappen die Ergebniszeilen zu Objekten.<br />
- Hat man komplexere Anforderungen, wie im Beispiel eine Umkreissuche, möchte aber nicht auf das Property-Mapping verzichten,<br />
- kann man das Extbase Query Objekt in ein Doctrine QueryBuilder Objekt konvertieren, dem das gewünschte SQL mit allen möglichen QueryBuilder-Methoden hinzufügen und dann dem Extbase Query die Teile des QueryBuilder Objekts hinzufügen.<br />
- So wird das SQL-Query weiterhin durch Extbase ausgeführt (inkl. der QuerySettings) und wir erhalten alle Objekte, die der Abfrage entsprechen.<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">// …
- if (!empty($geo) && !empty($geo['latitude']) && !empty($geo['longitude'])) {
- // mit Typo3DbQueryParser Extbase Query Objekt zu Doctrine QueryBuilder konvertieren
- $queryParser = $this->objectManager->get(Typo3DbQueryParser::class);
- $queryBuilder = $queryParser->convertQueryToDoctrineQueryBuilder($query);
- // eigenes SQL dem QueryBuilder hinzufügen
- $queryBuilder->addSelectLiteral($this->getDistanceSelectPart($geo['latitude'], $geo['longitude']) . ' AS distance');
- if (!empty($geo['radius'])) {
- $queryBuilder->having($queryBuilder->expr()->lte('distance', $geo['radius']));
- $queryBuilder->orderBy('distance', 'ASC‘);
- }
- // QueryBuilder SQL und Parameter als Statement des Extbase Query Objekts setzen
- $query->statement($queryBuilder->getSQL(), $queryBuilder->getParameters());
- }
- return $query->execute();
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:85')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="84"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">JS</span> <span class="tags_normal">HTML</span> <span class="tags_normal">DSGVO</span> <span class="tags_normal">GOOGLE</span> <span class="tags_normal">MAPS</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Google Maps Schriften blockieren</strong> <span class="small">(06.10.2022)</span><br>Wenn Google Maps nicht DSGVO konform eingebunden werden soll, Schriften aber schon.. leider echte Anforderungen.<br />
- <br />
- Das Maps JS lädt von selbst Fonts nach, was man verhindern kann, indem man den Schnipsel vor jedes andere JS im <head> Bereich einfügt.<br><div style="position:relative; width:100"><pre class="language-javascript" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-javascript" style="white-space: pre-wrap;"><script type="text/javascript">
- // prevent google maps from loading roboto font from external
- var head = document.getElementsByTagName('head')[0];
- var insertBefore = head.insertBefore;
- head.insertBefore = function (newElement, referenceElement) {
- if (newElement.href && newElement.href.indexOf('//fonts.googleapis.com/css?family=Roboto') > -1) {
- return;
- }
- insertBefore.call(head, newElement, referenceElement);
- };
- </script><br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:84')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="83"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>v=spf1 Einstellungen per E-Mail gegen Spam</strong> <span class="small">(07.09.2021)</span><br>Alles in EINER Zeile!!!<br />
- v=spf1 a mx a:cybob-one.com a:cybob-three.com a:cybob-four.com a:cybob-five.com -all<br />
- oder z. B. bei Mittwald<br />
- v=spf1 include:agenturserver.de a mx a:cybob-one.com a:cybob-three.com a:cybob-four.coma:cybob-five.com -all<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:83')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="82"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>NextCloud - Warnhinweise unterdrücken (htaccess)</strong> <span class="small">(02.09.2021)</span><br>Bei jedem Update überschreibt Nextcloud leider die htaccess.<br />
- Nachfolgende Zeilen reduzieren die Warnhinweise<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
- unter <IfModule mod_php7.c>
- php_flag output_buffering Off
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:82')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="81"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">JS</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realtobi_UT240506113321057679700.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Tobias Rosenke" /> </div><strong>MIME type is not executable</strong> <span class="small">(22.07.2021)</span><br>Beim Versuch eine auf dem Server liegende .json Datei in ein Javascript einzubinden kam es zu folgender Fehlermeldung:<br />
- "Refused to execute script from 'https://www.hotel-hoepke.de/fileadmin/media/panorama/hoepke-3.json?t=1626946765287' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled.“<br />
- <br />
- Hier wird eine .htaccess in dem Speicherort der .json benötigt<br><div style="position:relative; width:100"><pre class="language-javascript" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-javascript" style="white-space: pre-wrap;">htaccces:
- <FilesMatch ".json$">
- AddType "text/javascript" .json
- </FilesMatch><br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:81')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="80"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>PHP strip_tags / alle HTML-Tags und -Entities löschen</strong> <span class="small">(13.07.2021)</span><br>$ClearText = preg_replace( "/ns+/", "n", rtrim(html_entity_decode(strip_tags($HTMLText))) );<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">$ClearText = preg_replace( "/ns+/", "n", rtrim(html_entity_decode(strip_tags($HTMLText))) );<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:80')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="79"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>TYPO3 - SQL, um was auf Flexform-Felder / Data-Felder zu selektieren</strong> <span class="small">(05.07.2021)</span><br>SELECT uid, usergroup, zip, city, country, ExtractValue(tx_capps_data, '/T3FlexForms/data/sheet/language/field[@index="ptr_email_1"]/value') AS ptr_email_1 FROM `fe_users` WHERE disable != 1 AND deleted != 1<br />
- UPDATE fe_users SET tx_capps_data = UpdateXml(tx_capps_data,'//T3FlexForms/data/sheet/language/field[@index="ptr_email_1"]/value',CONCAT('<value index="vDEF">', 'ulf.langnickel@ptr-hartmann.com', '</value>' )) WHERE uid = 2577;<br />
- <br />
- Oder hier:<br />
- https://gist.github.com/einpraegsam/73821c67177dc1c960ed8a592f093be1<br />
- <br />
- # Read: Show real path in sys_file_storage<br />
- select name, uid, ExtractValue(configuration, '//T3FlexForms/data/sheet[@index="sDEF"]/language/field[@index="basePath"]/value') path from sys_file_storage where uid > 0 <br />
- <br />
- # Write: Set a new value (in this case a detail pid) in FlexForm of a tt_news plugin<br />
- UPDATE tt_content SET pi_flexform = UpdateXML(pi_flexform, '//T3FlexForms/data/sheet[@index="s_misc"]/language/field[@index="PIDitemDisplay"]/value', CONCAT('<value index="vDEF">', 123, '</value>' )) WHERE uid=11107<br />
- <br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">SELECT uid, usergroup, zip, city, country, ExtractValue(tx_capps_data, '/T3FlexForms/data/sheet/language/field[@index="ptr_email_1"]/value') AS ptr_email_1 FROM `fe_users` WHERE disable != 1 AND deleted != 1
- //
- UPDATE fe_users SET tx_capps_data = UpdateXml(tx_capps_data,'//T3FlexForms/data/sheet/language/field[@index="ptr_email_1"]/value',CONCAT('<value index="vDEF">', 'ulf.langnickel@ptr-hartmann.com', '</value>' )) WHERE uid = 2577;
- <br></code></pre></div><a href="https://gist.github.com/einpraegsam/73821c67177dc1c960ed8a592f093be1" target="_blank" "><i class="bi bi-link-45deg"></i>https://gist.github.com/einpraegsam/73821c67177dc1c960ed8a592f093be1</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:79')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="78"></span>
- <span style="float:right;"><span class="tags_normal">COUNTER</span> <span class="tags_normal">TICKER</span> <span class="tags_normal">HTML</span> <span class="tags_normal">JS</span> <span class="tags_normal">CODE</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Counter</strong> <span class="small">(03.05.2021)</span><br>Hier ist mal ein Snippet für einen funktionierenden „Counter“, „Ticker“ oder wie sie sonst noch gerne genannt werden.<br />
- Dies ist ein leicht abgewandelter Abzug von EnviTec, der ursprünglich für DKE erstellt wurde.<br />
- <br />
- Das Hochzählen wird begonnen, sobald die Wrapper-Klasse (in dem Beispiel „counter“) sichtbar ist.<br />
- Hochgezählt wird der Inhalt der Elemente mit der Klasse „count-number“. Der Inhalt der Node ist die Zahl, von der aus das Zählen begonnen werden soll (meist 0).<br />
- Die Data-Attribute „data-to“ und „data-speed“ definieren wie hoch und wie lange (bzw. wie schnell) gezählt werden soll. Die Dauer ist per Default im JS auf 6s gesetzt.<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;"><section class="counter">
- <!--
- - text: starting number
- - data-to: number to count to
- - data-speed: count duration in ms
- -->
- <span class="count-number" data-to="60" data-speed="500">0</span>
- </section>
- <script type="text/javascript">
- /* counter begin */
- if ($('section.counter').length) {
- var animationStarted = false;
- $(document).on('scroll', function() {
- if (
- animationStarted ||
- !isScrolledIntoView($('section.counter'), $(window))
- )
- return;
- animationStarted = true;
- $('section.counter .animation').addClass('animate');
- $('section.counter .count-number').each(function() {
- var $this = $(this);
- var countTo = $this.attr('data-to');
- var duration = $this.attr('data-speed') ? $this.attr('data-speed') : 6000;
- $({
- countNum: $this.text(),
- }).animate(
- {
- countNum: countTo,
- },
- {
- duration: duration,
- easing: 'linear',
- step: function () {
- $this.text(Math.floor(this.countNum));
- },
- complete: function () {
- $this.text(this.countNum);
- $('section.counter .animation').removeClass('animate');
- },
- }
- );
- });
- });
- function isScrolledIntoView($element, $window) {
- var viewportBottom = $window.scrollTop() + $window.height();
- var elementTop = $element.offset().top;
- return viewportBottom > elementTop;
- }
- }
- /* counter end */
- </script>
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:78')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="77"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>PHP Guidelines</strong> <span class="small">(29.04.2021)</span><br>https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/CodingGuidelines/Index.html<br />
- <br />
- https://www.php-fig.org<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:77')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="76"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>Google for Jobs - neue Testing URL</strong> <span class="small">(18.02.2021)</span><br>Es gibt eine neue Testing URL für Google for Jobs und auch anderen „Rich“ Content<br />
- https://search.google.com/test/rich-results?utm_campaign=sdtt&utm_medium=url&id=PSTOW985mnqbk3RM9jEZEA<br><a href="https://search.google.com/test/rich-results?utm_campaign=sdtt&utm_medium=url&id=PSTOW985mnqbk3RM9jEZEA" target="_blank" "><i class="bi bi-link-45deg"></i>https://search.google.com/test/rich-results?utm_campaign=sdtt&utm_medium=url&id=PSTOW985mnqbk3RM9jEZEA</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:76')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="75"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>Google Fonts datenschutzkonform einbinden</strong> <span class="small">(16.02.2021)</span><br>Da Google bei den Download nur TTF bietet,<br />
- kann man das hiermit super umgehen:<br />
- https://gwfh.mranftl.com/fonts<br><a href="https://gwfh.mranftl.com/fonts" target="_blank" "><i class="bi bi-link-45deg"></i>https://gwfh.mranftl.com/fonts</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:75')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="74"></span>
- <span style="float:right;"><span class="tags_normal">JS</span> <span class="tags_normal">CSS</span> <span class="tags_normal">HTML</span> <span class="tags_normal">CLIPBOARD</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Text mit JavaScript in die Zwischenablage kopieren</strong> <span class="small">(27.01.2021)</span><br>Falls mal jemand das Problem hat, dass es nach allen möglichen Anleitungen im Netz bspw. https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard#using_execcommand() nicht funktioniert:<br />
- <br />
- Das Input-Feld darf nicht type=„hidden“, das HTML5-Attribut hidden oder eine CSS-Angabe mit display: none; besitzen.<br />
- Dann funktioniert es einfach ohne Rückmeldung nicht.<br />
- Daher: Das Feld per CSS aus dem Viewport schieben. ;)<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;"><style>
- #copy-text {
- position: fixed;
- top: -100%;
- left: -100%;
- }
- </style>
- <input id="copy-text" value="" type="text" /><br></code></pre></div><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard#using_execcommand()" target="_blank" "><i class="bi bi-link-45deg"></i>https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard#using_execcommand()</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:74')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="73"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>phpMyAdmin Ersatz (adminer)</strong> <span class="small">(17.11.2020)</span><br>Wenn phpMyAdmin nicht da ist, dann einfach:<br />
- https://www.adminer.org<br />
- Nur eine PHP-Datei!!!<br><a href="https://www.adminer.org" target="_blank" "><i class="bi bi-link-45deg"></i>https://www.adminer.org</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:73')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="72"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">FLUID</span> <span class="tags_normal">FORTY3</span> <span class="tags_normal">4T3</span> <span class="tags_normal">TEMPLATE</span> <span class="tags_normal">TEMPLATING</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Parsing-Fehler bei 4T3 Templates vermeiden</strong> <span class="small">(07.10.2020)</span><br>Mischt man 4T3- und Fluidschreibweise im Template, kann es (besonders bei Textfeldern) zu Parsing-Fehlern kommen.<br />
- <br />
- Nutzt man als Platzhalter die 4T3 Schreibweise und in der Condition Fluid, würden bspw. Anführungszeichen im Text dazu, dass eine Fehlermeldung ausgegeben wird.<br />
- <br />
- <f:if condition=„###element_data_bsp###“>...</f:if><br />
- <br />
- Grund dafür ist, dass vor dem Auswerten der Fluid-Abfrage der Inhalt des Platzhalters durch 4T3 eingefügt wird.<br />
- <br />
- <f:if condition=„###element_data_bsp###“>...</f:if><br />
- <br />
- wird damit zu<br />
- <br />
- <f:if condition="<p>Lorem <a href="t3://page?uid=1“>ipsum</a></p>“>…</f:if><br />
- <br />
- <br />
- Deshalb ist es wichtig, darauf zu achten, dass man in der Schreibweise konsistent bleibt.<br />
- <br />
- Entweder Condition und Platzhalter von 4T3 oder Fluid nutzen. (s. Snippet)<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;"><f:if condition="{data.content.4t3_data.bsp}">...</f:if>
- oder
- <notempty element="element_data_bsp">...</notempty>
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:72')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="71"></span>
- <span style="float:right;"><span class="tags_normal">TYPOSCRIPT</span> <span class="tags_normal">FLUID</span> <span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>TYPO3 - Fluid Templates lassen sich nicht überschreiben</strong> <span class="small">(06.10.2020)</span><br>Für gewöhnlich lassen sich Fluid Template-Pfade per TypoScript einfach überschreiben.<br />
- <br />
- Definiert man den Pfad in den Konstanten, wird er üblicherweise mit Index 1 angelegt.<br />
- Überschreibt bspw. eine Extension die Pfade z.B. mit Index 5 und man möchte die Templates dieser Extension überschreiben, reicht es nicht, den unter Index 1 angegebenen Pfad mit einem Index > 5 anzulegen.<br />
- <br />
- Grund dafür ist, dass ein Pfad nur bei einem Index existieren kann.<br />
- Deshalb hier ein Workaround-Snippet dafür:<br />
- <br />
- „100 < .1“: Kopieren des Pfades auf einen höheren Index<br />
- „1 >“: WICHTIG - Löschen des Pfades auf dem vorherigen Index<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">plugin.tx_powermail {
- # ensure that cybob templates are used (override other extensions paths)
- view {
- templateRootPaths {
- 100 < .1
- 1 >
- }
- partialRootPaths {
- 100 < .1
- 1 >
- }
- layoutRootPaths {
- 100 < .1
- 1 >
- }
- }
- }
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:71')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="70"></span>
- <span style="float:right;"><span class="tags_normal">SERVER</span> <span class="tags_normal">WEB</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realdavid_UT240506112738057949500.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="David Juber" /> </div><strong>MX-Einträge (E-Mail)</strong> <span class="small">(29.07.2020)</span><br>Bei MX-Einträgen unter SchlundTech muss hinter dem Eintrag ein Punkt (.) gesetzt werden. Also z. B. "mx1-kunden.gws.eu." statt "mx1-kunden.gws.eu".<br />
- <br />
- Andernfalls funktioniert der E-Mail-Versand/-Erhalt nicht.<br />
- <br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:70')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="69"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>DNS-Cache auf Mac löschen</strong> <span class="small">(29.07.2020)</span><br>Im Terminal folgendes eingeben:<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;">sudo killall -HUP mDNSResponder<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:69')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="68"></span>
- <span style="float:right;"><span class="tags_normal">SUCHE</span> <span class="tags_normal">CODE</span> <span class="tags_normal">SHELL</span> <span class="tags_normal">SERVER</span> <span class="tags_normal">PHP</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Rekursives Suchen</strong> <span class="small">(20.07.2020)</span><br>Dateien inkl. Inhalt rekursiv durchsuchen<br />
- <br />
- Auch ohne SSH-Zugriff per PHP nutzbar (sofern shell_exec() erlaubt ist)<br />
- <br />
- Für mehr Infos:<br />
- https://wiki.ubuntuusers.de/grep/<br />
- <br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">SHELL:
- grep -l -r -w "SUCHBEGRIFF" VERZEICHNIS
- PHP
- <?php
- echo shell_exec('grep -l -r -w "cookieconsent" capps');
- <br></code></pre></div><a href="https://wiki.ubuntuusers.de/grep/" target="_blank" "><i class="bi bi-link-45deg"></i>https://wiki.ubuntuusers.de/grep/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:68')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="67"></span>
- <span style="float:right;"><span class="tags_normal">CSS</span> <span class="tags_normal">HTML</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_luisablaenkner.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Luisa Wedi" /> </div><strong>Background-Image für Outlook Newsletter</strong> <span class="small">(28.04.2020)</span><br>Das <v:image> sorgt dafür, dass ein Background-Image auch im Outlook funktioniert, wichtig ist, dass man dem Bild dann feste Größen mitgibt!<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;"><table>
- <tr>
- <td style="background-image: url(background.png);">
- <!--[if gte mso 9]>
- <v:image xmlns:v="urn:schemas-microsoft-com:vml" id="theImage" style='behavior: url(#default#VML); display:inline-block;position:absolute; height:402px; width:600px;top:0;left:0;border:0;z-index:1;' src="background.png"/>
- <v:shape xmlns:v="urn:schemas-microsoft-com:vml" id="theText" style='behavior: url(#default#VML); display:inline-block;position:absolute; height:402px; width:600px;top:-5;left:-10;border:0;z-index:2;'>
- <div>
- <![endif]-->
- <h1>Titel</h1>
- <p>Einiges an Text.</p>
- <!--[if gte mso 9]>
- </div>
- </v:shape>
- <![endif]-->
- </td>
- </tr>
- </table><br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:67')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="66"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">EID</span> <span class="tags_normal">AJAX</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>eID Skript einbinden - TYPO3 9</strong> <span class="small">(20.04.2020)</span><br>In TYPO3 9 sollte man etwas anders vorgehen - im Wesentlichen, wenn man TYPO3 Funktionen nutzen will, ansonsten funktioniert die „alte“ Einbindung auch noch<br />
- <br />
- — für mehrsprachige Ausgaben sollte pageType verwendet werden!<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">//typo3conf/AdditionalConfiguration.php
- $GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['###eID-Schlüssel###'] = 'typo3conf/scripts/php/w/e/Skript.php';
- //typo3conf/scripts/php/w/e/Skript.php
- namespace CYBOB\PackageName\CategoryName;
- class SkriptEidBootstrap {
- private $gpVars;
- protected $objectManager;
- const GP_GROUP_PARAMS = 'gpgroupkey';
- public function __construct() {
- $feUserObj = \TYPO3\CMS\Frontend\Utility\EidUtility::initFeUser();
- $pid = (\TYPO3\CMS\Core\Utility\GeneralUtility::_GET('id') ? \TYPO3\CMS\Core\Utility\GeneralUtility::_GET('id') : 1);
- $GLOBALS['TSFE'] = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController', NULL, $pid, 0, TRUE);
- $GLOBALS['TSFE']->connectToDB();
- $GLOBALS['TSFE']->fe_user = $feUserObj;
- $GLOBALS['TSFE']->id = $pid;
- $GLOBALS['TSFE']->determineId();
- $GLOBALS['TSFE']->initTemplate();
- $GLOBALS['TSFE']->getConfigArray();
- \TYPO3\CMS\Frontend\Utility\EidUtility::initLanguage();
- $GLOBALS['TSFE']->settingLanguage();
- $GLOBALS['TSFE']->settingLocale();
- $GLOBALS['TSFE']->set_no_cache();
- $GLOBALS['TSFE']->cObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer');
- //wird fuer BE Funktionalitaeten benoetigt, beinhaltet auch den aktuell eingeloggten BE User
- $GLOBALS['BE_USER'] = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Core\Authentication\BackendUserAuthentication');
- $GLOBALS['BE_USER']->start();
- $this->objectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
- $this->gpVars = GeneralUtility::_GP(self::GP_GROUP_PARAMS);
- }
- public function run() {
- if(method_exists($this, $this->gpVars['method']) && $this->gpVars['method'] != 'run'){
- header('Content-Type: application/json');
- echo json_encode($this->{$this->gpVars['method']}());
- }
- }
- }
- $eID = GeneralUtility::makeInstance('CYBOB\PackageName\CategoryName\Skript');
- $eID->run();
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:66')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="65"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realtobi_UT240506113321057679700.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Tobias Rosenke" /> </div><strong>Google for Jobs</strong> <span class="small">(29.01.2020)</span><br>Ein JobPosting Beispiel:<br />
- <br />
- zur Überprüfung: https://search.google.com/structured-data/testing-tool/<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;"><script type="application/ld+json">
- {
- "@context" : "https://schema.org/",
- "@type" : "JobPosting",
- "datePosted": "<f:format.date format='Y-m-d'> {field.date}</f:format.date>",
- "validThrough": "<f:format.date format='Y-m-d'> {field.validThrough}</f:format.date>",
- "description": "<f:format.htmlentities>{field.text}</f:format.htmlentities>",
- "employmentType": "{field.employmentType}",
- "title": "{field.headline}",
- "hiringOrganization": {
- "@type": "Organization",
- "name": "EnviTec Biogas AG",
- "sameAs":"https://www.envitec-biogas.de/",
- "logo": "https://www.envitec-biogas.de/fileadmin/media/images/_envitec-logos/logo_envitec_google_jobs.jpg"
- },
- "jobLocation": {
- "@type": "Place",
- "address": {
- "@type": "PostalAddress",
- "streetAddress": "Boschstraße 2",
- "addressLocality": "Saerbeck",
- "addressRegion" : "Nordrhein-Westfalen",
- "postalCode": "48369",
- "addressCountry": "DE"
- }
- }
- }
- </script> <br></code></pre></div><a href="https://developers.google.com/search/docs/data-types/job-posting?hl=de" target="_blank" "><i class="bi bi-link-45deg"></i>https://developers.google.com/search/docs/data-types/job-posting?hl=de</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:65')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="64"></span>
- <span style="float:right;"><span class="tags_normal">IMAGEMAGICK</span> <span class="tags_normal">PHP</span> <span class="tags_normal">CODE</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>ImageMagick - Bildhelligkeit ermitteln</strong> <span class="small">(27.01.2020)</span><br>Bei den Produktseiten von Osmo wird eine Schrift über die Kopfabbildungen gelegt.<br />
- Problem dabei ist die Schriftfarbe, da die Bilder in allen möglichen Farben existieren und der Text direkt darüber liegt.<br />
- <br />
- Hierzu kann man mit folgendem convert-Befehl herausfinden, ob das Bild eher hell oder dunkel ist und den Text entsprechend mit einer anderen CSS-Klasse und Farbe versehen.<br />
- <br />
- Erfahrungsgemäß sind Werte von unter 45000 eher ein dunkleres Bild, darüber eher ein helleres.<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">if ($imagePath) {
- $imageInfo = shell_exec('convert ' . $imagePath . ' -colorspace Gray -format "%[mean]" info:');
- if ($imageInfo) {
- $textColour = ((int)$imageInfo < 45000 ? 'light' : 'dark') ;
- }
- }<br></code></pre></div><a href="https://www.osmo.de/farbe/farbe-fuer-den-innenbereich/anstriche-fuer-den-fussboden/dekorwachs/" target="_blank" "><i class="bi bi-link-45deg"></i>https://www.osmo.de/farbe/farbe-fuer-den-innenbereich/anstriche-fuer-den-fussboden/dekorwachs/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:64')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="63"></span>
- <span style="float:right;"><span class="tags_normal">HTACCESS</span> <span class="tags_normal">APACHE</span> <span class="tags_normal">TYPO3</span> <span class="tags_normal">BACKEND</span> <span class="tags_normal">SECURITY</span> <span class="tags_normal">CODE</span> <span class="tags_normal">WEB</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>IP Schutz für ein bestimmtes Verzeichnis (z. B. Backend)</strong> <span class="small">(22.01.2020)</span><br>Hier ein Schnipsel, mit dem man ein bestimmtes Unterverzeichnis per .htaccess IP-schützen kann.<br />
- <br />
- Hier am Beispiel des TYPO3-Backends.<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">SetEnvIf Request_URI "/typo3(/.*)?$" backend
- Order deny,allow
- Deny from all
- Allow from env=!backend
- # Kunde
- Allow from IP_KUNDE
- # cybob
- Allow from 212.95.112.203
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:63')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="62"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>TYPO3 Debuggin anschalten / Cache leeren</strong> <span class="small">(17.01.2020)</span><br>Am besten über dass "Install-Tool“.<br />
- Sollte man das Password nicht kennen, jedoch einen FTP-Zugang haben, kann man die „LocalConfiguration.php“ bearbeiten:<br />
- BE: debug >= true<br />
- FE: debug >= true<br />
- SYS: displayErrors = 1<br />
- <br />
- Hinweis: Auch in der php.ini muss das Error-Reporting aktiviert sein.<br />
- <br />
- Ggfs muss man über das Listen-Modul ein Template erstellen, welches im Setup "config.contentObjectExceptionHandler = 0“ beinhaltet.<br />
- <br />
- Je nach TYPO3 Installation / Version wird durch das Blitz-Symbol mehr oder weniger Cache gelöscht. Das kann man auch manuell machen.<br />
- Dafür den „typo3temp“ Ordner oder einen Teil daraus z.B. „Cache/Code/cache_core/ext_localconf…“ löschen.<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:62')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="61"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>TYPO3 Youtube-iFrame erlauben, inline-CSS erlauben</strong> <span class="small">(13.12.2019)</span><br>Um iin TYPO3 Youtube-iFrame oder inline-CSS zu erlauben müssen die Header entsprechend angepasst werden:<br />
- Content-Security-Policy muss mit den Domain-Namen sowie 'unsafe-inline‘ versehen werden.<br />
- <br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:61')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="60"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>TYPO3 Navigation per Fluid mit MenuProcessor</strong> <span class="small">(13.12.2019)</span><br>Eine kurze aber gute Anleitung zu TYPO3 Navigation per Fliud mit MenuProcessor unter:<br />
- https://www.thomaskieslich.de/blog/132-typo3-8-menues-mit-fluid-und-menuprocessor-erstellen/<br><a href="https://www.thomaskieslich.de/blog/132-typo3-8-menues-mit-fluid-und-menuprocessor-erstellen/" target="_blank" "><i class="bi bi-link-45deg"></i>https://www.thomaskieslich.de/blog/132-typo3-8-menues-mit-fluid-und-menuprocessor-erstellen/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:60')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="59"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>TYPO3: Parameter in Fluid ohne Extension anzupassen</strong> <span class="small">(07.11.2019)</span><br><br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;">#
- # z.B. ins +ext Setup im TYPO3 Backend
- #
- lib.gpvar = COA
- lib.gpvar {
- # Schuetzt vor XSS, daher auch ein COA!
- stdWrap.htmlSpecialChars = 1
- 10 = TEXT
- 10 {
- dataWrap = GP:{current}
- insertData = 1
- wrap3 = {|}
- }
- }
- #
- # im Template dann
- #
- {f:cObject(typoscriptObjectPath: 'lib.gpvar', data: 'noheader')}
- <br></code></pre></div><a href="https://blog.teamgeist-medien.de/2016/06/typo3-fluid-get-post-parameter-auslesen.html" target="_blank" "><i class="bi bi-link-45deg"></i>https://blog.teamgeist-medien.de/2016/06/typo3-fluid-get-post-parameter-auslesen.html</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:59')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="58"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">RTE</span> <span class="tags_normal">IMAGES</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>TYPO3 8/9 RTE mit Bildern im Text</strong> <span class="small">(08.08.2019)</span><br>Ab TYPO3 8 ist standardmäßig der rte_ckeditor für die Darstellung der RTE-Felder im Backend zuständig.<br />
- <br />
- Um mit dem neuen Editor Bilder im Text zu nutzen, muss zusätzlich die Extension rte_ckeditor_image installiert werden.<br />
- <br />
- Anschließend eine neue RTE-Konfiguration angelegt und eingebunden werden.<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">#
- # RTE-Konfigurationsdatei anlegen, z.B. unter:
- #
- # typo3conf/RTE/Default.yaml
- #
- # typo3conf/RTE/Default.yaml
- imports:
- # Import default RTE config (for example)
- - { resource: "EXT:rte_ckeditor/Configuration/RTE/Default.yaml" }
- # Import the image plugin configuration
- - { resource: "EXT:rte_ckeditor_image/Configuration/RTE/Plugin.yaml" }
- editor:
- config:
- # RTE default config removes image plugin - restore it:
- removePlugins: null
- #
- # Konfigurationsdatei einbinden, vorzugsweise in der typo3conf/AdditionalConfiguration.php
- # Gibt es sie bereits, den Inhalt einfach hinten anhängen, ansonsten die Datei vorher erstellen.
- #
- # typo3conf/AdditionalConfiguration.php
- <?php
- $GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['default'] = 'typo3conf/RTE/Default.yaml';<br></code></pre></div><a href="https://extensions.typo3.org/extension/rte_ckeditor_image/" target="_blank" "><i class="bi bi-link-45deg"></i>https://extensions.typo3.org/extension/rte_ckeditor_image/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:58')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="57"></span>
- <span style="float:right;"><span class="tags_normal">MYSQL</span> <span class="tags_normal">EMOJI</span> <span class="tags_normal">TYPO3</span> <span class="tags_normal">DATABASE</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Emojis in TYPO3</strong> <span class="small">(07.08.2019)</span><br>Ab TYPO3 9 werden die tollen Unicode-Emojis unterstützt, die auch in Apple Mail, Whatsapp und Co. verwendet werden.<br />
- <br />
- Einzige Voraussetzung dafür ist, dass die Datenbank das Charset utf8mb4 nutzt, da besagte Emojis jeweils 4-Byte Speicherplatz benötigen und das Standard UTF-8-Charset von MySQL nur 3 Byte reserviert.<br />
- <br />
- Achtung: Das bedeutet, dass für jedes Zeichen in der Datenbank 4-Byte reserviert werden. Dementsprechend sollte es verwendet werden, wo es wirklich notwendig ist oder die Datenbank an sich nicht groß ist. Für Texte bedeutet das nämlich 25% mehr Speicherplatz, der belegt wird.<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:57')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="56"></span>
- <span style="float:right;"><span class="tags_normal">DATABASE</span> <span class="tags_normal">DB</span> <span class="tags_normal">CHARSET</span> <span class="tags_normal">MYSQL</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Datenbank Charset ändern</strong> <span class="small">(06.08.2019)</span><br>Um das Charset einer bestehenden Datenbank zu ändern, reicht ein ALTER DATABASE oder ALTER TABLE leider nicht aus. Diese Änderung bezieht sich nur auf die neu geschriebenen Daten und übernimmt keine Konvertierung der bestehenden Inhalte.<br />
- <br />
- Für die Konvertierung hat bei mir Folgendes funktioniert:<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;"># DB Exportieren (DBNAME_dump.sql ist gleichzeitig die Sicherung der DB ;) )
- mysqldump --opt -Q -h HOSTNAME -u USER -p DBNAME > DBNAME_dump.sql
- # Konvertieren der Datei in das gewuenschte Charset
- # Mehr Infos zu iconv: https://wiki.ubuntuusers.de/Skripte/Zeichensatzkonvertierung/
- iconv -f CHARSET_OLD -t CHARSET_NEW DBNAME_dump.sql > dump-converted.sql
- Beispiel: iconv -f iso-8859-1 -t utf8 DBNAME_dump.sql > dump-converted.sql
- # DB Importieren
- mysql -h HOSTNAME -u USER -p --default-character-set=CHARSET_NEW DBNAME < dump-converted.sql
- Beispiel: mysql -h HOSTNAME -u USER -p --default-character-set=utf8 DBNAME < dump-converted.sql<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:56')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="55"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">PHP</span> <span class="tags_normal">HTACCESS</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>PHP Version über htaccess einstellen</strong> <span class="small">(24.07.2019)</span><br>Mit nachfolgender Zeile können zumindest für three, four, five die PHP je Verzeichnis umgestellt werden<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">FCGIWrapper /home/fcgid/web51/php5.6/php-fcgi .php<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:55')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="54"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">BACKEND</span> <span class="tags_normal">USERTSCONFIG</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>IDs im Seitenbaum anzeigen</strong> <span class="small">(25.06.2019)</span><br>Einfach den Schnipsel in die User TSconfig eintragen.<br />
- (Wenn man über das Modul "Backend users" seinen Benutzer bearbeitet, findet man das Feld im Reiter "Options")<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">options.pageTree.showPageIdWithTitle = 1 <br></code></pre></div><a href="https://docs.typo3.org/m/typo3/reference-tsconfig/master/en-us/UserTsconfig/Options.html#pagetree-showpageidwithtitle" target="_blank" "><i class="bi bi-link-45deg"></i>https://docs.typo3.org/m/typo3/reference-tsconfig/master/en-us/UserTsconfig/Options.html#pagetree-showpageidwithtitle</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:54')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="53"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">CODE</span> <span class="tags_normal">TRANSLATION</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Übersetzungen aus Sprachdateien in PHP</strong> <span class="small">(21.06.2019)</span><br><br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">// use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
- $localizedString = LocalizationUtility::translate('individual_key', 'extension_name');<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:53')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="52"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">SQL</span> <span class="tags_normal">QUERYBUILDER</span> <span class="tags_normal">CONNECTION</span> <span class="tags_normal">WEB</span> <span class="tags_normal">CODE</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>TYPO3 SQL ohne Escaping</strong> <span class="small">(19.06.2019)</span><br>Da es durchaus vorkommt, dass man mal MySQL-Funktionen nutzen möchte, die mit TYPO3 QueryBuilder oder Connection so nicht möglich sind, hier mal ein Schnipsel, mit dem man SQL so auf die DB feuern kann.<br />
- <br />
- ! Bitte mit Vorsicht genießen, insbesondere bei GP-Parametern oder sonstigen Nutzereingaben !<br />
- <br />
- <br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">// some sql that is not supported by query builder
- $sql = 'SELECT *
- FROM mytable
- WHERE id IN (1,2,3,4)
- ORDER BY FIELD(id,3,2,1,4);';
- $connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('table_name');
- $statement = $connection->query($sql);
- while($row = $statement->fetch()) {
- // do something with the row
- }
- <br></code></pre></div><a href="https://www.doctrine-project.org/api/dbal/2.7/Doctrine/DBAL/Connection.html#method_query" target="_blank" "><i class="bi bi-link-45deg"></i>https://www.doctrine-project.org/api/dbal/2.7/Doctrine/DBAL/Connection.html#method_query</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:52')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="51"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">EXTENSION</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>TYPO3 Extension - Feld hinzufügen</strong> <span class="small">(18.06.2019)</span><br>1.: ext_tables.sql<br />
- Hier muss das Datenbankfeld definiert werden.<br />
- Bsp: new_field<br />
- <br />
- 2. Configuration/TCA/(Overrides/)my_table.php<br />
- In dem Array muss unter columns die TCA-Konfiguration für das Feld hinzugefügt werden. Der Schlüssel heißt genau so wie das DB-Feld.<br />
- Bsp: <br />
- 'new_field' => [<br />
- 'exclude' => 1,<br />
- 'label' => 'My label',<br />
- 'config' => [<br />
- 'type' => 'check',<br />
- ],<br />
- ]<br />
- <br />
- Zusätzlich muss new_field noch unter types in einer der showitem-Listen auftauchen.<br />
- <br />
- 3. Classes/Domain/Model/MyModel.php<br />
- Hier muss das Attribut im CamelCase inkl. get- und set-Methode hinzugefügt werden.<br />
- Bsp:<br />
- <br />
- /**<br />
- * newField<br />
- *<br />
- * @var integer<br />
- */<br />
- protected $newField = 0;<br />
- <br />
- /**<br />
- * Returns the newField<br />
- *<br />
- * @return integer $newField<br />
- */<br />
- public function getNewField() {<br />
- return $this->newField;<br />
- }<br />
- <br />
- /**<br />
- * Sets the newField<br />
- *<br />
- * @param integer $newField<br />
- * @return void<br />
- */<br />
- public function setNewField $newField) {<br />
- $this->newField = $newField;<br />
- }<br><a href="https://docs.typo3.org/m/typo3/book-extbasefluid/master/en-us/4-FirstExtension/Index.html" target="_blank" "><i class="bi bi-link-45deg"></i>https://docs.typo3.org/m/typo3/book-extbasefluid/master/en-us/4-FirstExtension/Index.html</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:51')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="50"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">TYPO3</span> <span class="tags_normal">TYPOSCRIPT</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Ressourcen-Bild TypoScript</strong> <span class="small">(18.06.2019)</span><br>Wenn man z.B. in Menüs das Bild unter Ressourcen ausgeben möchte ;)<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">5 = FILES
- 5 {
- begin = 0
- maxItems = 1
- references {
- table = pages
- fieldName = media
- uid.data = field:uid:id
- }
- renderObj = COA
- renderObj {
- 10 = IMG_RESOURCE
- 10 {
- file {
- import.data = file:current:publicUrl
- }
- stdWrap.wrap = <img src="|" class="class"
- }
- 15 = TEXT
- 15.value.data = file:current:title
- 15.stdWrap.wrap = title="|"
- 15.stdWrap.required = 1
- 20 = TEXT
- 20.value.data = file:current:alternative
- 20.wrap = alt="|" />
- }
- }
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:50')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="49"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">NAVIGATION</span> <span class="tags_normal">TYPOSCRIPT</span> <span class="tags_normal">WEB</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Minimale Navigation - TypoScript</strong> <span class="small">(18.06.2019)</span><br>Beispiel-Navigation über 3 Ebenen<br />
- (kann natürlich auch für Teaserlisten & Co. genutzt werden ;) )<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">##############################################
- # #
- # TYPO3 Solutions - Programming by #
- # #
- # cybob communication GmbH - www.cybob.com #
- # #
- ##############################################
- lib.mainnavigation = COA
- lib.mainnavigation {
- 10 = HMENU
- 10 {
- special = directory
- special.value = 1
- 1 = TMENU
- 1 {
- expAll = 1
- wrap = <ul class="level-1">|</ul>
- NO {
- wrapItemAndSub.cObject = COA
- wrapItemAndSub.cObject {
- 10 = TEXT
- 10.value = <li>|</li>
- }
- ATagParams = class="a-tag-class" data-test="other-attribute"
- ATagTitle.field = subtitle // title
- }
- CUR < .NO
- CUR = 1
- CUR.wrapItemAndSub.cObject.10.value >
- CUR.wrapItemAndSub.cObject.10.value = <li class="cur">|</li>
- ACT < .CUR
- ACT = 1
- ACT.wrapItemAndSub.cObject.10.value >
- ACT.wrapItemAndSub.cObject.10.value = <li class="act">|</li>
- IFSUB < .NO
- IFSUB = 1
- IFSUB.wrapItemAndSub.cObject.10.value >
- IFSUB.wrapItemAndSub.cObject.10.value = <li class="ifsub">|</li>
- CURIFSUB < .IFSUB
- CURIFSUB = 1
- CURIFSUB.wrapItemAndSub.cObject.10.value >
- CURIFSUB.wrapItemAndSub.cObject.10.value = <li class="curifsub">|</li>
- ACTIFSUB < .CURIFSUB
- ACTIFSUB = 1
- ACTIFSUB.wrapItemAndSub.cObject.10.value >
- ACTIFSUB.wrapItemAndSub.cObject.10.value = <li class="actifsub">|</li>
- }
- 2 = TMENU
- 2 {
- expAll = 1
- wrap = <ul class="level-2">|</ul>
- NO {
- wrapItemAndSub.cObject = COA
- wrapItemAndSub.cObject {
- 10 = TEXT
- 10.value = <li>|</li>
- }
- }
- CUR < .NO
- CUR = 1
- CUR.wrapItemAndSub.cObject.10.value >
- CUR.wrapItemAndSub.cObject.10.value = <li class="cur">|</li>
- ACT < .CUR
- ACT = 1
- ACT.wrapItemAndSub.cObject.10.value >
- ACT.wrapItemAndSub.cObject.10.value = <li class="act">|</li>
- IFSUB < .NO
- IFSUB = 1
- IFSUB.wrapItemAndSub.cObject.10.value >
- IFSUB.wrapItemAndSub.cObject.10.value = <li class="ifsub">|</li>
- CURIFSUB < .IFSUB
- CURIFSUB = 1
- CURIFSUB.wrapItemAndSub.cObject.10.value >
- CURIFSUB.wrapItemAndSub.cObject.10.value = <li class="curifsub">|</li>
- ACTIFSUB < .CURIFSUB
- ACTIFSUB = 1
- ACTIFSUB.wrapItemAndSub.cObject.10.value >
- ACTIFSUB.wrapItemAndSub.cObject.10.value = <li class="actifsub">|</li>
- }
- 3 = TMENU
- 3 {
- expAll = 1
- wrap = <ul class="level-3">|</ul>
- NO {
- wrapItemAndSub.cObject = COA
- wrapItemAndSub.cObject {
- 10 = TEXT
- 10.value = <li>|</li>
- }
- ATagTitle.field = subtitle // title
- }
- CUR < .NO
- CUR = 1
- CUR.wrapItemAndSub.cObject.10.value >
- CUR.wrapItemAndSub.cObject.10.value = <li class="cur">|</li>
- ACT < .CUR
- ACT = 1
- ACT.wrapItemAndSub.cObject.10.value >
- ACT.wrapItemAndSub.cObject.10.value = <li class="act">|</li>
- }
- }
- }<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:49')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="48"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_anaosoeva.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Ana Osoeva" /> </div><strong>CSS Sammlung</strong> <span class="small">(13.06.2019)</span><br><br><div style="position:relative; width:100"><pre class="language-css" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-css" style="white-space: pre-wrap;">CSS kann mit der Funktion calc() rechnen. (Alle Browser unterstützen diese CSS-Funktion mittlerweile.)
- Beispiel:
- Eine responsive Webseite nimmt immer 100% der Bildschirmbreite (100vw) ein. Es gibt eine große linke Inhaltsspalte und eine schmalere rechte Spalte. Dabei hat die rechte Spalte eine feste Breite von 280px, die linke große Spalte soll sich entsprechend anpassen. Mit calc() ist es kein Problem die entsprechende Breite für die linke Spalte zu berechnen:
- .container-left {
- width: calc(100vw - 280px);
- }
- .container-right {
- width: 280px;
- }
- Addition (+), Substraktion (-), Division (/) und Multiplikation (*) sind möglich.
- Neue CSS-Eigenschaften wie „Transitions“ oder „Flexbox“ können nie ohne Einschränkungen direkt angewendet werden. Es benötigt immer eine gewisse Zeit, bis alle Browser die neuen Eigenschaften auch unterstützen und darstellen können. Einige Browser sind damit schneller, Andere brauchen etwas mehr Zeit. Daher müssen neuere CSS-Eigenschaften oft mit Fallback eingesetzt werden. D.h. es muss definiert werden, was passieren soll, wenn ein Browser die neue eingesetzte CSS-Eigenschaft nicht unterstützt.
- Dazu kann die Regel @supports verwendet werden. Alle Browser (außer der Internet Explorer) unterstützen diese Regel (Can I use @supports). So wird vor dem Einsatz einer „kritischen“ CSS-Eigenschaft erst abgefragt, ob diese überhaupt unterstützt wird. Ebenso kann auch @supports not eingesetzt werden. Auch umfangreiche Abfragen sind mit „and“ und „or“ möglich.
- Durch diese CSS-Regel kann der Einsatz von umfangreichen JavaScript-Bibliotheken wie „Modernizr“ entfallen.
- @supports (hyphens: auto) {
- body {
- hyphens: auto;
- }
- }
- @supports ((transition-property: color) or (animation-name: foo))
- and (transform: rotate(10deg)) {
- // ...
- }
- p > a {
- // steuert alle Kindelemente (a-Tags) erster Ebene des p-Tags an
- }
- p + a {
- // steuert das direkte Nachbarelement (a-Tag) des p-Tags an
- }
- p ~ a {
- // steuert alle folgenden Geschwisterelemente gleicher Ebene (a-Tags) des p-Tags an
- }
- input[type="email"] {
- // steuert nur E-Mail-Inputfelder an
- }
- img[title~="clickstorm"] {
- // steuert alle img-Tags an, die im title-Attribut die mit Leerzeichen getrennte Zeichenkette "clickstorm" enthalten
- }
- a[href^="https://"] {
- // steuert alle a-Tags an, die zu einer URL beginnend mit "https://" verweisen
- }
- a[href$=".pdf"] {
- // steuert alle a-Tags an, die zu einer URL endend mit ".pdf" verweisen
- }
- a[href*="clickstorm.de"] {
- // steuert alle a-Tags an, die die Zeichenkette "clickstorm.de" enthalten
- }
- :target
- Die Pseudoklasse :target wird gesetzt, wenn ein bestimmter Bereich der Webseite mit einem Ankerlink (z.B. #details) angesprochen wurde. So kann das CSS je nach aufgerufenem Anker anders aufgebaut werden. Das macht z.B. Bilder-Gallerien oder mobile Navigationen ohne JavaScript möglich.
- HTML:
- <a href="#mobile-nav">Link öffnet mobiles Menü</a>
- <div id="mobile-nav">
- <!-- Mobiles Menü -->
- </div>
- CSS:
- #mobile-nav {
- display: none;
- }
- #mobile-nav:target {
- display: block;
- }
- Syntax der Pseudoelemente
- a::before {
- content: "> ";
- }<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:48')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="47"></span>
- <span style="float:right;"><span class="tags_normal">MYSQL</span> <span class="tags_normal">WEB</span> <span class="tags_normal">DATABASE</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>MySQL Tabelle kopieren (ohne phpMyAdmin)</strong> <span class="small">(13.06.2019)</span><br>Da manche Kunden ja kein phpMyAdmin laufen haben und man nicht so schön "kopiere Tabelle nach" nutzen kann, hier ein Snippet, wie man das Ganze per SQL-Statements machen kann.<br />
- <br />
- So werden Struktur, Daten, Indizes, Constraints & Co. vollständig übernommen.<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">CREATE TABLE new_table LIKE old_table;
- INSERT new_table SELECT * FROM old_table;<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:47')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="46"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">JS</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_benedettagroteschulte.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Benedetta Groteschulte" /> </div><strong>Ausklappbare Navigation Tablet</strong> <span class="small">(05.06.2019)</span><br>Bei Verwendung dieses JS Schnipsels ist es wichtig, dass nur die <li> Elementen des 1. Levels der Navigation angesprochen werden (z. B. andere Klasse mitgeben -> level1Li). Sonst sind die <li> Elemente des 2. Levels der Navigation mobil nicht mehr als Link zu öffnen.<br><div style="position:relative; width:100"><pre class="language-javascript" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-javascript" style="white-space: pre-wrap;">$(document).ready(function () {
- if(jQuery(window).width() > 950) {
- $('li.level1Li').on("touchstart", function (e) {
- "use strict"; //satisfy the code inspectors
- var link = $(this); //preselect the link
- if (link.hasClass('hover')) {
- return true;
- } else {
- link.addClass("hover");
- $('li.level1Li').not(this).removeClass("hover");
- e.preventDefault();
- return false; //extra, and to make sure the function has consistent return points
- }
- });
- }
- });<br></code></pre></div><a href="https://my-agrirouter.com/" target="_blank" "><i class="bi bi-link-45deg"></i>https://my-agrirouter.com/</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:46')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="45"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_alenajung.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Alena Schlagheck" /> </div><strong>Test</strong> <span class="small">(05.06.2019)</span><br><br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:45')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="44"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_benedettagroteschulte.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Benedetta Groteschulte" /> </div><strong>Ausklappbare Navigation Tablet</strong> <span class="small">(05.06.2019)</span><br><br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:44')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="43"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_benedettagroteschulte.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Benedetta Groteschulte" /> </div><strong>Ausklappbare Navigation Tablet</strong> <span class="small">(05.06.2019)</span><br><br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:43')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="42"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_benedettagroteschulte.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Benedetta Groteschulte" /> </div><strong>Ausklappbare Navigation Tablet</strong> <span class="small">(05.06.2019)</span><br><br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:42')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="41"></span>
- <span style="float:right;"><span class="tags_normal">BASH</span> <span class="tags_normal">WEB</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>Onlinestellung - Trick</strong> <span class="small">(21.05.2019)</span><br>Bei Umstellung der Domain auf einen anderen Server (Ändern des A-Record) kann es bekanntermaßen durch DNS-Caches dazu kommen, dass wir das System über die neue Domain noch nicht erreichen können, der Kunde und andere Leute allerdings schon.<br />
- Wir können also nur entsprechend spät reagieren, sollte noch irgendwo die Domain nicht richtig eingestellt sein (TypoScript, Backend, realUrl o.Ä.).<br />
- <br />
- Vor dem Umstellen der Domain können wir diese mit neuer IP auf unserem Rechner in die hosts-Datei eintragen.<br />
- So können wir die Seite mit der neuen Domain testen, bevor diese überhaupt auf das System zeigt.<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">sudo nano /etc/hosts
- # alternativ auch mit vi oder sonstigem Editor
- sudo vi /etc/hosts
- # anschliessend oeffnet sich der Editor
- # nach dem Vorbild der bestehenden Eintraege
- # einfach darunter die IP Adresse des Systems
- # und die neue Domain eintragen
- 192.168.0.1 neue-domain.tld
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:41')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="40"></span>
- <span style="float:right;"><span class="tags_normal">MYSQL</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>mysql FIND_IN_SET mit mehr als einem Suchbegriff</strong> <span class="small">(10.04.2019)</span><br>scheint ganz gut zu funktionieren<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">// https://pritomkumar.blogspot.com/2018/06/mysql-findinset-sith-multiple-search.html
- // https://stackoverflow.com/questions/5015403/mysql-find-in-set-with-multiple-search-string
- $sql .= ' AND ( ( CONCAT(",", sys_file_metadata.fe_groups, ",") REGEXP ",('.implode("|",$arrGroups).')," ) ';<br></code></pre></div><a href="https://stackoverflow.com/questions/5015403/mysql-find-in-set-with-multiple-search-string" target="_blank" "><i class="bi bi-link-45deg"></i>https://stackoverflow.com/questions/5015403/mysql-find-in-set-with-multiple-search-string</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:40')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="39"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>max Upload Size: php.ini Alternative Einstellung in .user.ini</strong> <span class="small">(10.04.2019)</span><br>Wenn man die maximale Upload Größe verändern will und die php.ini nicht greift oder man da nicht dran kommt kann man ggfs. auch eine ".user.ini" in das Verzeichnis des PHP-Skripts (z.B. index.php) legen und dort das Limit erhöhen. Das greift sofort. (check mit: echo ini_get("upload_max_filesize"))<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">upload_max_filesize = 150M
- post_max_size = 150M<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:39')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="38"></span>
- <span style="float:right;"><span class="tags_normal">XML</span> <span class="tags_normal">SITEMAP</span> <span class="tags_normal">CRAWLER</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realdavid_UT240506112738057949500.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="David Juber" /> </div><strong>XML Sitemap Crawler</strong> <span class="small">(09.04.2019)</span><br>Wenn es nötig ist eine umfangreich Seitenstruktur abzubilden (z. B. Fremdsystem zur Angebotserstellung) und dies nicht manuell durchgeführt werden soll, kann auch ein crawling helfen: https://www.xml-sitemaps.com/<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:38')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="37"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>mysql: Suchen & ersetzen</strong> <span class="small">(28.03.2019)</span><br>mal schnell in phpMyAdmin<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">UPDATE sys_file_metadata SET title = REPLACE(title, "DEV_SAP_", "")<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:37')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="36"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>mysql: Umlaut-Sortierung falsch</strong> <span class="small">(27.03.2019)</span><br>Es kann vorkommen, dass eine Suche mit Umlauten in mysql zu vermeintlich falschen Ergebnissen führt. So könnte eine Suche nach "Münster" ggfs. "Munster" (mit U) ausgeben. Dann ist die COLLATION der Grund.<br />
- z.B. latin1_german2_ci gibt dann nur "Münster" aus<br />
- Ähnliches soll auch bei utf8 zu beobachten sein.<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">latin1_german2_ci<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:36')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="35"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">APPLICATION</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>TYPO3 "Oops an error occured" deaktivieren</strong> <span class="small">(19.03.2019)</span><br>Um eine Fehlermeldung zu bekommen, die einem weiterhilft, einfach im Install Tool unter "Configuration Presets" die Debug-Settings aktivieren und im TypoScript (z.B: fileadmin/template/global/ts/system/config.ts) config.contentObjectExceptionHandler = 0 setzen.<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">config.contentObjectExceptionHandler = 0<br></code></pre></div><a href="https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Config/Index.html#contentobjectexceptionhandler" target="_blank" "><i class="bi bi-link-45deg"></i>https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Config/Index.html#contentobjectexceptionhandler</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:35')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="34"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">HTML</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>PHP HTTP_REFERER</strong> <span class="small">(11.03.2019)</span><br>wenn man von HTTPS auf HTTP verlinkt verliert man den HTTP_REFERER<br />
- möchte man dies doch, so kann man nachfolgenden Meta-Tag einsetzen<br />
- (funktioniert NICHT bei allen Browsern)<br />
- PS: an die PMs - kann man nicht ändern, ist halt so!<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;"><meta name="referrer" content="always"><br></code></pre></div><a href="http://smerity.com/articles/2013/where_did_all_the_http_referrers_go.html" target="_blank" "><i class="bi bi-link-45deg"></i>http://smerity.com/articles/2013/where_did_all_the_http_referrers_go.html</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:34')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="33"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_simaschoening.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sima Schöning" /> </div><strong>Bei möglichen Timestamp-Problemen (s. Ehrlich Brother App)</strong> <span class="small">(07.03.2019)</span><br><br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:33')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="32"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">APP</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_simaschoening.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sima Schöning" /> </div><strong>Bei möglichen Timestamp-Problemen (s. Ehrlich Brother App)</strong> <span class="small">(07.03.2019)</span><br>date_default_timezone_set('Europe/Berlin');<br />
- <br />
- $event_date_start_time = mktime (strftime ("%H", $show['begin']), strftime ("%M", $show['begin']), 0, 01, 01, 1970);<br />
- $event_date_start_date = mktime (0, 0, 0, strftime ("%m", $show['date']), strftime ("%d", $show['date']), strftime ("%y", $show['date']));<br />
- $event_date_start = $event_date_start_time + $event_date_start_date;<br />
- <br />
- date_default_timezone_set('UTC');<br />
- <br />
- -> wichtig ist hier, den Timestamp für die Zeit und das Datum einzeln zu erstellen und dann zu addieren!<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:32')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="31"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">JS</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>JS Events mit Delay</strong> <span class="small">(05.03.2019)</span><br>JavaScript Eventhandler nach Verzögerung ausführen<br><div style="position:relative; width:100"><pre class="language-javascript" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-javascript" style="white-space: pre-wrap;">$('#search').keyup(delay(function (e) {
- //Code hier
- }, 200)); //delay in ms
- function delay(callback, ms) {
- let timer = 0
- return function () {
- const context = this, args = arguments
- clearTimeout(timer);
- timer = setTimeout(function () {
- callback.apply(context, args);
- }, ms || 0)
- }
- }
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:31')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="30"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">CSS</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>TYPO3 - CSS wird nicht dargestellt</strong> <span class="small">(05.03.2019)</span><br>In TYPO3 muss man min 3x die eigentliche URL pflegen:<br />
- 1. in der Administration<br />
- 2. in der constants.ts (fileadmin/template/global/ts)<br />
- 3. irgenwo für realurl<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:30')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="29"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>Debug-Ausgaben für Entwickler</strong> <span class="small">(05.03.2019)</span><br>1. Install-Tool anmelden<br />
- Configuration presets / Debug aktivieren<br />
- <br />
- 2.fileadmin/ template/ global / system / ts / config.ts<br />
- config.contentObjectExceptionHandler = 0<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">config.contentObjectExceptionHandler = 0<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:29')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="28"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">WEB</span> <span class="tags_normal">CODE</span> <span class="tags_normal">FLUID</span> <span class="tags_normal">PHP</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>TYPO3 - Fluid rendern ohne Controller</strong> <span class="small">(13.02.2019)</span><br><br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">$templateSource = '<f:if condition="TRUE"><f:then>true</f:then><f:else>false</f:else></f:if>';
- $objectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
- $standaloneView = $objectManager->get('TYPO3\\CMS\\Fluid\\View\\StandaloneView');
- $standaloneView->setTemplateSource($templateSource);
- $content = $standaloneView->render();<br></code></pre></div><a href="https://api.typo3.org/typo3cms/8/html/class_t_y_p_o3_1_1_c_m_s_1_1_fluid_1_1_view_1_1_standalone_view.html" target="_blank" "><i class="bi bi-link-45deg"></i>https://api.typo3.org/typo3cms/8/html/class_t_y_p_o3_1_1_c_m_s_1_1_fluid_1_1_view_1_1_standalone_view.html</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:28')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="27"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">CSS</span> <span class="tags_normal">JS</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>object-fit for IE11</strong> <span class="small">(07.02.2019)</span><br>Da der IE11 nicht so viel kann, ist es mit dem Snippet möglich ein object-fit zu simulieren.<br><div style="position:relative; width:100"><pre class="language-css" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-css" style="white-space: pre-wrap;">--------------
- HTML
- --------------
- <div class="object-fit">
- <img class="backgroundSwap" src="yourimage" width="no-matter" height="no-matter" alt="no-matter">
- </div>
- --------------
- SCSS
- --------------
- detect {
- display: none;
- }
- @supports (object-fit: cover) {
- detect {
- display: block;
- }
- }
- .object-fit {
- width: 300px;
- height: 300px;
- display: inline-block;
- margin: 1%;
- border: 1px solid #000;
- position: relative;
- overflow: hidden;
- }
- .object-fit img {
- position: absolute;
- top: 50%;
- left: 50%;
- height: auto;
- width: auto;
- min-width: 100%;
- min-height: 100%;
- transform: translate(-50%, -50%);
- }
- @supports (object-fit: cover) {
- .object-fit img {
- position: static;
- height: 100%;
- width: 100%;
- transform: none;
- object-fit: cover;
- }
- }
- /* this class added by js */
- img.modifiedImg {
- background-repeat: none;
- background-position: 50% 50%;
- background-size: cover;
- position: static;
- height: 100%;
- width: 100%;
- transform: none;
- }
- --------------
- JS
- --------------
- (function(d) {
- "use strict";
- var notSupported = false;
- function detect() {
- var newEl = document.createElement("detect");
- document.body.appendChild(newEl);
- if (getComputedStyle(newEl).getPropertyValue("display") === "none") {
- notSupported = true;
- }
- //newEl.remove(); not supported in IE11
- // Create Element.remove() function if not exist
- if (!("remove" in Element.prototype)) {
- Element.prototype.remove = function() {
- if (this.parentNode) {
- this.parentNode.removeChild(this);
- }
- };
- }
- // Call remove()
- newEl.remove();
- }
- detect();
- if (notSupported) {
- if ("querySelector" in document && "addEventListener" in window) {
- var theImages = d.querySelectorAll(".backgroundSwap");
- for (var i = 0, len = theImages.length; i < len; i++) {
- var imageUrl = theImages[i].src;
- theImages[i].src =
- "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
- theImages[i].classList.add("modifiedImg");
- theImages[i].style.backgroundImage = "url(" + imageUrl + ")";
- }
- }
- }
- })(document);
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:27')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="26"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realsascha_UT240506113210055529800.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sascha Bernecker" /> </div><strong>Fix for "object-fit" in ie11</strong> <span class="small">(07.02.2019)</span><br><br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:26')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="25"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">FLUID</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>TYPO3 Übersetzungen mit Fluid HTML Tags und Platzhalter</strong> <span class="small">(04.02.2019)</span><br>Mit Fluid geht alles, wenn man weiß wie es geht:<br />
- Mit CDATA in der Übersetzungsdatei XLF werden HTML Tag wie <strong> usw. nicht herausgeparst.<br />
- Damit das dann aber angezeigt wird muss der Fluid-Translate-Tag noch mit dem Format-Raw-Tag ummantelt werden.<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;"><f:format.raw><f:translate key="result_foundforsearch_documents" arguments="{0: '{hits}'}" /></f:format.raw>
- <!-- .xlf -->
- <trans-unit id="result_foundforsearch_document">
- <source><![CDATA[<strong>%s document</strong> is found for your search]]></source>
- <target><![CDATA[Zu Ihrer Suche konnte <strong>%s Dokument</strong> gefunden werden.]]></target>
- </trans-unit>
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:25')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="24"></span>
- <span style="float:right;"><span class="tags_normal">INTERN</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_lenabarthels.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Lena Barthels" /> </div><strong>Ordneretiketten Buchhaltung</strong> <span class="small">(04.02.2019)</span><br>Bank (Jahreszahl)<br />
- Kasse (Jahreszahl)<br />
- Kreditoren I (Jahreszahl)<br />
- Kreditoren II (Jahreszahl)<br />
- Kreditoren III (Jahreszahl)<br />
- Debitoren I (Jahreszahl)<br />
- Debitoren II (Jahreszahl)<br />
- Debitoren III (Jahreszahl)<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:24')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="23"></span>
- <span style="float:right;"><span class="tags_normal">SERVER</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>per Shell Verzeichnisgröße bestimmen, Verzeichnisse löschen, Dateien löschen</strong> <span class="small">(29.01.2019)</span><br><br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;">
- //
- // Verzeichnisse löschen
- //
- find /home/web8/html/accounts/wiltmann/log/ -name "2017-12*" -exec rm -r {} \;
- // Beispiel
- find -type d -name a -exec rmdir {} \;
- //
- // Dateien löschen
- //
- // testing (ohne löschen) - älter als 200 Tage
- find /home/web8/html/accounts/awigo/cache/ -mtime +200 -type f
- // löschen
- find /home/web8/html/accounts/awigo/cache/ -mtime +200 -type f -delete
- // Beispiele
- find . -name "*.bak" -type f
- find ./my_dir -mtime +10 -type f -delete
- //
- // Größe von Verzeichnis per Shell
- //
- du -a -h --max-depth=1 | sort -hr<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:23')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="22"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>Language Code in HTML</strong> <span class="small">(09.01.2019)</span><br>Findet man hier:<br />
- https://www.w3schools.com/tags/ref_country_codes.asp<br />
- und<br />
- https://www.w3schools.com/tags/ref_language_codes.asp<br />
- <br />
- Achtung, die sind nicht immer gleich z.B. en-GB oder cs-CZ oder sv-SE<br><a href="https://www.w3schools.com/tags/ref_country_codes.asp" target="_blank" "><i class="bi bi-link-45deg"></i>https://www.w3schools.com/tags/ref_country_codes.asp</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:22')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="21"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>Sprache in TYPO3</strong> <span class="small">(09.01.2019)</span><br>Um mehrsprachige Seiten in TYPO3 anzeigen zu lassen, muss man einiges konfigurieren:<br />
- In der "fileadmin > templates > global > ts > system > config.ts" muss man das wie folgt anpassen.<br />
- <br />
- Hinwies: Die Seite muss natürlich auch in der entsprechenden Seite übersetzt sein, sonst wird die Standardsprache aus als ID verwendet!<br />
- <br />
- Beim Übersezuungswizard wird der "Ursprungstext" nicht gesetzt, das muss man dann im Element noch mal manuell machen.<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;">//"fileadmin > templates > global > ts > system > config.ts
- [globalVar = GP:L = 1]
- config.sys_language_uid = 1
- config.language = en
- config.htmlTag_langKey = en
- config.locale_all = en_GB
- plugin.tx_indexedsearch._DEFAULT_PI_VARS.lang = 1
- config.defaultGetVars.L = 1
- config.htmlTag_setParams = xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-GB"
- [global]<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:21')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="20"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>Sicherheit</strong> <span class="small">(09.01.2019)</span><br>https://karriere.piepenbrock.de/site/suchergebnis/&search=clickhere%22onfocus=prompt%28/OPENBUGBOUNTY/%29+autofocus=x+bad=--%3E%3C/title%3E%3C/script%3E%3Cimg+src=x+onerror=prompt%28/OPENBUGBOUNTY/%29%3E&abschicken.x=0&abschicken.y=0<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">https://karriere.piepenbrock.de/site/suchergebnis/&search=clickhere%22onfocus=prompt%28/OPENBUGBOUNTY/%29+autofocus=x+bad=--%3E%3C/title%3E%3C/script%3E%3Cimg+src=x+onerror=prompt%28/OPENBUGBOUNTY/%29%3E&abschicken.x=0&abschicken.y=0<br></code></pre></div><a href="https://karriere.piepenbrock.de/site/suchergebnis/&search=clickhere%22onfocus=prompt%28/OPENBUGBOUNTY/%29+autofocus=x+bad=--%3E%3C/title%3E%3C/script%3E%3Cimg+src=x+onerror=prompt%28/OPENBUGBOUNTY/%29%3E&abschicken.x=0&abschicken.y=0" target="_blank" "><i class="bi bi-link-45deg"></i>https://karriere.piepenbrock.de/site/suchergebnis/&search=clickhere%22onfocus=prompt%28/OPENBUGBOUNTY/%29+autofocus=x+bad=--%3E%3C/title%3E%3C/script%3E%3Cimg+src=x+onerror=prompt%28/OPENBUGBOUNTY/%29%3E&abschicken.x=0&abschicken.y=0</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:20')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="19"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realtobi_UT240506113321057679700.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Tobias Rosenke" /> </div><strong>Cron-Job Mailversand</strong> <span class="small">(08.01.2019)</span><br>Falls per Cron-Job Mails versendet werden sollen und es zu diesem Typo3 Error kommt: PHP Warning: proc_open() has been disabled for security reason<br />
- Als Cron-Job Befehl: /home/web1/htdocs/osmo_typo3/cronjob.sh<br />
- Anschließend im cronjob.sh:<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">#!/bin/bash
- /usr/local/php7.0/bin/php -c /home/web1/conf/php-7.0/php.ini -f /home/web1/htdocs/osmo_typo3/typo3/sysext/core/bin/typo3 scheduler:run<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:19')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="18"></span>
- <span style="float:right;"><span class="tags_normal">APP</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>iOS:Welche Auswirkungen hat ein Revoke eines Distribution Certificate </strong> <span class="small">(07.01.2019)</span><br>Revoke eines Distribution Certificate für AppStore Apps ist unkritisch.<br />
- Bei Revoke eines Distribution Certificate für Business Apps sind alle installierten Apps dann nicht mehr lauffähig!!!<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:18')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="17"></span>
- <span style="float:right;"><span class="tags_normal">SWIFT</span> <span class="tags_normal">XCODE</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>SourceSansPro Schrift funktioniert in Swift/XCode UIWebView nicht</strong> <span class="small">(10.12.2018)</span><br>Wenn eine Schrift in einer UIWebView nicht funktioniert, dann ist die CSS-Zuweisung nicht korrekt.<br />
- Es muss der richtige Family-Name angegeben und der richte font-weight definiert sein.<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;">font-family: "Source Sans Pro", SourceSansPro-Light, Arial, Arial, Helvetica, sans-serif;
- font-size: 12px;
- color: #999999;
- font-weight:300;<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:17')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="16"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>Apple Mail zeigt den Inhalt einer E-Mail nicht (mehr) an</strong> <span class="small">(05.12.2018)</span><br>Manchmal zeigt Apple Mail den Inhalt einer E-Mail nicht mehr an.<br />
- Dann am besten direkt im Mail-Verzeichnis von Mail suchen.<br />
- Dazu ins Verzeichnis "Nutzername > Library > Mail" wechseln und dort eine Suche starten. Das Suchergebnis besteht leider nur aus dem Absender-Namen, aber immerhin. Die gesuchte E-Mail markieren & kopieren & in ein neues Verzeichnis einfügen. Diese kopierten E-Mails können in Mail geöffnet und angesehen und gedruckt werden.<br />
- Umständlich, aber es scheint zu funktionieren.<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:16')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="15"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>Mac OS X - Versteckte Dateien anzeigen!</strong> <span class="small">(22.11.2018)</span><br>Mit CMD + SHIFT + . kann man versteckte Dateien anzeigen lassen.<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:15')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="14"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>goliath Cookie Hinweis</strong> <span class="small">(17.11.2018)</span><br>Ab goliath 4.1 kann ein Cookie Hinweis automatisch eingeblendet werden. Unter „Module einstellen“ im Reiter „Inhalte“ kann man verschiedene Optionen einstellen. Natürlich nicht alle, die ein PM will ;-)<br />
- Dann muss man sein eigenes Script einbinden. Dazu kann natürlich der Standard als Grundlage dienen.<br />
- Ergänzung: Wenn man nur den Text ändern möchte benötigt die Text eine LID (SprachID) zu begin. z. B. "1:Das ist mein deutscher Hinweis"<br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:14')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="13"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>TYPO3 Querybuilder: Ausgabe des generierten SQL-Statements</strong> <span class="small">(15.11.2018)</span><br>Wie alles in TYPO3 etwas kompliziert.<br />
- Aber man kommt dran.<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">debug($queryBuilder->getSql());
- debug($queryBuilder->getParameters());<br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:13')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="12"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>TYPO3 Objekt will nicht updaten ( in Datenbank speichern )</strong> <span class="small">(15.11.2018)</span><br>Wenn man auf ein Repository ein update() ausführt, sollte eigentlich der Datenbankeintrag aktualisiert werden.<br />
- In TYPO3 ist das natürlich nicht immer so ;-)<br />
- Deshalb einfach danach den Vorschlaghammer rausholen und persistAll() aufrufen<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;"># Den Vorschlaghammer instanzieren / aus der Kiste kramen
- $persistenceManager = $this->objectManager->get("TYPO3\\CMS\\Extbase\\Persistence\\Generic\\PersistenceManager");
- # Mit dem Vorschlaghammer in die Datenbank speichern / Nägel mit Köpfen machen
- $persistenceManager->persistAll();<br></code></pre></div><a href="https://blog.teamgeist-medien.de/2014/09/extbase-repository-update-persistiert-nicht-nimm-den-vorschlaghammer.html" target="_blank" "><i class="bi bi-link-45deg"></i>https://blog.teamgeist-medien.de/2014/09/extbase-repository-update-persistiert-nicht-nimm-den-vorschlaghammer.html</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:12')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="11"></span>
- <span style="float:right;"><span class="tags_normal">CACHE</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_simaschoening.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Sima Schöning" /> </div><strong>Löschen des Symfony-Caches in Produktiv-Umgebung</strong> <span class="small">(06.11.2018)</span><br>Damit der Cache für eine Symfony-Seite, die auf die Produktiv-Umgebung umgestellt wurde, gelöscht wird, muss der folgende Befehl über die Console ausgeführt werden:<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">php bin/console cache:clear --env=prod --no-debug<br></code></pre></div><a href="https://symfony.com/doc/current/deployment.html" target="_blank" "><i class="bi bi-link-45deg"></i>https://symfony.com/doc/current/deployment.html</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:11')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="10"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> <span class="tags_normal">4T3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_alenajung.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Alena Schlagheck" /> </div><strong>4T3 Sections</strong> <span class="small">(05.11.2018)</span><br>Beispielvorlage für 4T3 Sections<br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;">// ========= LIST TEMPLATE ID 27 =========
- <list classkey="section_elements" template_id="28" flexfield="data_slide" />
- // ==== Easy Admin ====
- section_start|Carousel|Slide|data_slide
- //data_headline|Headline|textfield|1
- //data_text|Text|editor
- //data_buttontext|Buttontext|input
- //data_link|Verlinkung|sourcelink
- //data_picture|Abbildung|sourcelink
- section_end
- // ======== ELEMENT TEMPLATE ID 28 ========
- <div class="item">
- <div class="col-md-5 col-sm-5 col-xs-12 fright">
- <img src="###element_data_picture###" alt="###element_data_headline###" />
- </div>
- <div class="col-md-7 col-sm-7 col-xs-12">
- <h3>###element_data_headline###</h3>
- ###element_data_text###<br clear="both" />
- <a class="button col-md-6 col-sm-12 col-xs-12" href="###element_data_link###" style="padding-top: 8px;" {f:if(condition: '###element_data_link_target### != \'\'', then: 'target=\'###element_data_link_target###\'')}>###element_data_buttontext###</a>
- </div>
- </div><br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:10')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="9"></span>
- <span style="float:right;"><span class="tags_normal">PHP</span> <span class="tags_normal">TYPO3</span> <span class="tags_normal">CODE</span> <span class="tags_normal">EID</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/portrait_marvinbuchmann.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Marvin Buchmann" /> </div><strong>eID-Skript einbinden</strong> <span class="small">(05.11.2018)</span><br>Aufruf: domain.tld/index.php?eID=###eID-Schlüssel###&L=###language_id###<br />
- Parameter: &gpgroupkey[test]=1&gpgroupkey[test2]=2<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;">//typo3conf/AdditionalConfiguration.php
- $GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['###eID-Schlüssel###'] = 'typo3conf/scripts/php/w/e/Skript.php';
- //typo3conf/scripts/php/w/e/Skript.php
- namespace CYBOB\PackageName\CategoryName;
- class SkriptEidBootstrap {
- private $gpVars;
- protected $objectManager;
- const GP_GROUP_PARAMS = 'gpgroupkey';
- public function __construct() {
- $feUserObj = \TYPO3\CMS\Frontend\Utility\EidUtility::initFeUser();
- $pid = (\TYPO3\CMS\Core\Utility\GeneralUtility::_GET('id') ? \TYPO3\CMS\Core\Utility\GeneralUtility::_GET('id') : 1);
- $GLOBALS['TSFE'] = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController', NULL, $pid, 0, TRUE);
- $GLOBALS['TSFE']->connectToDB();
- $GLOBALS['TSFE']->fe_user = $feUserObj;
- $GLOBALS['TSFE']->id = $pid;
- $GLOBALS['TSFE']->determineId();
- $GLOBALS['TSFE']->initTemplate();
- $GLOBALS['TSFE']->getConfigArray();
- \TYPO3\CMS\Frontend\Utility\EidUtility::initLanguage();
- $GLOBALS['TSFE']->settingLanguage();
- $GLOBALS['TSFE']->settingLocale();
- $GLOBALS['TSFE']->set_no_cache();
- $GLOBALS['TSFE']->cObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer');
- //wird fuer BE Funktionalitaeten benoetigt, beinhaltet auch den aktuell eingeloggten BE User
- $GLOBALS['BE_USER'] = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Core\Authentication\BackendUserAuthentication');
- $GLOBALS['BE_USER']->start();
- $this->objectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
- $this->gpVars = GeneralUtility::_GP(self::GP_GROUP_PARAMS);
- }
- public function run() {
- if(method_exists($this, $this->gpVars['method']) && $this->gpVars['method'] != 'run'){
- header('Content-Type: application/json');
- echo json_encode($this->{$this->gpVars['method']}());
- }
- }
- }
- $eID = GeneralUtility::makeInstance('CYBOB\PackageName\CategoryName\Skript');
- $eID->run();
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:9')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="8"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>test</strong> <span class="small">(02.11.2018)</span><br><br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:8')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="7"></span>
- <span style="float:right;"><span class="tags_normal">TYPO3</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realtobi_UT240506113321057679700.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Tobias Rosenke" /> </div><strong>Domain Multilanguage</strong> <span class="small">(01.11.2018)</span><br><br>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:7')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="6"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>a</strong> <span class="small">(21.09.2018)</span><br><br><div style="position:relative; width:100"><pre class="language-xml" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-xml" style="white-space: pre-wrap;"><structure>
- <!-- MARK: DASHBOARD -->
- <element>
- <id><![CDATA[main2]]></id>
- <type><![CDATA[configuration_main]]></type>
- <name><![CDATA[Start]]></name>
- <header_title><![CDATA[Main]]></header_title>
- <nextviewtype><![CDATA[PrivateBrowserStartView]]></nextviewtype>
- <tabbar_icon><![CDATA[home]]></tabbar_icon>
- <picture><![CDATA[so_background.png]]></picture>
- </element>
- <element>
- <id><![CDATA[wiki_main]]></id>
- <parent_id><![CDATA[main]]></parent_id>
- <name><![CDATA[Wiki-Bereich]]></name>
- <type><![CDATA[button1]]></type>
- <header_title><![CDATA[Wiki]]></header_title>
- <nextviewtype><![CDATA[CBListView]]></nextviewtype>
- </element>
- <element>
- <id><![CDATA[wiki_main]]></id>
- <parent_id><![CDATA[main]]></parent_id>
- <name><![CDATA[Browser]]></name>
- <type><![CDATA[button2]]></type>
- <header_title><![CDATA[Wiki]]></header_title>
- <nextviewtype><![CDATA[PrivateBrowserView]]></nextviewtype>
- </element>
- <element>
- <id><![CDATA[wiki_main]]></id>
- <parent_id><![CDATA[main]]></parent_id>
- <name><![CDATA[Projekte]]></name>
- <type><![CDATA[button3]]></type>
- <header_title><![CDATA[Project]]></header_title>
- <nextviewtype><![CDATA[PrivateProjectView]]></nextviewtype>
- </element>
- </structure>
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:6')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="5"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>DEMO js</strong> <span class="small">(21.09.2018)</span><br>ein JS Beispiel <br><div style="position:relative; width:100"><pre class="language-javascript" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-javascript" style="white-space: pre-wrap;">$('[data-role="popover"]').popover();
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:5')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="4"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>DEMO html</strong> <span class="small">(21.09.2018)</span><br><br><div style="position:relative; width:100"><pre class="language-html" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-html" style="white-space: pre-wrap;"><script>
- $('[data-role="popover"]').popover();
- </script>
- pre[class*="language-"] {
- background: #F3F3F3;
- font-size: 12px;
- }
- <div class="navbar navbar-default navbar-fixed-top" role="navigation">
- <div class="navbar-inner">
- <div class="container-fluid">
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:4')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="3"></span>
- <div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>DEMO css</strong> <span class="small">(21.09.2018)</span><br>Ein CSS Beispiel <br><div style="position:relative; width:100"><pre class="language-css" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-css" style="white-space: pre-wrap;">pre[class*="language-"] {
- background: #F3F3F3;
- font-size: 12px;
- }
- <br></code></pre></div>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:3')"></span>
- </td>
- </tr>
- <tr class="cb_pointer">
- <td>
- <div>
- </div>
- </td>
- <td>
- <span name="1"></span>
- <span style="float:right;"><span class="tags_normal">WEB</span> <span class="tags_normal">APP</span> </span><div style="margin-bottom: 4px; margin-right: 4px; float:left;"><img src="https://projects.cybob.com//data/media/portraits/realrobert_UT240506113148004769900.jpg" style="width:40px; height:40px; border-radius: 20px; border:2px solid #CCC; opacity: ;" align="middle" title="Robert Heuer" /> </div><strong>DEMO php</strong> <span class="small">(21.09.2018)</span><br>Ein PHP Beispiel<br><div style="position:relative; width:100"><pre class="language-php" id="preTag" style="max-height:200px; postition:absolute; overflow:hidden; right:0px; white-space: normal;"><code class="language-php" style="white-space: pre-wrap;"><?php
- echo "Hello World!";
- // oder so
- // oder so nicht
- echo "yepp";
- ?>
- <br></code></pre></div><a href="http://www.cybob.com" target="_blank" "><i class="bi bi-link-45deg"></i>http://www.cybob.com</a>
- </td>
- <td>
- <br><br><span class="bi bi-file-richtext" style="" onclick="showDocumentationForTopic('community_content_id:1')"></span>
- <br><br><span class="bi bi-filetype-pdf" style="" onclick="generatePDF('community_content_id:1')"></span>
- </td>
- </tr>
- </table>
- <script>
- Prism.highlightAll();
- </script>
|