eftec/amp-generator-one

It generates Google AMP sites using PHP

1.5 2019-09-01 01:04 UTC

README

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

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