MOSS het baie ingeboude funksies. Die omvang van hierdie POC is Commerce Server te integreer 2007 met mos 2007 Portal geïntegreerde e-handel Aansoek om voorsiening te maak
Instel MOSS 2007 die Commerce Server Lidmaatskap diensverskaffer gebruik as die basis vir gebruikers verifikasie
Die primêre take is die Sentrale Administrasie en die portaal webwerwe hand-skud met Commerce Server te maak. Dit moet gedoen word deur die wysiging van die toepaslike Web.config lêers vir hierdie webwerwe. Deur die toevoeging van die Handel-bediener en httpModules afdelings, die SharePoint Sentrale Administrasie terrein en die gebeure site sal in staat wees om die nodige CommerceContext voorwerp te skep. Die CommerceContext voorwerp in staat stel om die Commerce Server Lidmaatskap Verskaffer moet korrek geïnisialiseer, en stel ook Web dele en bladsye in die portaal van die CommerceContext voorwerp te gebruik Commerce Server hulpbronne soos die produk Winkel te bekom.
Die UpmMembership Verskaffer strek die Lidmaatskap raamwerk wat aangebied word deur ASP.Net die gebruik van die ASP.Net Login te akkommodeer en kontroleer teen Commerce Server Profiles.
Werk die Web.config vir MOSS Sentrale Administrasie en gebeure site met onder afdelings Commerce Server data en dienste gebruik te maak in MOSS
- Commerce Server Artikel Group
- Commerce Server Group
- Http Modules
- Gemeentes
- Lidmaatskap Verskaffer
- Profiel Artikel
o Bepaal watter lêer Web.config word gebruik vir die SharePoint Sentrale Administrasie terrein en wat gebruik word vir die gebeure site. Gebruik die blad Basismap in IIS Manager die toepaslike pad van die lêer Web.config te bepaal vir elke site.
o Gebruik die lêer Web.config wat voorheen geskep vir die Commerce Server C SharpSite as die bron van die teks te kopieer in die volgende instruksies:
Volg die onderstaande stappe om die lêer Web.config van SharePoint administrasie site aan te pas.
Stap 1: Voeg Commerce Server Artikel Group
Kopieer die Handel [sectionGroup] in [configSections] en plak dit na die [System.Workflow.ComponentModel.WorkflowCompiler] artikel groep.
[sectionGroup naam =”CommerceServer”]
[artikel naam =”aansoek” type =”Microsoft.CommerceServer.Runtime.Configuration.CommerceApplicationSectionHandler, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[artikel naam =”verifikasie” type =”Microsoft.CommerceServer.Runtime.Configuration.CommerceAuthenticationSectionHandler, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[artikel naam =”pyplyne” type =”Microsoft.CommerceServer.Runtime.Configuration.CommercePipelineSectionHandler, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[artikel naam =”caches” type =”Microsoft.CommerceServer.Runtime.Configuration.CommerceCacheSectionHandler, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[artikel naam =”messageManager” type =”Microsoft.CommerceServer.Runtime.Configuration.CommerceMessageManagerSectionHandler, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[artikel naam =”katalogus” type =”Microsoft.CommerceServer.Runtime.Configuration.CommerceCatalogSectionHandler, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[artikel naam =”bestellings” type =”Microsoft.CommerceServer.Runtime.Configuration.CommerceOrdersSectionHandler, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[artikel naam =”profiele” type =”Microsoft.CommerceServer.Runtime.Configuration.CommerceProfilesSectionHandler, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[artikel naam =”contentSelection” type =”Microsoft.CommerceServer.Runtime.Configuration.CommerceContentSelectionSectionHandler, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[artikel naam =”commerceEvent” type =”Microsoft.CommerceServer.Runtime.Configuration.EventLoggerConfigurationHandler, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[artikel naam =”uitdrukkings” type =”Microsoft.CommerceServer.Runtime.Configuration.CommerceExpressionSectionHandler, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[/sectionGroup]
Stap 2: Voeg Commerce Server Group
§ Trek die [CommerceServer] artikel en plak dit na die [SharePoint] artikel, net voor die [system.web] artikel.
[CommerceServer]
[site name aansoek =”CDevSite” debugLevel =”Produksie”/]
[pyplyne][/pyplyne]
[uitdrukkings skema =”Auto”/]
[caches]
[kas naam =”Advertising” type =”Advertising” refreshInterval =”900″ retryInterval =”30″/]
[kas naam =”Afslag” type =”Afslag” refreshInterval =”0″ retryInterval =”30″/]
[kas naam =”ShippingManagerCache” type =”Gestuur” loaderProgId =”Commerce.ShippingMethodCache” refreshInterval =”0″ retryInterval =”30″/]
[kas naam =”PaymentMethodCache” type =”Betaling”/]
[kas naam =”OrdersConfigurationCache” type =”OrdersConfiguration”/]
[/caches]
[messageManager]
[kulture verstek =”en-US” baseName=”CommerceMessageManager” vergadering =”CommerceMessageManager”]
[kultuur id =”en-US”/]
[kultuur id =”fr-fr”/]
[kultuur id =”JA-JP”/]
[kultuur id =”de-DE”/]
[/kulture]
[hulpbronne]
[hulpbron id =”pur_badsku”/]
[hulpbron id =”pur_badplacedprice”/]
[hulpbron id =”pur_discount_changed”/]
[hulpbron id =”pur_discount_removed”/]
[hulpbron id =”pur_noitems”/]
[hulpbron id =”pur_badshipping”/]
[hulpbron id =”pur_badhandling”/]
[hulpbron id =”pur_badtax”/]
[hulpbron id =”pur_badcc”/]
[hulpbron id =”pur_badpayment”/]
[hulpbron id =”pur_badverify”/]
[hulpbron id =”pur_out_of_stock”/]
[hulpbron id =”unknown_shipping_method”/]
[/hulpbronne]
[/messageManager]
[bestellings honorStatus =”waar” newOrderStatus=”NewOrder” sqlCommandTimeoutSeconds =”60″ sqlLongRunningCommandTimeoutSeconds =”28800″]
[addressMap]
[profileDefinition naam =”Adres”/]
[eiendom van =”GeneralInfo.address_id” aan =”OrderAddressId”/]
[eiendom van =”GeneralInfo.first_name” aan =”Noemnaam”/]
[eiendom van =”GeneralInfo.last_name” aan =”Language”/]
[eiendom van =”GeneralInfo.address_line1″ aan =”Regel1″/]
[eiendom van =”GeneralInfo.address_line2″ aan =”Regel2″/]
[eiendom van =”GeneralInfo.city” aan =”Plaas”/]
[eiendom van =”GeneralInfo.region_code” aan =”RegionCode”/]
[eiendom van =”GeneralInfo.postal_code” aan =”Poskode”/]
[eiendom van =”GeneralInfo.country_name” aan =”Land Naam”/]
[eiendom van =”GeneralInfo.region_name” aan =”Staat”/]
[eiendom van =”GeneralInfo.tel_number” aan =”DaytimePhoneNumber”/]
[/addressMap]
[Tipes]
[Tipe Sleutel =”Basket” Gebruiker tik naam =”Basket” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[Tipe Sleutel =”PurchaseOrder” Gebruiker tik naam =”PurchaseOrder” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[Tipe Sleutel =”Koop hosting” Gebruiker tik naam =”Koop hosting” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[Tipe Sleutel =”Bestelvorm” Gebruiker tik naam =”Bestelvorm” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[Tipe Sleutel =”Lineitem” Gebruiker tik naam =”Lineitem” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[Tipe Sleutel =”Gestuur” Gebruiker tik naam =”Gestuur” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[Tipe Sleutel =”Betaling” Gebruiker tik naam =”Betaling” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[Tipe Sleutel =”CreditCardPayment” Gebruiker tik naam =”CreditCardPayment” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[Tipe Sleutel =”GiftCertificatePayment” Gebruiker tik naam =”GiftCertificatePayment” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[Tipe Sleutel =”PurchaseOrderPayment” Gebruiker tik naam =”PurchaseOrderPayment” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[Tipe Sleutel =”CashCardPayment” Gebruiker tik naam =”CashCardPayment” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[Tipe Sleutel =”Om Adres” Gebruiker tik naam =”Om Adres” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[Tipe Sleutel =”DiscountApplicationRecord” Gebruiker tik naam =”DiscountApplicationRecord” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[Tipe Sleutel =”ShippingDiscountRecord” Gebruiker tik naam =”ShippingDiscountRecord” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[Tipe Sleutel =”PromoCodeRecord” Gebruiker tik naam =”PromoCodeRecord” AssemblyType =”GAC” Naamruimte =”Microsoft.CommerceServer.Runtime.Orders” Vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[/Tipes]
[Grense OrderFormsPerOrderGroup =”5″ PromoCodeRecordsPerOrderForm =”10″ PromoCodesPerOrderForm =”10″ LineItemsPerOrderForm =”40″ OrderTemplatesPerUser =”10″ PaymentsPerOrderForm =”10″ ShipmentsPerOrderForm =”40″ BasketsPerUser =”15″ OrderAddressesPerOrderGroup =”10″/]
[MappingFiles PipelineMappingFilename =”OrderPipelineMappings.xml” StorageMappingFilename =”OrderObjectMappings.xml”/]
[SerializationBindings]
[SerializationBinding OldType =”Microsoft.CommerceServer.Runtime.Orders.LineItem , Microsoft.CommerceServer.Runtime ,Weergawe = 6.0.1.0, Culture = neutraal, PublicKeyToken = 31bf3856ad364e35″ Newtype =”Microsoft.CommerceServer.Runtime.Orders.LineItem, Microsoft.CommerceServer.Runtime,Weergawe = 6.0.1.0, Culture = neutraal, PublicKeyToken = 31bf3856ad364e35″/]
[/SerializationBindings]
[/bestellings]
[commerceEvent]
[voeg class Name =”Microsoft.CommerceServer.Runtime.AddItemToBasketEvent” id =”AddItemToBasket”/]
[voeg class Name =”Microsoft.CommerceServer.Runtime.RemoveItemFromBasketEvent” id =”RemoveItemFromBasket”/]
[voeg class Name =”Microsoft.CommerceServer.Runtime.SubmitOrderEvent” id =”SubmitOrder” loggingEnabled =”waar”/]
[/commerceEvent]
[/CommerceServer]
Stap 3: Voeg “CommerceApplication” in “httpModules” Artikel
§ Trek die Handel HTTP Modules aan die einde van die [httpModules] artikel.
[voeg naam =”CommerceApplication” type =”Microsoft.CommerceServer.Runtime.CommerceApplicationModule, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[voeg naam =”CommerceAuthentication” type =”Microsoft.CommerceServer.Runtime.CommerceAuthenticationModule, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[voeg naam =”CommerceOrder” type =”Microsoft.CommerceServer.Runtime.Orders.CommerceOrderModule, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[voeg naam =”CommerceCatalog” type =”Microsoft.CommerceServer.Runtime.Catalog.CommerceCatalogModule, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[voeg naam =”CommerceProfile” type =”Microsoft.CommerceServer.Runtime.Profiles.CommerceProfileModule, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[voeg naam =”CommerceExpressionEvaluator” type =”Microsoft.CommerceServer.Runtime.Targeting.CommerceExpressionModule, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[voeg naam =”CommerceCache” type =”Microsoft.CommerceServer.Runtime.Caching.CommerceCacheModule, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]
[voeg naam =”CommerceContentSelection” type =”Microsoft.CommerceServer.Runtime.Targeting.CommerceContentSelectionModule, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/][voeg naam =”CommerceDataWarehouseAuthenticationModule” type =”Microsoft.CommerceServer.Runtime.CommerceDataWarehouseAuthenticationModule, Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″/]Verwyder of kommentaar uit die Handel bediener verifikasie Module. Hierdie module is nie nodig nie, want ASP.NET vorm verifikasie sal gebruik word vir alle waarmerk.
Stap 4: Voeg “Commerce Server” AssembliesCopy die handel bediener vergadering inligting van CSharpSite Web.config en plak dit in die [gemeentes] tag in die Sentrale Administrasie werf se Web.config soos hieronder:
[gemeentes]
[voeg vergadering =”Microsoft.CommerceServer.Runtime, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31bf3856ad364e35″ /]
[voeg vergadering =”Microsoft.CommerceServer.Catalog, Weergawe = 6.0.1.0, Kultuur = neutrale, PublicKeyToken = 31BF3856AD364E35″ /][/gemeentes]
Stap 5: Instel Sentrale Administrasie Commerce Server Lidmaatskap te erken
Kopieer die onderstaande kode uit te [system.web] gedeelte van die lêer Web.config vir die Sentrale Administrasie. Let daarop: Plak dit voor die sluitingsdatum [/system.web].
[lidmaatskap defaultProvider =”UpmMembershipProvider”]
[verskaffers]
[duidelik /]
[voeg applicationName =”CSharpSite ”
enablePasswordRetrieval =”valse”
enablePasswordReset =”waar”
requiresQuestionAndAnswer =”waar”
requiresUniqueEmail =”waar”
enableCreateDate =”waar”
enableEmailAddress =”waar”
enableLastLoginDate =”waar”
profileDefinition =”UserObject”
passwordFormat =”Hashed”
name =”UpmMembershipProvider”
type =”Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipProvider”/]
[/verskaffers]
[/lidmaatskap]
Stap 6: Die instel van die Commerce Server Profiles artikel
Hierdie afdeling bevat die instellings wat die instel van die funksie van profiele en katalogus stelle. Die [USER PROFILE] knoop lê in die [CommerceServer][profiele] knoop in die Web.config.
Uncomment die profiele artikel in [commerceserver] node.
[USER PROFILE
profileDefinition =”UserObject”
userIdProperty =”GeneralInfo.email_address”
organizationIdProperty =”AccountInfo.org_id”
catalogSetIdProperty =”AccountInfo.user_catalog_set”
userIdSource = “ASP.NET”
userIdKey = “GeneralInfo.email_address”
userIdTarget = “GeneralInfo.user_id”
/]
[organizationProfile
profileDefintion =”Organisasie”
organizationIdProperty =”GeneralInfo.org_id”
catalogSetIdProperty =”GeneralInfo.org_catalog_set”
/]
Stap 7: Voeg gebruikers in die Sentrale AdministrationLocate Sentrale Administrasie, Application Management, Verifikasie Verskaffers, Verstek sone inskrywing. Maak seker dat jy die portaalsite Web Aansoek gekies in die drop-down list.
o Klik Vorms.
o Verander die Lidmaatskap Verskaffer Naam te UpmMembershipProvider. Dit moet ooreenstem met die naam wat in die lidmaatskap afdeling van die Web.config file.Locate Sentrale Administrasie, Application Management, en Beleid vir Web Aansoek. Maak seker dat jy die portaal Web Aansoek gekies.
o Klik Voeg gebruikers.
'n Gekose Default sone, en kliek dan Volgende.
o Tik die e-pos adres van die gebruiker wat jy voorheen bygevoeg deur die gebruik van die Handel-bediener kliënt en Bestellings Bestuurder, en kliek dan op kyk gebruiker.
o As die gebruiker se naam is suksesvol erken, dit sal onderstreep word. Kies Volle beheer, en kies dan Finish.
o As die gebruiker naam nie erken word nie, loop 'n SQL Server spoor op die Commerce Server Profiles databasis om seker te maak dat die navrae loop teen die databasis. Verder, seker te maak dat die inskrywing vir die verskaffer is in die lêer Web.config vir Sentrale Administrasie, en kyk vir foute in die event log.
Stap 8: Trek die volgende XML-lêers van die CSharpSite (IIS Virtual Gids) na die hoofdmap van die Sentrale Administrasie tuiste:
o OrderObjectMappings.xml
o OrderPipelineMappings.xml
Hardloop Sentrale Administrasie om seker te maak dat hierdie veranderinge korrek gedoen. Indien foute voorkom, check die lêer Web.config vir sintaksis issues.Even indien die bladsy vertoon korrek, Maak die gebeurtenis log. Sommige regte foute kan weggesteek word.
Die instel van die MOSS portaal die Commerce Server Lidmaatskap diensverskaffer te gebruik:
Stap 1: Volg die bogenoemde 6 stappe Portal site vir Handel bediener op te stel.
Stap 2: Kommentaar uit die bestaande [verifikasie], [identiteit], en [magtiging] afdelings. Dit sal afskakel die standaard Windows verifikasie en magtiging.
Stap 3: Kopieer die onderstaande konfigurasie-instellings inhoud van die lêer Web.config vir die gebeure site. Plak dit nadat die vorige gedeeltes wat jy net kommentaar uit. Dit stel die site vir vorm verifikasie en ontken anonieme toegang.
[verifikasie af =”Vorms”]
[vorms loginUrl =”/_layouts / login.aspx” name =”.ASPXFORMSAUTH” /]
[/verifikasie]
[magtiging]
[ontken gebruikers =”?” /][/magtiging] Kyk na die portaal webwerf in 'n webblaaier. Jy moet herlei word na die aanmelding bladsy. Meld aan en gebruik die gebruiker geloofsbriewe wat jy bygevoeg deur die gebruik van die kliënt en Bestellings Bestuurder.
Stap 4: Trek die volgende XML-lêers van die CSharpSite (IIS Virtual Gids) na die hoofdmap van die gebeure site:
o OrderObjectMappings.xml
o OrderPipelineMappings.xml
Stap 5: Begin die IIS
Stap 6: Begin die gebeure site en kyk vir foute.
[Let daarop : Ek is nie in staat om skrifte tag om te Post hier al vervang “[” & “]” met “<" & ">“
Laat 'n Antwoord