PHP Classes

File: README.md

Recommend this page to a friend!
  Classes of Jorge Castro   PHP AMP Page Generator   README.md   Download  
File: README.md
Role: Documentation
Content type: text/markdown
Description: Documentation
Class: PHP AMP Page Generator
Generate HTML for using as Google AMP site
Author: By
Last change: * 1.5 2019-08-31 Removed min-width in the sections.
1.3
1.3
1.3
1.3
1.3
1.3
1.3
1.3
1.1
Date: 4 years ago
Size: 11,779 bytes
 

Contents

Class file image Download

AMPGeneratorOne

The library generates Google AMP sites using PHP by using procedural code.

Build Status Packagist Total Downloads [Maintenance]() [composer]() [php]() [php]() [CocoaPods]()

This application simplifies (via code) the generation of an AMP site. It's easiest to program, just a few of lines of code and that's it.

For example, let's say that you want to add a new section

$secImage= new SectionModel("The Cupcakes","","/image.jpg");
$secImage->buttons[]=new ButtonModel("More Information","#");
$secImage->buttons[]=new ButtonModel("More Information","#","warning");

$amp->sectionImage($secImage,2250,441);

It will generate the next visual:

simple section

How it works?

use eftec\AmpGeneratorOne\AmpGeneratorOne;
use eftec\AmpGeneratorOne\ButtonModel;
use eftec\AmpGeneratorOne\FooterModel;
use eftec\AmpGeneratorOne\HeaderModel;
use eftec\AmpGeneratorOne\HeadModel;
use eftec\AmpGeneratorOne\LinkModel;
use eftec\AmpGeneratorOne\SectionModel;

include "lib/AmpGeneratorOne.php";
$amp=new AmpGeneratorOne("https://www.canonical.com","https://www.canonical.com/amp");
// # 
$amp->startAmp(new HeaderModel("description","title","favicon.ico"));

// # sidebar (optional)
$amp->sidebar($menu); // $menu is an array of /LinkModel()

// #1 head (the top bar)
$amp->head(new HeadModel("",$base."logo.png"),70,70);

// # example section
$amp->sectionFirst(new SectionModel("Title","Description"));

// # footer
$amp->sectionFooter(new FooterModel("Copyright something(c)","See as desktop"));

amp->render(); // you also could generate a file.

result

Tablet version

result

Mobile version

result.jpg)

Mobile version (slider open)

Method __construct

AmpGeneratorOne constructor.

Parameters:

  • $canonical Original url . Example https://www.southprojects.com/somesite (string)
  • $base Original base url without trailing slash. Example https://www.southprojects.com (string)
  • $sidebarColor The background color of the sidebar Example #ffffff,white,rgb(255,255,255) (string)
  • $themecolor .The color of the logo,burger Example #ffffff,white,rgb(255,255,255) (string)
  • $classSidebar. text-primary,text-secondary,text-success,text-info,text-warning,text-danger,text-white,text-black (string) ## Method fixRelativeUrl Fix an url and convert a relative url into an absolute url

Parameters:

  • $url param $url ()
    $tmp=$ampgeneratorone->fixRelativeUrlthis(); 
    
    ## Method genStructured It generates the social and seo structure (Twitter card, Facebook OG and Google Schema)

Parameters:

  • $structured param StructureModel $structured (StructureModel)
    $tmp=$ampgeneratorone->genStructuredthis(); 
    
    ## Method startAmp Start to generate an Amp site.

Parameters:

  • $param param HeaderModel $param (HeaderModel)
  • $structured param StructureModel $structured (StructureModel) ## Method sidebar Generates a sidebar.

Parameters:

  • $urls param LinkModel[] $urls (LinkModel[])
    $tmp=$ampgeneratorone->sidebarthis(); 
    
    ## Method head Generates the header navigation

Parameters:

  • $param param HeadModel $param (HeadModel)
  • $width param int $width (int)
  • $height param int $height (int)
    $tmp=$ampgeneratorone->headthis(); 
    
    ## Method sectionFooter It generates a footer of the amp site.

Parameters:

  • $param param FooterModel $param (FooterModel)
    $tmp=$ampgeneratorone->sectionFooterthis(); 
    
    ## Method sectionAnalytics Generates a Google Analytics section

Parameters:

  • $account UA-XXXXX-Y (string)
    HeaderModel());
    
    $tmp=$ampgeneratorone->sectionAnalyticsthis(); ## Method sectionFirst It draw a first section (hero style)

Parameters:

  • $content param SectionModel $content (SectionModel)
    $tmp=$ampgeneratorone->sectionFirstthis(); 
    
    ## Method sectionImageButton It generates a section with a single button.

Parameters:

  • $content param SectionModel $content (SectionModel)
  • $fullscreen param bool $fullscreen (bool)
    $tmp=$ampgeneratorone->sectionImageButtonthis(); 
    
    ## Method sectionText It generates a section with a text.

Parameters:

  • $content param SectionModel $content (SectionModel)
    $tmp=$ampgeneratorone->sectionTextthis(); 
    
    ## Method sectionTextQuote It generates a quote text

Parameters:

  • $content param SectionModel $content (SectionModel)
    $tmp=$ampgeneratorone->sectionTextQuotethis(); 
    
    ## Method sectionUL It generates an unsorted list section

Parameters:

  • $links param LinkModel[] $links (LinkModel[])
    $tmp=$ampgeneratorone->sectionULthis(); 
    
    ## Method sectionOL It generates a sorted list section

Parameters:

  • $links param LinkModel[] $links (LinkModel[])
    $tmp=$ampgeneratorone->sectionOLthis(); 
    
    ## Method sectionButtons It generates a section with one (or more than one) buttons.

