eftec / amp-generator-one
It generates Google AMP sites using PHP
Installs: 5 743
Dependents: 0
Suggesters: 0
Security: 0
Stars: 15
Watchers: 6
Forks: 8
Open Issues: 0
Requires
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^5.7
README
The library generates Google AMP sites using PHP by using procedural code.
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:
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.
Tablet version
Mobile version
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
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