### Fluent interface example with output
Source: https://processwire.com/docs/start/api
Shows a fluent interface chain that finds a page, filters by selector, gets the first result, and outputs its URL. The output is a sample URL path.
```php
echo $pages->get("/products/2010/")
->find("template=faq, body*=Tobiko")
->first()
->url;
```
```text
/products/2010/sushi-knives/faq/
```
--------------------------------
### Chaining example: resize image and output URL
Source: https://processwire.com/docs/start/api
Demonstrates chaining method calls on a page field to get the first image, resize it to 200px width, and output the URL in an img tag. This is a fluent interface example similar to jQuery chaining.
```php
```
--------------------------------
### Get a specific page and print its title
Source: https://processwire.com/docs/start/variables/pages
Retrieves a page by its path and outputs its title. This example uses the skyscrapers demo site.
```php
echo $pages->get("/cities/chicago/sears-tower/")->title;
```
--------------------------------
### Example: route based on URL segment
Source: https://processwire.com/docs/front-end/how-to-use-url-segments
Example template logic that checks the first URL segment to display a photo gallery, a map, or main content.
```php
if($input->urlSegment1 == 'photos') {
// display photo gallery
} else if($input->urlSegment1 == 'map') {
// display map
} else {
// display main content
}
```
--------------------------------
### Example output of sitemap.sh
Source: https://processwire.com/docs/front-end/include
Example output from running the sitemap.sh script, showing an indented list of page titles.
```text
Home
About
What's Unique?
Why ProcessWire?
Background
Requirements
License
Developer API
Concept
What is the API?
Directories
Template Files
Variables
$page
$pages
$input
$sanitizer
Selectors
Syntax
Plugin Modules
Download
Demo
Videos
Contact
```
--------------------------------
### Example URL with page number
Source: https://processwire.com/docs/start/variables/input
An example of a URL structure that populates the $input->pageNum variable with the value 4.
```text
/path/to/some-page/page4
```
--------------------------------
### Example class demonstrating ProcessWire coding style
Source: https://processwire.com/docs/more/coding-style-guide
This example class `Sample` extends `WireData` and implements `Module`, showcasing the recommended naming conventions, visibility declarations, PHPDoc usage, and control structure formatting. It includes a constant, a property, a regular method, and a hookable method (prefixed with `___`).
```php
$b) {
$foo->bar($arg1);
} else {
BazClass::bar($arg2, $arg3);
}
}
/**
* Description of hookableMethod
*
* @param int $a Description of a
* @param int $b Description of b
* @return string Description of return value
*
*/
public function ___hookableMethod($a, $b) {
$result = $a + $b;
return sprintf($this->_('The result is %s'), $result);
}
}
```
--------------------------------
### Install Seo Maestro with Composer
Source: https://processwire.com/modules/seo-maestro
Command to install the Seo Maestro module via Composer. Requires ProcessWire 3.0 or newer and PHP 7.0 or newer.
```bash
composer require wanze/seo-maestro
```
--------------------------------
### Install ProcessWire with Composer
Source: https://processwire.com/docs/start/install/new
Use Composer to create a new project or add ProcessWire to an existing project.
```bash
composer create-project processwire/processwire
```
```bash
composer require processwire/processwire
```
--------------------------------
### Namespace Declaration Example
Source: https://processwire.com/docs/more/coding-style-guide
Recommended structure for namespace and use declarations in PHP files.
```php
addHookAfter('Field(name!=title)::getInputfield(template=product):(label*=description)',
function(HookEvent $event) {
$field = $event->object; // Field object not named 'title'
$page = $event->arguments(0); // Page object using template 'product'
$inputfield = $event->return; // Inputfield for product page with 'description' in label
$event->message(
"We hooked getInputfield for field '$field' that does not have the name 'title' and " .
"for page '$page' that is using the template 'product', so long as the returned " .
"Inputfield 'label' ($inputfield->label) contains 'description' somewhere in it. "
);
});
```
--------------------------------
### Find pages by template
Source: https://processwire.com/docs/selectors
A basic example of finding all pages that use the 'skyscraper' template.
```php
$pages->find("template=skyscraper");
```
--------------------------------
### Render placeholders in _main.php
Source: https://processwire.com/docs/front-end/output/delayed
Example of a main template file that handles markup generation for the $subnav placeholder.
```php
```
--------------------------------
### Simplified template file /site/templates/basic-page.php
Source: https://processwire.com/docs/front-end/output/delayed
Example of a template file reduced to only the necessary content when using automatic inclusions.
```php
comments->render();
```
--------------------------------
### Web-Based Sitemap Script
Source: https://processwire.com/docs/front-end/include
Example of a PHP script that includes ProcessWire and generates an HTML sitemap with links.
```APIDOC
## Web-Based Sitemap Script
### Description
A PHP script that includes ProcessWire and generates an HTML sitemap with links to all pages.
### Method
Script execution
### Endpoint
./sitemap.php
### Parameters
None
### Request Example
Site Map
Site Map
$page->title";
if($page->numChildren) {
echo "";
foreach($page->children as $child) listPage($child, $level+1);
echo "
";
}
echo "";
}
?>
### Response
Outputs an HTML page with a nested list of links to all pages.
```
--------------------------------
### Example Debug Output
Source: https://processwire.com/docs/front-end/output/markup-regions
This is the format of the debugging information generated when the debug comment is present.
```text
3. replace => #content-head ...
6. replace => #sidebar ...