Parameters:

  • $content param SectionModel $content (SectionModel)
    $tmp=$ampgeneratorone->sectionButtonsthis(); 
    
    ## Method sectionCols It generates a section with columns

Parameters:

  • $contents param SectionModel[] $contents (SectionModel[])
    $tmp=$ampgeneratorone->sectionColsthis(); 
    
    ## Method sectionHeaderCentral It generates a header central section. It could includes buttons.

Parameters:

  • $content param SectionModel $content (SectionModel)
    $tmp=$ampgeneratorone->sectionHeaderCentralthis(); 
    
    ## Method sectionRaw

Parameters:

Method sectionImageContent

It generates a section with an image content.

Parameters:

  • $content param SectionModel $content (SectionModel)
  • $width param $width ()
  • $height param $height ()
    $tmp=$ampgeneratorone->sectionImageContentthis(); 
    
    ## Method sectionImageContentLeft It generates a section with a image content at the left.

Parameters:

  • $content param SectionModel $content (SectionModel)
  • $width param $width ()
  • $height param $height ()
    $tmp=$ampgeneratorone->sectionImageContentLeftthis(); 
    
    ## Method sectionTable It generates a table

Parameters:

  • $cols param array $cols (array)
    $tmp=$ampgeneratorone->sectionTablethis(); 
    
    ## Method sectionImage It generates an image. The size of the image is required to calculate the ratio

Parameters:

  • $content param SectionModel $content (SectionModel)
  • $width param int $width (int)
  • $height param int $height (int)
    $tmp=$ampgeneratorone->sectionImagethis(); 
    
    ## Method sectionGMapFull It generates a google map section. It can't be locate at the 30% top of the site (Amp restriction)

Parameters:

  • $content param SectionModel $content (SectionModel)
  • $googleMapUrl param string $googleMapUrl (string)
  • $placeholder param string $placeholder (string)
    $tmp=$ampgeneratorone->sectionGMapFullthis(); 
    
    ## Method sectionGMapBoxed It generates a google map (boxed) section. It can't be locate at the 30% top of the site (Amp restriction)

Parameters:

  • $content param SectionModel $content (SectionModel)
  • $googleMapUrl param string $googleMapUrl (string)
    $tmp=$ampgeneratorone->sectionGMapBoxedthis(); 
    
    ## Method sectionNavigation It generates a footer navigation

Parameters:

  • $content param SectionModel $content (SectionModel)
  • $image param string $image (string)
  • $width param int $width (int)
  • $height param int $height (int)
  • $navCol1 param LinkModel[] $navCol1 (LinkModel[])
  • $navCol2 param LinkModel[] $navCol2 (LinkModel[])
  • $navCol3 param LinkModel[] $navCol3 (LinkModel[])
  • $navCol4 param LinkModel[] $navCol4 (LinkModel[])
    $tmp=$ampgeneratorone->sectionNavigationthis(); 
    
    ## Method sectionColImage It generates a section with images and text.

Parameters:

  • $contents param SectionModel[] $contents (SectionModel[])
  • $width param int $width (int)
  • $height param int $height (int)
  • $maxCol param int $maxCol (int)
    $tmp=$ampgeneratorone->sectionColImagethis(); 
    
    ## Method genModifyStyle

Parameters:

Method setBackgroundColor

Fluent operation, it changes the background color of the next section

Parameters:

  • $color Example #ffffff,rgb(30,30,30),white (string)
    $tmp=$ampgeneratorone->setBackgroundColorthis(); 
    
    ## Method setBgImage Fluent operation, it changes the background image of the next section

Parameters:

  • $bgImage param string $bgImage (string)
    $tmp=$ampgeneratorone->setBgImagethis(); 
    
    ## Method setClassTextColor Fluent operation, it sets the class of the text

Parameters:

  • $class text-primary,text-secondary,text-success,text-info,text-warning,text-danger,text-white,text-black (string)
    $tmp=$ampgeneratorone->setClassTextColorthis(); 
    
    ## Method setPadding Fluent operation, it changes the padding

Parameters:

  • $top param $top ()
  • $bottom param $bottom ()
    $tmp=$ampgeneratorone->setPaddingthis(); 
    
    ## Method resetDefault

Parameters:

Method setDefault

It reset to the default background color and text class

Parameters:

  • $backGroundColor Example #ffffff,rgb(30,30,30),white (string)
  • $classTextColor text-primary,text-secondary,text-success,text-info,text-warning,text-danger,text-white,text-black (string) ## Method image

Parameters:

Method table

Parameters:

Method render

It renders the result page.

Parameters:

Method renderToFile

It renders the result to file

Parameters:

  • $filename param string $filename (string) ## Method genLink Generate the first link of an array only if array constains information or the link is not empty.

Parameters:

  • $url param LinkModel|LinkModel[] $url (LinkModel|LinkModel[])
    $tmp=$ampgeneratorone->genLinkthis(); 
    
    ## Method genButton Generate the first link of an array only if array constains information or the link is not empty.

Parameters:

  • $url param ButtonModel|ButtonModel[] $url (ButtonModel|ButtonModel[])

> Note: You could change the color. !

Validity

You could validate your amp on Google search validation

Google Amp Validation

Version

  • 1.5 2019-08-31 Removed min-width in the sections.
  • 1.4 2019-06-04 Some fixes.
  • 1.3 2018-11-03 Added Phpunit and travis.
  • 1.1 2018-09-20 Fixed some bugs.
  • 1.0 2018-09-08 First non beta version
  • 0.3 2018-09-07 Cleaning the house.
  • 0.2 2018-09-06 Working version.
  • 0.1 2018-08-20 First prototype

Example demo:

         

See end result

Full Project