vieweditattachhistoryswikistopchangessearchhelp

新規ページ、ページタイトル編集時、未作成新規リンクを回収



refs → addresses (page) → new


"Create a new page"
| newPage scheme type |
(request fieldsHasKey: 'name')
	ifTrue: [(book hasPageNamed: (request fieldsKey: 'name'))
		ifTrue: [response at: 'headerStatus' put: #notFound.
			book formatBookTemplate: 'addressNotFound' request: request response: response shelf: shelf]
		ifFalse: ["Add New Page"
			newPage _ book addNewPage.
			newPage
				forbidWriting;
				date: Date today;
				time: Time now;
				name: (request fieldsKey: 'name');
				user: 'unknown'.
			type _ request fieldsKey: 'type' ifAbsent: ['text-default'].
			(book formatPrivAddress: 'allSchemes' request: request response: response shelf: shelf) do: [:i | ((i at: 1) = (page settingsAt: 'scheme' ifAbsent: ['default'])) ifTrue: [scheme _ i]].
			((scheme at: 4) = 'default') ifFalse: [newPage settingsAt: 'scheme' put: (scheme at: 4)].
			(type beginsWith: 'text-')
				ifTrue: [(type = 'text-default')
					ifTrue: [newPage text: (book formatPageTemplate: 'newText' request: request response: response shelf: shelf page: newPage)]
					ifFalse: [newPage
						text: '';
						settingsAt: 'template' put: (type copyFrom: 6 to: type size)]]
				ifFalse: [
					newPage
						text: '';
						settingsAt: 'isText' put: false.
					(type = 'project-default') ifFalse: [newPage
						settingsAt: 'template' put: (type copyFrom: 9 to: type size)]].
			[newPage
				user: (shelf formatPrivAddress: 'getIPName' request: request response: response);
				write;
				permitWriting] fork.
			(book pages select: [ :pg | pg textContains: newPage name, '*' caseSensitive: true ]) do: [ :pg |
				(pg settingsAt: 'isText' ifAbsent: [true]) ifTrue: [[ pg
					forbidWriting;
				 	updateFormatRequest: request response: response shelf: shelf book: book;
					permitWriting ] fixTemps; fork]].
			response at: 'headerStatus' put: #tempMoved.
			(newPage settingsAt: 'isText' ifAbsent: [true])
				ifTrue: [response at: 'location' put: (request referenceShelf: shelf book: book page: newPage address: 'edit')]
				ifFalse: [response at: 'location' put: (request referenceShelf: shelf book: book page: newPage)].
			book formatPageTemplate: 'newSuccess' request: request response: response shelf: shelf page: newPage]]
	ifFalse: [response at: 'headerStatus' put: #notFound.
		book formatBookTemplate: 'addressNotFound' request: request response: response shelf: shelf]



refs → addresses (page) → save


((request fieldsHasKey: 'text') or: [request fieldsHasKey: 'text1'])
	ifTrue: [(page settingsAt: 'lock' ifAbsent: [false])
		ifTrue: [(page passwordMatches: request response: response shelf: shelf book: book)
			ifTrue: [(page isOlderThan: request)
				ifTrue: ["Write Page"
					page
						forbidWriting;
						clearRefsCache;
						saveFormat: (request text) request: request response: response shelf: shelf book: book;
						time: (Time now);
						date: (Date today);
						nameUnique: (request fieldsKey: 'name') book: book stripping: '<*@>';
						user: 'unknown';
						passwordFrom: request response: response shelf: shelf book: book;
						alertsFrom: request.
					page
						user: (shelf formatPrivAddress: 'getIPName' request: request response: response);
						backup;
						write;
						permitWriting;
						sendAlerts: request response: response shelf: shelf book: book.
					(book pages select: [ :pg | 
						pg textContains: page name, '*' caseSensitive: true ]) do: [ :pg |
							(pg settingsAt: 'isText' ifAbsent: [true]) ifTrue: [ pg
								forbidWriting;
							 	updateFormatRequest: request response: response shelf: shelf book: book;
								permitWriting]].
					response at: 'headerStatus' put: #tempMoved.
					response at: 'location' put: (request referenceShelf: shelf book: book page: page).
					book formatPageTemplate: 'saveSuccess' request: request response: response shelf: shelf page: page]
				ifFalse: [book formatPageTemplate: 'editLockedResolve' request: request response: response shelf: shelf page: page]]
			ifFalse: ["Try Again"
				book formatPageTemplate: 'saveFailed' request: request response: response shelf: shelf page: (page deepCopy saveFormat: (request text) request: request response: response shelf: shelf book: book; name: (request fieldsKey: 'name'); alertsFrom: request)]]
		ifFalse: [(page isOlderThan: request)
			ifTrue: ["Write Page"
				page
					forbidWriting;
					clearRefsCache;
					saveFormat: (request text) request: request response: response shelf: shelf book: book;
					time: (Time now);
					date: (Date today);
					nameUnique: (request fieldsKey: 'name') book: book stripping: '<*@>';
					user: 'unknown';
					passwordFrom: request response: response shelf: shelf book: book;
					alertsFrom: request.
				page
					user: (shelf formatPrivAddress: 'getIPName' request: request response: response);
					backup;
					write;
					permitWriting;
					sendAlerts: request response: response shelf: shelf book: book.
					(book pages select: [ :pg | 
						pg textContains: page name, '*' caseSensitive: true ]) inspect; do: [ :pg |
							(pg settingsAt: 'isText' ifAbsent: [true]) ifTrue: [[ pg
								forbidWriting;
							 	updateFormatRequest: request response: response shelf: shelf book: book;
								permitWriting] fixTemps; fork]].
				response at: 'headerStatus' put: #tempMoved.
				response at: 'location' put: (request referenceShelf: shelf book: book page: page).
				book formatPageTemplate: 'saveSuccess' request: request response: response shelf: shelf page: page]
			ifFalse: [book formatPageTemplate: 'editUnlockedResolve' request: request response: response shelf: shelf page: page]]]
	ifFalse: [response at: 'headerStatus' put: #notFound.
		book formatBookTemplate: 'addressNotFound' request: request response: response shelf: shelf]


このページを編集 (5775 bytes)


Congratulations! 以下の 1 ページから参照されています。

This page has been visited 2168 times.